I always have a problem when submitting the app to app store. There are so many little things such as certificates, provisioning profile and other stuffs. Xcode 5 has a major improvement on the flow of submitting to app store. Now I am summarizing the steps to submit the iOS app to app store.
Here is a video from WWDC 2013 for briefly explain what's new in Xcode 5 for submitting to app store. You need to be enrolled in iOS developer program in order to watch it.
https://developer.apple.com/wwdc/videos/index.php?id=403
First, some basics about the co-signing, apple has a very strict process of signing the app. There are two key signing asset:
(1) signing identity: you first request a certificate from apple, then it will generate a private key.
(2) provision profile: it contains the outline of your app
In Xcode 5, apple ID account is integrated and now you can just sign in within Xcode and Xcode will automatically get the private key from keychain and provision profile from member center. So you do not need to go the keychain and member center anymore, which is a big plus.
Once you have an app, you need to setup a team inside Xcode.
Here is a video from WWDC 2013 for briefly explain what's new in Xcode 5 for submitting to app store. You need to be enrolled in iOS developer program in order to watch it.
https://developer.apple.com/wwdc/videos/index.php?id=403
First, some basics about the co-signing, apple has a very strict process of signing the app. There are two key signing asset:
(1) signing identity: you first request a certificate from apple, then it will generate a private key.
(2) provision profile: it contains the outline of your app
- app ID
- bundle ID
- list of device to run
- entitlements (such as iCloud, game center etc)
In Xcode 5, apple ID account is integrated and now you can just sign in within Xcode and Xcode will automatically get the private key from keychain and provision profile from member center. So you do not need to go the keychain and member center anymore, which is a big plus.
Once you have an app, you need to setup a team inside Xcode.
Creating signing identity
click on [xcode] --> [preference] --> [accounts tab], you can sign in your apple ID account.
click on [xcode] --> [preference] --> [accounts tab], you can sign in your apple ID account.
then click on the details button
click on the + button to add Signing identity, you should create one for "ios development" and one for "ios distribution"
Creating provision profile for your app
You need to do this through member center.
https://developer.apple.com/account/ios/profile/profileList.action
First, need to create an app ID for your app, which contain the information of what service (such as iCloud, game center) it uses.
Click on the App ID in the left hand side, then click on the plus sign in the right hand side.
Creating provision profile for your app
You need to do this through member center.
https://developer.apple.com/account/ios/profile/profileList.action
First, need to create an app ID for your app, which contain the information of what service (such as iCloud, game center) it uses.
Click on the App ID in the left hand side, then click on the plus sign in the right hand side.
Then enter the app ID and bundle ID, bundle ID has a reverse format of domain name, like in my case, my domain is www.bruinsquare.com, then the bundle ID is com.buinsquare.APP_NAME.
The create provisioning profile.
choose app-store for distribution method in the next screen.
then follow the on-screen instruction to create the provisioning profile.
You can name the provisioning profile: Distribution APP_NAME to make it easier to reference later.
When the provisioning profile is done, then go back to Xcode and select preference and account.
Click on view details, the screen should show all the provisioning profile.
Then click on the reload button and the new provisioning profile should show up there.
You can name the provisioning profile: Distribution APP_NAME to make it easier to reference later.
When the provisioning profile is done, then go back to Xcode and select preference and account.
Click on view details, the screen should show all the provisioning profile.
Then click on the reload button and the new provisioning profile should show up there.
Then the provisioning profile is added. Then go back to Xcode to setup code sign.
Setup Code-Sign in Build Settings
in the target screen, click on the [Build Settings] tab, type [code sign] in the search window:
make sure the code signing identity --> release, it has the iphone distribution identity.
then in provisioning profile --> release, it has the provisioning profile you just created in the iOS developer portal.
Setup Code-Sign in Build Settings
in the target screen, click on the [Build Settings] tab, type [code sign] in the search window:
make sure the code signing identity --> release, it has the iphone distribution identity.
then in provisioning profile --> release, it has the provisioning profile you just created in the iOS developer portal.
Submitting to App Store
After all these are done, then you can achieve the app, achieving an app meaning putting all the app asset, such as picture, audio etc, and then co-signing with your signing identity and provision. Then create the whole package and become an IPA file.
reviewing the achieve schemes
In the Xcode project editor, choose Product > Scheme > Edit Scheme to open the scheme editor.
Click Archive in the column on the left.
Choose Release from the Build Configuration pop-up menu, and click OK
After all these are done, then you can achieve the app, achieving an app meaning putting all the app asset, such as picture, audio etc, and then co-signing with your signing identity and provision. Then create the whole package and become an IPA file.
reviewing the achieve schemes
In the Xcode project editor, choose Product > Scheme > Edit Scheme to open the scheme editor.
Click Archive in the column on the left.
Choose Release from the Build Configuration pop-up menu, and click OK
Go to [Product] --> [Achieve], then your app will be achieved in organizer.
make sure your build scheme is showing "iOS device"
make sure your build scheme is showing "iOS device"
Open organizer by go to [Window] --> [Organizer]
click on validate
click on validate
it will verify if the code-signing process is good, if you get any error here, please make sure you are using a distributing provisioning profile.
then click on distribute and follow the on-screen process to submit your app to app store.
Some troubleshoot
also make sure the Bundle ID is the same in [general] tab and in the provision that you created in.
What is Bundle ID?
A bundle ID precisely identifies a single app. A bundle ID is used during the development process to provision devices and by the operating system when the app is distributed to customers. For example, Game Center and In-App Purchase use a bundle ID to identify your app when using these services.
you can follow the steps suggested here to change the Bundle ID:
http://stackoverflow.com/questions/12545174/change-bundle-identifier-in-xcode-when-submitting-my-first-app-in-ios
then click on distribute and follow the on-screen process to submit your app to app store.
Some troubleshoot
also make sure the Bundle ID is the same in [general] tab and in the provision that you created in.
What is Bundle ID?
A bundle ID precisely identifies a single app. A bundle ID is used during the development process to provision devices and by the operating system when the app is distributed to customers. For example, Game Center and In-App Purchase use a bundle ID to identify your app when using these services.
you can follow the steps suggested here to change the Bundle ID:
http://stackoverflow.com/questions/12545174/change-bundle-identifier-in-xcode-when-submitting-my-first-app-in-ios