Launch Your App on Devices Using Free Provisioning (iOS, watchOS)
Apple made many announcements about products and features at the annual WWDC opening keynote Among them they broke some news for developers. Apple announced that a paid account is now not needed at the development stage; it's only publishing to the iOS, OS X and Watch app stores that will require paid membership. Aspiring developers can thus develop and test apps on their own devices without having to pay. The change will be rolled out along with Xcode 7
Seven years after the inception of the App Store, Apple has finally
introduced the new version of Xcode, Xcode 7, which will allow you to
deploy and run any number of apps on any of your devices, simply by
logging in with your Apple ID. You will no longer need a paid Program membership (and you certainly no longer have to jailbreak your device if you're not comfortable doing so).
Well, not for the majority of use cases anyway. For obvious reasons,
certain capabilities and entitlements that require Program membership
such as Game Center and in-app purchases will not be available to apps
deployed using this method. From Apple's developer documentation:
If you don’t join the Apple Developer Program, you can still build and run your app on your devices using free provisioning. However, the capabilities available to your app, described in Adding Capabilities, are restricted when you don’t belong to the Apple Developer Program.
The precise steps to getting your app onto your iOS device or Apple
Watch follow immediately thus (screenshots omitted for ease of
skimming):
- In Xcode, add your Apple ID to Accounts preferences, described in Adding Your Apple ID Account in Xcode.
- In the project navigator, select the project and your target to display the project editor.
- Click General and choose your name from the Team pop-up menu.
- Connect the device to your Mac and choose your device from the Scheme toolbar menu.
- Below the Team pop-up menu, click Fix Issue.
Xcode creates a free provisioning profile for you and the warning text under the Team pop-up menu disappears.- Click the Run button.
Xcode installs the app on the device before launching the app.
Here is a brief explanation with screenshots
Go to Build Settings, under Code Signing, set Code Signing Identity as iOS Developer & Provisioning Profile as Automatic.
Go to Build Settings, under Code Signing, set Code Signing Identity as iOS Developer & Provisioning Profile as Automatic.
Prior to Xcode 7, a Program membership was indeed required in order
to sign the provisioning certificates required to deploy apps to
devices. The only other alternative was jailbreaking. With Xcode 7, you
no longer need to jailbreak your device just to run apps distributed
outside the App Store, or to test apps if you cannot afford to join the
Program, or to deploy and use apps that you have developed for your own
personal use if you do not intend to distribute them through the App
Store (in which case you probably don't need the entitlements offered by
Program membership anyway).
In another piece of news that will bring cheer
to the community, Apple announced that its Swift development language
will be going open source, as of the release of Swift 2. Swift was
launched at the same event last year, and is being positioned as the
"next big programming language", according to Craig Federighi, Senior
Vice President of Software Engineering at Apple. Swift promises
"baked-in security" and speed along with modern features.
Apple
has stated that it will release the Swift source code including the
compiler and standard library, and accept contributions from the
community. A concrete timeline has not been laid out but Apple says it
will do all this by the end of this year. Improvements in Swift 2
include better error handling, better support for older OS versions,
protocol extensions and updated SDKs.