I've developed an application for an extern distributor. Now, they want to publish the application.
I decided to create an xcarchive of the complete app with Xcode. But I have problems with the bundle identifier. Have I to choose an identifier and the distributor creates the provisiong profile and the certificate?
Would be great if you can tell me what I have to look for!
Your Distributor needs to have a "Company" Apple Developer Account.
They invite you to their organization as a "Member"
You accept their invitation.
the next time you login to developer.apple.come you will be presented with a Team droplist (your team and their team)
Select Their team.
Now, go to the iOS provisioning Portal->Certificates. Generate a Developer Certificate. they will have to approve this, so let them know the request is coming.
Once you have a Developer Certificate they will need to make\modify a Developer Provisioning Profile, with your certificate enabled in the Profile, for the AppID in question.
Once this Profile is created you download it.
Now you have their Full Bundle ID (the GUID and the "com.customer.app")
Now you change Code Sign Identity for Release to "iPhone Developer".
You Build and Archive the app using the Developer Provisioning Profile.
In the Organizer you will see the app you just built, right-click on the app and do a "show in finder".
Zip up the .XCARCHIVE file and send it to your Distributor.
They will unzip and double-click on the .XCARCHIVE file, this will import it into their XCode's Organizer.
From Organizer they can ReSign the app for "iPhone Distribution" using the same Bundle ID that was used to compile the app.
They can distribute it as they see fit.
I'll assume that you're using xCode 4 (or above ) for this.
You're going to want to open your scheme editor (The drop down menu next to the 'Run' and 'Stop' button contains this). Select the 'Archive' scheme and make sure that it's building a release (or distribution ) copy of your app and not a debug version.
The speculative part of the question, it's probably different for each distributor, I'm assuming your distributor is already set up as an iOS Developer (ie they can distribute on the app store already) I just set the bundle identifier to something appropriate com.nameOfDistributor.nameOfApp.
In xCode 4 you don't need to worry about any provisioning profiles etc, or certificates, just archive that up and send it to the distributor. Just send them a note of what the bundle ID was, and they should be able to do all the code signing in xCode themselves if they're using xCode 4 that is.
If the distributor is unhappy with that they usually just email us back and we sort it out. But just archive the release build of the app and send it to them letting them know what you used as a bundle id (also let them know the version number if you've been incrementing that as development has progressed).
Related
This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Deploy an iphone app from xcode to iphone
Hi I have tested my app using the iOS simulator. How can I test it on my own iphone? I am an Apple developer member.
The first thing you need is a development certificate. Visit the iOS provisioning portal and follow the steps here: http://developer.apple.com/ios/manage/certificates/team/howto.action:
Once that is done, you can do everything else from Xcode. Using Xcode 4:
Connect your device via USB.
Open the Xcode organizer (Window->Organizer)
Select "Provisioning Profiles"
Check the "Automatic Device Provisioning" checkbox and click "Refresh"
You will be prompted to enter your developer account username and password. Do this.
This step will automatically create and download a wildcard (*) provisioning profile that you can use for testing any application on your device.
After a few seconds you should see this new profile appear in the list with the name "Team Provisioning Profile: *"
Restart Xcode just to be safe. Sometimes it can get confused.
Open a project and select your device from the main schemes dropdown box:
Build and run.
If that doesn't work straight away, make sure your target has the correct code signing options. Find your target's build settings and for the Debug configuration choose "iPhone Developer" under the "Automatic Profile Selector" group in the dropdown:
This should be selected by default.
Good luck!
You need to learn about creating Adhoc Distributions for iOS devices for detailed reference. I am however putting all of it here in the answer:
Creating iPhone Ad Hoc Distribution Builds
1. Adding Beta Tester Devices
Apple allows an Ad Hoc build to be distributed to up to 100 devices which they enforce by making you add the devices to the distribution provisioning certificate. This means that you need to retrieve the UDID for all of the test devices, add them to the provisioning profile using the iOS Provisioning Portal and then download and install the profile.
2. Finding the UDID
To get started you need to ask your beta testers to supply the Unique Device ID (UDID) for their devices. To find UDIDs they can follow the steps on:
whatsmyudid.com
3. Registering the Device
Once you have the UDID you need to add it to your account in the iOS Provisioning Portal in the same way you would for a development device. You do this in the Devices section of the portal and can either use the ‘Add Device’ button to manually add a single device or use the Upload Devices button to bulk upload multiple UDIDs from a text file.
Note: If you want to bulk upload multiple devices the format of the text file needs to be as follows with the two columns separated with tabs:
Device ID Device Name
1234567890123456789012345678901234567890 Test_iPad
The contents of the first line are not important but you need to put something as the first line is ignored when you upload.
Also be aware that you can only register up to 100 devices each year. You can delete devices any time you want but once added they still count towards your annual allocation. (So if you add 100 devices and then delete 50 of them you still have to wait until the next year before you can add any more).
4. Creating the Distribution Provisioning Profile
Assuming you already have a distribution certificate the process to create an Ad Hoc provisioning profile is quick and easy. In the Distribution tab of the Provisioning section use the New Profile button.
The only difference between an Ad Hoc profile and a normal App Store profile is the Distribution Method.
Ensure you select the Ad Hoc method and then enter a profile name, the App ID and finally ensure you select all of the devices you want the Ad Hoc build to run on. Once you have finished submitting the profile you should download it and save it somewhere safe as you will need to send it to each of the beta testers. The file should have an extension of .mobileprovision. You should also drag the file onto your Xcode icon to install it, you can use the Xcode organiser to verify that it installed ok. You should see the profile in the Provisioning Profiles section.
5. Building for Ad Hoc Distribution
With the provisioning profiles configured correctly the next step is to prepare the project in Xcode for an Ad Hoc build. It might be useful to create a configuration just for Ad Hoc builds so that you do not have to worry about the details each time. The easiest way to do that is to copy an existing configuration, if you already have a Distribution configuration that is probably a good starting point otherwise you can start from the default “Release” configuration.
With the project open in Xcode, right-click on the target and select “Get Info” to bring up the Info dialog window and select the Build tab and then in the Configuration drop down menu select “Edit Configurations…”
Select an existing configuration (e.g. Release or Distribution) and then at the bottom of the window use the Duplicate button to create a copy of the configuration and name it “AdHoc”.
In the Target Info window ensure this new AdHoc configuration is selected and then adjust the following settings in the Build tab. In the Code Signing section, look for the “Any iOS” setting under Code Signing Identity and make sure it is set to iPhone Distribution and matches the Ad Hoc provisioning profile we installed previously.
6. Entitlements
There is one additional step if your project includes an Entitlements.plist file (perhaps because you needed to enable keychain data sharing). For an Ad Hoc distribution you need to ensure that the get-task-allow flag is not set in the plist file. One way to handle this is to add a second file (Entitlements-adhoc.plist) just for the Ad Hoc build which is identical apart from the get-task-allow flag:
To ensure this new Entitlements file is used you need to modify the Code Signing Entitlements setting in the AdHoc configuration to reference the new file.
7. Build and Archive
With the AdHoc build settings active use the Build and Archive command to create the distribution build. Assuming the build was successful you should find it in the Xcode Organizer in the Archived Applications section. You can add a name and comment to the organizer for future reference at this point.
8. Sharing the Application
The easiest way to send the application files to a beta tester is to use the Xcode organizer to create an ipa file. To do that select the AdHoc build in the Archived Applications section and use the Share button and then select Save to Disk. Xcode will create a signed application file and save it to disk with a name of your choosing. Name the file something useful like appName-x.y.z.ipa where x.y.z is the version number.
You can then send this .ipa file together with the .mobileprovision file to your beta tester with instructions to drag onto their iTunes library to install it on the test device.
For sharing and application versioned release management you can also use testflightapp
You should add your device UUID to your iOS provisioning portal. Create an App id. Create a mobile provisioning profile by selecting your device and App Id. Download and install that profile to your device. The build and run your app on the device. Please let me know if you need further clarification.
I am just about ready to submit my app to the store and would like to know any tips or best practices from fellow iphone developers who have submitted to the store before.
What needs to be done before submission?
How is the binary created or packaged?( what things should be kept in mind)
What is the idea behind scheduling a release date? (can it not just be released after it has been accepted)
What else needs to be done in order to submit?
Any bad experiences which developers could take note of?
First, have you gone through Apples docs on submission: http://developer.apple.com/iphone/appstore/submission.html
In general, the process is to log into itunesconnect.apple.com using your iPhone developer account, click "manage applications", then "Add new application" and fill in the forms.
You need to build a distribution version of your app codesigned with an iPhone Distribution cert. The Distribution cert can be obtained from the iPhone Developer Portal (http://developer.apple.com/iphone click "iPhone Provisioning Portal" on the right.) When you have a distribution build, you just need to zip up the app. Open the MyAppProject/build/Release-iphoneos directory in Finder, right-click on myApp.app and select "Compress 'myApp.app'" from the context menu. For very large apps, you will need the Application Loader available from the App Management section of iTunesConnect to upload the binary.
In general, it takes at least a week for an app to be processed by Apple. Typically, as soon as Apple accepts the app, it's available for sale. That said, if you don't tell anyone about the app, no one will find it.
For me, the hardest parts of the app submission process are writing the blurb and coming up with the list of keywords.
How is the binary created or packaged?
Goto
build/distribution-iphoneos/ inside that you have .app file compress it and that compressed file is to be uploaded.
upload should be done through APPLICATION LOADER.
These are the following steps needed to build an iPhone app under an Apple Distribution License and upload it to the App Store.
Create A CSR from Keychain Access in a Mac machine.
Access Keychain Access as Finder>>Applications>>Utilities>>Keychain Access.
Upload this CSR while creating a Distribution Certificate.
An Apple License can have only one Apple Distribution Certificate.
Download Distribution Certificate.
Open Keychain Access.
Access Keychain Access as Finder>>Applications>>Utilities>>Keychain Access.
Install the downloaded Distribution Certificate.
Right Click on the Distribution Certificate and select "Export Certificate" and save as Personal Interchange Certificate (.p12) format in destination Library>>Keychains.
For every new application we need to create new Provisioning Profiles under one Apple Distribution Certificate.
For each new Provisioning Profile, we need to create a new App Id.
So we need to create a Adhoc and Appstore Provisioning Profile.
Adhoc Provisioning Profile is for testing the app in apple devices.
*Appstore* Provisioining Profile is for uploading the app to appstore.
Download the respective Provisioning Profile and double click on the profile to install it.
Delete all the previous profiles and just retain the newly installed profile.
Build the application by selecting the Code Signing Entity as the newly installed Provisioning Profile.
6 Upload the ApplicationName.app.zip file as the binary file in Application loader while uploading the application to appstore.
Reference: https://developer.apple.com
I believe this would be of some help to you.
I wants to test my own application to my actual iPhone Device rather then simulator.
So, is there any chance to do so with ?
I have an apple developer account.. But don't know the procedure, Please help me if u have any solutions..
Thanks in advance...
Log in to http://developer.apple.com/iphone/ with your developer id and password.
Then:
http://developer.apple.com/iphone/manage/team/index.action and set up your team.
http://developer.apple.com/iphone/manage/certificates/team/index.action to create your certificate
Download the certificate you just created and double click on it to run Keychain Access and install it.
http://developer.apple.com/iphone/manage/devices/index.action to enter your iPhone's id
http://developer.apple.com/iphone/manage/bundles/index.action create an appID
http://developer.apple.com/iphone/manage/provisioningprofiles/index.action to download a provisioning profile
Drop that provisioning profile onto Xcode
Go into your project's info.plist and change your Bundle identifier to be the same as you used for the provisioning profile, minus everything up to the first "."
Go into your project's Build Info, and select the appropriate Code Signing Profile
I think now you're ready to go. Select an iPhone Device from the pop-up menu in your main project browser window, plug your iPhone in and let Xcode see it, and then Build and Run.
You can, but as iPhone applications need to be signed - you need to be a paid developer. It is then a case of logging into the portal, assigning a test device, application settings and then downloading a provisioning certificate.
The procedure is cumbersome, however it is very well documented.
You need to create your Developer Certificate and a Certificate for your software projects.
Go to http://developer.apple.com/iphone/, log in and click iPhone Developer Program Portal on the right side. You will find a "launch Assistant" there that will guide you through the next steps. It's pretty easy.
You have to join the iPhone Developer Program, which is $99 for the Standard Program, $299 for the Enterprise Program.
I am new to iPhone development. I just registered with Apple for the iPhone Developer Program. When I try to build, I am receiving an error:
Code Sign error: a valid provisioning profile matching the application’s identifier could not be found
I'm not sure what is wrong. I tried browsing the Internet but I get confused. Can anyone help me with what I should do?
At first it seems a complex process, but it's pretty straightforward when you've been through it a few times.
In a nutshell the process is this:
(I'm assuming you've set up your iPhone/iPod touch as a test device)
Via the iPhone Developer Portal
Create an App ID
(give your application a name, this is just for reference on the website and nothing to do with your own build of your application)
enter a string to identify it, like com.yourcompany.appname
(this is important and should be the same as in your .plist file inside Xcode)
Click and Save this
Go to Provisioning
There are 2 provisioning profiles you'll need
a) development - so you can install your application on a test device (i.e. your iPhone / iPod touch)
b) distribution - if you want to sell the application via the App Store
You can create the profiles by selecting your App ID, created in the previous step, from the drop down list and clicking Save
In a few moments (usually, though it can be longer) the certificate is available for download. Download this to your Mac and drop it onto the Xcode icon. Sometimes the development profile doesn't work for me like this and I drop it directly into the Organiser window in Xcode that shows my connected device.
Besides, if you are in a team account, team admin need to edit Development Provisioning Profiles, and add modify your certificates privilege.
In Xcode inside 'Edit Project Settings' you can select the certificate you wish to code sign with. Usually for debug I sign with the development certificate. Follow the instructions on the apple site and clone the release profile and call it something like release and sign this with your distribution profile. (You won't be able to load the app onto your phone with the distribution profile selected)
Make sure you select the target device as Device and not Simulator when building for the App Store!
Hope that helps, it's from memory so apologies if I've skipped some small steps.
xcode top left corner make sure you're running as "similator" "iphone"
Did you set up an iPhone provisioning profile for either development, ad hoc distribution, or app store distribution?
If not go to the iPhone developer program portal, which is linked from the developer.apple.com/iphone. Apple has provided a great series of video tutorials.
Just make sure you install the certificates or the profile won't be selectable in the project configuration. When you download the certificates double-click on them to install.
Possibly more use for others seeing this issue on a previously configured dev environment.
This error is also shown if your provisioning profile has expired, in this case you can go through the steps in Neosionnach's answer or you can go to Organizer, click on the profile and click Refresh.
This was the winner for me when I had this issue.
As of July 2012, you can go here:
https://developer.apple.com/ios/manage/overview/index.action
Then launch the "Development Provisioning Assistant." It walks through all the steps outlined by FiddleMeRagged.
You can use this process to create a Wildcard ID, if you're just looking to test your app on your iOS device and don't need to deploy to the App Store right away.
I've got my apps running on my iphone, great, however to list on the itunes store I need the "universal binary" thing.
I've tried finding answers, but I can't seem to find a concise useable explanation to doing this in xcode. I always get errors when I try to build a binary. Can anyone point me towards a basic step-by-step procedure I can follow to creating a universal executable binary which can be uploaded on the itunes store?
One more thing, is there some type of app, like the rename project app, or applescript thing, that can do this for me with a few clicks?
Try this:
Prepare a new provisioning profile for App Store
Make sure you have Ad Hoc distribution working OK.
Go onto the Program Portal > Provisioning > Distribution
New Profile button
Distribution Method: App Store
Profile Name: MyApp App Store (or whatever)
App ID: MyApp (you have already created one right?)
Submit button
Set up the new profile/configuration in XCode
Download the certificate (you can click on the Distribution tab to reload that tab while it's being generated) and load it into XCode
In XCode, open your project and go to Project > Edit Project Settings (or double-click on the first item under Groups & Files panel)
Configurations tab, click on your existing Ad Hoc distribution configuration, that already works, and click Duplicate button. Call the new one "App Store"
Click on Build tab, then under Code Signing > Code Signing Entity in the popup choose "iPhone Distribution - MyCompanyName" under "MyApp App Store"
Build & Upload to iTunes Connect
Clean all for good luck, then set Active Configuration to "App Store", build & go. Test it on your iPhone.
Find your built app in the Finder, in your project directory > build > App Store-iphoneos > MyApp.app ... right click and "Compress MyApp.app"
Upload resulting MyApp.zip to iTunes Connect.
A Universal Binary has nothing to do with it. To distribute through the App Store, you need to create a Distribution provisioning profile. The iPhone developer portal has step-by-step directions for this. look under the "Distribution" tab.
I followed the instructions listed by sbwoodside but had problems with the last part (Build & Upload to iTunes Connect). I realized that the built version didn't run on the device. This is what worked for me:
Build & Upload to iTunes Connect
Clean all for good luck.
Go to "Edit Scheme" and in the Archive menu, select the App Store
build configuration.
Select iOS Device or a specific device in the drop down menu and go
to Product->Archive.
Once Xcode is done archiving, it will open the organizer window and
show the archives section. Select the last archive and click
"Submit".
You will be asked to enter your distribution certificate. Select
the one created for the App Store.
XCode will upload the app to iTunes Connect without the need of
using Application Loader. For this to work, the app has to be in
"Ready to Upload" status in iTunes Connect.
You won't get to test the last version with the device. Therefore it's best to make an ad hoc version before to be able to test all features and once everything is working, duplicate the ad hoc configuration for the app store.
Once you have your provisioning profiles downloaded and installed you need to make some changes within XCode to get the app to work on your iPhone and eventually to submit to the iTunes store. You'll also need to add an Entitlemests.plist object to your project. You also need to tweak your build profile and your info.plist to point to your application name.
But as Mark B already said, just got through the developer portal and follow those instructions. Just make sure your define the right provisioning profile for the purpose.