iOS 9 new feature Free Provisioning (Run your app on a device, just with your Apple ID, without Apple developer membership)
Asked Answered
H

4

21

Would like to know about the new feature Free Provisioning introduced in iOS9 & Xcode 7.

How Apple is now achieving that, as before we knew our device ids were enrolled in the profiles and hence it was possible to deploy the app on devices.

Now only with Apple ID how the things in the background are achieved, also is there any restrictions on how many number of devices I can add my build with Free Provisioning.

Any help is greatly appreciated thanks...

Hallo answered 22/6, 2015 at 7:2 Comment(1)
W
46

1. How it works?

Apple Ref : How to use free provisioning

As stated in above link under Launch Your App on Devices Using Free Provisioning point 6. "Xcode creates a free provisioning profile for you"

Update: Above point 6 is removed from link, but there is no change in the way it works and steps in above link still work!

Profile created in this way is tied to your apple id, when you try to run app on new device that device's UDID gets added in this profile.


2. How to use free provisioning?

Requirements: Apple ID, XCode 7 or above

Steps:

  1. Go to XCode Preference

  2. Go to Accounts tab and hit plus "+" button on bottom left to add your Apple ID.

  3. After successfully adding Apple ID click on view details on bottom right enter image description here

  4. Click the Create button next to "iOS Development"

    enter image description here

  5. Connect your device and select your device as build destination.

  6. In target's general setting,

    a. Set app identifier you want to give to your free profile

    b. set team id as your apple id

    c. If using XCode 7, hit Fix Issue button below provisioning profile warning.

    enter image description here

    If using XCode 8, there is no Fix Issue button XCode will automatically do this. enter image description here

    In both cases of XCode versions, Xcode will either create new profile if not found for your apple id or add new device to your existing profile.

  7. Run the app, this will install app.

  8. Click app icon to start app manually, you will get "Untrusted Developer" dialog. To trust your apple id, Go to iPhone setting > General > Device Management > Select your apple id and click trust.
  9. After step 8 you can run and debug app using free provisioning.

3. What are the Limitations?

I tried to install app with free provisioning and could run/debug app. But there are few catches. Profile created by XCode is bit different than our usual developer profiles

From profile raw file

  1. There is new key LocalProvision with value true

    <key>LocalProvision</key>

    <true/>

    Many services like following are not available, See full list of services

    Apple Pay, Game Center, iCloud, In-App Purchasing, Push Notifications, Wallet (Was Passbook)

  2. Expires in 7 days (this was changed sometime in May, previously it was 90 days).

    <key>TimeToLive</key>

    <integer>7</integer>

    Old: 90 days enter image description here New: 7 days enter image description here

  3. Under <key>ProvisionedDevices</key> there is list of devices on which I tried to install app, still unknown maximum number of devices possible, I tried to install on 3 devices which worked successfully.

  4. This is not alternative to publishing app for free on app store, you still need to enroll to developer program to publish apps.

  5. Testflight based internal / External testing is not possible.

Wisteria answered 27/8, 2015 at 12:10 Comment(16)
So from what you are saying there is no way now to remote test apps? I recently upgraded to iOS 9 and I can no longer install one of our remote hosted apps signed with a provisioning profile containing the device's UDID, which worked previously before in iOS 8.Monotone
can i check remote notification from that free profile. Here i m sucessfully register for push notification from that free profile.Lavalava
same question as @Lavalava asked? Can we test push notification?Melt
what if you don't have a real device?Abode
@Rohit Tigga: Then buy one or get a friend or colleague to provision theirs.Ballet
Just did haha ebay ftwAbode
Is there any way to extend the validity from 7 days to something longer? I want to create a simple app for my own use (running on my own device, only by me), so I do not want to pay annual fee for that or upload it to the App Store.Goods
@Loser (this nickname :D), No, but you can reinstall after 7 days and profile will get renewed.Wisteria
@sbru we don't need to worry about it, just try to run by using your apple id, if profile is expired apple will create new oneWisteria
In the Signing Identities menu I have no option to 'Create' next to 'iOS Development.' However, the option does appear next to 'Mac Development.' The other options are not selectable. How can I create an new iOS Development Certificate?Disjuncture
@MichaelCastro this means it's already created. Just skip that step and move to next oneWisteria
@AdityaDeshmane Hi, can I ask when you installed using free provisioning on the three devices, do you need to add each separate device's appleID to the Accounts page? Assuming I want to install my app to a friends iPhone do I need his apple ID or mine in the accounts page?Coated
@Coated You don't get a downloadable profile via this process. So no need to add UDIDs, sharing build is not possible as you have to connect the device through cable for installation and debug. There is no limit on how many devices you can install. You have to check "Automatically manage signing" & Team as "Personal Team" under "Singing & Capabilities".Wisteria
@AdityaDeshmane I will have his device though, so I can connect through cable for installation. I just wanted to double confirm the device limit as this site says only up to 3 devices can install the app at a time. steemit.com/xcode/@ktsteemit/xcode-free-provisioning. Also not too sure why you said UDID is not needed when the steps shows you adding the apple ID to accounts?Coated
@Coated I myself is using this for years on more than 10 devices, I haven't faced the limit issue.Wisteria
I see! so you can use on as many separate devices as you want, but I m assuming up to 3 at a time? I ll probably have to test whether I add his apple ID later or I can just use mine in accounts page. Much thanks @AdityaDeshmaneCoated
O
2

Apple haven't disclosed the thing like, how they are managing on their developer portal. But I think they just removed the restriction of Paid Developer program & rest of the thing kept as it is.

For standard developer Program Apple support 100 device so I think same will apply here.

Refer this link for more info..

Orang answered 22/6, 2015 at 9:1 Comment(0)
D
1

Copied from: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/free-provisioning/

Limitations

Apple has imposed a number of limitations on when and how you can use free provisioning to run your application on an iOS device, ensuring that you can only deploy to your device. These are listed in this section.

Access to iTunes Connect is also limited and therefore services such as publishing to the App Store and TestFlight are unavailable to developers provisioning their applications freely. An Apple Developer Account (Enterprise or Personal) is required to distribute via Ad Hoc and In-House means.

Provisioning Profiles created in this way will expire after three months, Signing Identities after one year. Furthermore, provisioning profiles will only be created with explicit App IDs and so you will need to follow the instructions above for every app that you wish to install.

Provisioning for most application services is also not possible with free provisioning. This includes:

Apple Pay

Game Center

iCloud

In-App Purchasing

Push Notifications

Wallet (Was Passbook)

Durante answered 12/11, 2015 at 13:47 Comment(2)
Does these limitations are documented somewhere?Longsufferance
@Nil Just in the link I have already provided: developer.xamarin.com/guides/ios/getting_started/installation/…, search "Limitations" in that page.Durante
S
0

Some more informations.

You can archive app with free provisioning profile. But You can't export ipa in "XCode 7"

enter image description here

But you can use XCode 5 or Command line "xcodebuild" to export ipa file.

I tried using OTA to install this ipa file. And it's work!

So... If there has a way to add UUID to your account without XCode (REST api calls). You can distribute your app to anyone you want.

Spanker answered 22/12, 2015 at 8:59 Comment(2)
You can use REST API calls. One example is here: github.com/Matchstic/ReProvision/blob/master/Shared/…Braid
But what is "OTA installing" method?Braid

© 2022 - 2024 — McMap. All rights reserved.