Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hello Rennie,
- >
- > Thank you for contacting Apple Developer Technical Support (DTS).
- >
- > ** Please note: The following instructions are for Xcode 4. If you are
- > using Xcode 3.x instead, scroll down to the "STEPS FOR XCODE 3" section
- > below. **
- >
- > There are a number of configuration settings throughout Xcode and the
- > system which can contribute to code signing errors. Please perform the
- > following 8 steps to ensure that your project configuration is correct:
- >
- > 1) Read Tech Note "TN2250"
- >
- > Please read "TN2250: Understanding and Resolving Code Signing Issues"
- > located here:
- > http://developer.apple.com/library/ios/#technotes/tn2250/_index.html
- > This technical note supplements the Developer Program User Guide located on
- > the iOS Provisioning Portal under the "Portal Resources" section.
- >
- > 2) Verify the "iOS Deployment Target" is set to the intended value under
- > both the project, and target.
- >
- > The "iOS Deployment Target" Xcode setting defines the iOS software version
- > your application is built for; it specifies the lowest version of iOS
- > Devices your application will support. For example, the lowest available
- > setting for iPad applications is iOS 3.2.
- >
- > To verify this setting, choose the Xcode "View" menu > Navigators >
- > Project, and then select your root project folder in the upper left corner.
- > The Project Editor will appear in the center pane. Make sure Deployment
- > Target is set to the intended value in both locations: pick your project
- > under the "PROJECT" section, then click the "Info" tab > iOS Deployment
- > Target. Also click your target under the "TARGETS" section, then click the
- > "Summary" tab > Deployment Target setting.
- >
- > 3) Verify your "Base SDK" setting is "Latest iOS (..)" in both locations:
- > Project Editor > Project > "Build Settings" tab, and Project Editor > Target
- > > "Build Settings" tab. If you are building to your development device, the
- > Base SDK version number defined on your Xcode project must be greater than
- > or equal to the software version number on your development device;
- > otherwise Xcode cannot initiate a debugging session with the device. If that
- > is the case, you will need to download and install the latest iOS SDK
- > version that is greater than or equal to your device software version.
- >
- > 4) Verify your Target Code Signing Identity settings are correct.
- >
- > Choose the Xcode "View" menu > Navigators > Project, and then select your
- > root project folder in the upper left corner. This will open the Project
- > Editor in the center pane. Click on your target in the "TARGETS" section,
- > then click the "Build Settings" tab. Scroll down to the Code Signing
- > section. Click on the Grey Disclosure Triangle to the left of the "Code
- > Signing Identity" setting to expand and make visible the settings for
- > "Debug", "Release", and "Any iOS SDK".
- >
- > If you are building to your development device, verify that the Code
- > Signing Identity setting for "Debug" has a child setting named "Any iOS
- > SDK". Set the Value column (that is to the right of the text "Any iOS SDK",
- > under "Debug") to the correct "iPhone Developer" provisioning profile. In
- > most cases, it is recommended that you pick the value "iPhone Developer"
- > under the "Automatic Profile Selector" section of the pop-up selection menu
- > (this allows Xcode to pick the correct provisioning profile for you).
- > However, if your application is using Push Notification, Game Center, or
- > In-App Purchases, note that you need to create an explicit App ID and
- > Development Provisioning Profile specifically for that App ID (this is done
- > on the iOS Provisioning Portal website); in the latter case, set the "Any
- > iOS SDK" setting (under "Debug") equal to the provisioning profile created
- > specifically for this application.
- >
- > If instead you are building a distribution binary, verify that the Code
- > Signing Identity setting for "Release" has a child setting named "Any iOS
- > SDK". Set the Value column (that is to the right of the text "Any iOS SDK",
- > under "Release") to the correct "iPhone Distribution" provisioning profile.
- > In most cases, it is recommended that you pick the value "iPhone
- > Distribution" under the "Automatic Profile Selector" section of the pop-up
- > selection menu (this allows Xcode to pick the correct provisioning profile
- > for you). However, note that you need to create a distribution provisioning
- > profile for your App ID (whether it is a wildcard App ID, or not) on the iOS
- > Provisioning Portal, and install it into Xcode. If you have not done so
- > already, do that according to the steps in the section "Publishing Your
- > Application for Distribution" (if you are building a binary for App Store
- > submission) or section "Publishing Your Application for Testing" (if you are
- > building a binary for Ad Hoc testing)
- >
- > Note that you may not be able to select your provisioning profile from the
- > Provisioning Profile section pop-up menu if your "Bundle Identifier" (a.k.a
- > "Identifier") setting defined in your Xcode project is not compatible with
- > the App ID that is associated with your Provisioning Profile. In that case,
- > perform step 5 and then come back to this step to try your Provisioning
- > Profile assignment again.
- >
- > 5) Verify the Bundle ID defined in your project matches the App ID
- > associated with your Active Provisioning Profile.
- >
- > The Bundle Identifier setting on your app's Xcode Project must be
- > compatible with the App ID associated with your Provisioning Profile. To
- > define the Bundle Identifier in your Xcode project, choose the Xcode "View"
- > menu > Navigators > "Project" option, then select your root project folder
- > in the upper left corner. The Project Editor will appear in the center pane.
- > Select your target in the "TARGETS" section, then click the "Info" tab.
- > Enter your bundle identifier in the "Bundle identifier" field. If a wildcard
- > asterisk character is present in your App ID, replace the asterisk with an
- > appropriate string using reverse-DNS format for the Bundle Identifier
- > defined on your Xcode project.
- >
- > Here are some example App IDs and compatible corresponding Bundle
- > Identifier values defined in Xcode:
- > If your App ID is A1B2C3D4E5.com.domainname.applicationname enter
- > com.domainname.applicationname as your Bundle Identifier.
- > If your App ID is A1B2C3D4E5.com.domainname.* enter
- > com.domainname.ichosethisappname as your Bundle Identifier.
- > If your App ID is A1B2C3D4E5.* enter any string you like using reverse-DNS
- > format as your Bundle Identifier.
- >
- > For more information about Wild Card App ID's read Technical Q&A "1713"
- > located here:
- > http://developer.apple.com/library/ios/#qa/qa2010/qa1713.html
- >
- > To ensure the Xcode project Bundle Identifier matches your Provisioning
- > Profiles, go to Project Editor > Target > "Build Settings" tab, and scroll
- > down to the "Code Signing Identity" section. If you are building to your
- > development device, click the Value column under "Debug" that is to the
- > right of "Any iOS SDK". In the provisioning profile selection pop-up, check
- > that the current selection reads "For Application Identifiers: " with the
- > intended App ID. If you are building a distribution binary, click the value
- > column under "Release" that is to the right of "Any iOS SDK". In the
- > provisioning profile selection pop-up, check that the current selection
- > reads "For Application Identifiers: " with the intended App ID.
- >
- > 6) If you are building to device during development, indicate to Xcode that
- > your device may be used for development, and make sure that your target
- > device is added to your Devices list on the Provisioning Portal.
- >
- > Choose the Xcode "Window" menu > Organizer, and click the Devices tab.
- > Select the device from the left-pane. In the center pane, click the button
- > "Use for Development" (if you have not already done so; this is a one-time
- > indication per device).
- >
- > A) If you are a team "Agent" or "Admin" within your developer
- > program, follow these steps: choose the Xcode "Window" menu > Organizer, and
- > click the Devices tab. Right-click the target device under the "DEVICES"
- > section of the left-sidebar, and choose "Add Device to Provisioning Portal".
- > If prompted, enter your developer program credentials into the popup, and
- > click OK. This will queue your device to be included into the Team
- > Provisioning Profile or other development provisioning profiles.
- >
- > B) If you are not a team "Agent" or "Admin", follow these steps:
- > choose the Xcode "Window" menu > Organizer, and click the Devices tab.
- > Select the target device under the "DEVICES" section of the left-sidebar.
- > Select and copy to the clipboard the 40-digit hexadecimal "Identifier"
- > string and send that to your team agent or admins and ask that they ensure
- > the identifier associated with your device is added into the "Devices"
- > section of the provisioning portal. This will queue your device to be
- > included into the Team Provisioning Profile or other development
- > provisioning profiles.
- >
- > 7) Verify "Automatic Device Provisioning" is enabled, and Refresh your
- > Provisioning Profiles.
- >
- > Choose the Xcode "Window" menu > Organizer, and click the Devices tab.
- > Select "Provisioning Profiles" from the "Library" section on the sidebar.
- > All of the Provisioning Profiles that are installed on your machine will be
- > listed in the center pane. Then perform the following steps:
- > A) Connect your iOS development device to your computer using the
- > USB data cable.
- > B) In the footer-pane, check the "Automatic Device Provisioning"
- > checkbox.
- > C) Click the "Refresh" button.
- > D) If a dialog appears, enter your iOS Developer Program account
- > credentials.
- >
- > This process will create/download or refresh the following, your "iPhone
- > Developer" and "iPhone Distribution" Certificates, and your wildcard "Team
- > Provisioning Profile" which allows you to build to your iOS development
- > device. If you plugged in a development device then it will also install or
- > update profiles on the device as appropriate. The "Refresh" process will
- > automatically renew any expired Certificates or Provisioning Profiles with
- > new ones as needed.
- >
- > If after performing steps 1-6 any configuration changes were made, please
- > try again to either build to device for development, or build your
- > distribution binary. If your problem persists, please continue to the next
- > step.
- >
- > 8) Send us screenshots of your configuration.
- >
- > Please send us the following eight (8) screenshots to help us review your
- > configuration. To take a screenshot in Mac OS X, press: Command+Shift+3.
- > Please do not crop the screenshots after they are created - it is important
- > that all of the screen is visible in each screenshot.
- >
- > Screenshots 1-3: "Target" Properties
- >
- > Choose the Xcode "View" menu > Navigators > Project, and select your root
- > project folder in the upper left corner. This will open the Project Editor
- > in the center pane. Select your Target under the "Targets" section,
- > A) click the "Summary" tab and take a screenshot.
- > B) select the "Build Settings" tab and scroll down to the Code
- > Signing section. Make the entire Code Signing section visible and take a
- > screenshot.
- > C) if you are building to device during development, select the
- > value column for the row under the "Debug" that is to the right of "Any iOS
- > SDK". Take a screenshot which includes the pop-up menu displaying your
- > current selection and available selections. However, if you are building a
- > distribution binary, select the value column for the row under
- > "Distribution" (or "Release") that is to the right of "Any iOS SDK". Take a
- > screenshot which includes the pop-up menu displaying your current selection
- > and available selections.
- >
- > Screenshots 4-5: Scheme toolbar Pop-up Menu
- >
- > A) In your Xcode project window, select the Scheme pop-up menu in the
- > upper-left corner on the toolbar, and take a screenshot with the pop-up
- > showing both, your current Scheme selection and available scheme selections.
- > B) In the Scheme Pop-up, choose "Edit Scheme". The Edit Scheme window
- > displays. Make sure that you have the current Scheme selected that you are
- > using to build (in the upper-left selection field labeled "Scheme") and take
- > a screenshot.
- >
- > Screenshot 6: Keychain Access
- >
- > Open "Keychain Access" (in /Applications/Utilities) and type "iPhone" into
- > the search field in the upper-right corner of the window. If you are
- > building to device during development, select the certificate that starts
- > with "iPhone Developer:" and take a screenshot. Otherwise, if you are
- > building a distribution binary, select the certificate that starts with
- > "iPhone Distribution:" and take a screenshot. In the header view there
- > should be a green circle with a check mark to indicate the certificate is
- > valid.
- >
- > Screenshots 7-8: Organizer Window for Installed Provisioning Profiles
- >
- > Choose the Xcode "Window" menu > Organizer, and click the Devices tab.
- > Select "Provisioning Profiles" from the "Library" section on the sidebar.
- > All of the Provisioning Profiles that are installed on your machine will be
- > listed in the center pane. Take a screenshot. If you are building to device
- > during development, take another screenshot as follows: under the "Devices"
- > section of the sidebar, select "Provision Profiles" under the target
- > (plugged in) device. All of the Provisioning Profiles that are installed on
- > this device will be listed in the center pane. Take a screenshot.
- >
- > Close the Organizer Window.
- >
- > You should have 7 or 8 screenshots depending on whether you're building a
- > distribution binary, or building to device during development, respectively.
- > Finally, within Finder, use the File > Compress menu option to archive the
- > screenshots to a zip file and send them in reply to this email.
- >
- > ------------------------
- > STEPS FOR XCODE 3
- >
- > The majority of code signing errors are the result of iPhone
- > Developer/Distribution certificates and provisioning profiles not being
- > correctly installed on your development system.
- >
- > As a result, we recommend a two-step process to help you resolve this
- > issue.
- >
- > 1. Read Tech Note TN2250
- >
- > Please read through TN2250 Understanding and Resolving Code Signing Issues
- > <http://developer.apple.com/iphone/library/technotes/tn2010/tn2250.html>.
- > This technical note supplements the Program User Guide located on the
- > home page of the iPhone Developer Program Provisioning Portal under Portal
- > Resources.
- >
- > 2. Send Us Screen Shots of Your Configuration
- >
- > If, after reading the Technical Note and verifying your configuration you
- > are still having code signing issues, sending us the following set of screen
- > shots of your current situation will help us help you with this issue.
- >
- > There are eight screenshots we will need from you to clearly understand
- > your configuration.
- >
- > Screenshot 1: Project Base SDK
- >
- > In your Xcode project, choose Project->Edit Project Settings and select the
- > General tab. Select the pop-up next to "Base SDK for All Configurations,"
- > and take a screen shot of the Project General Info including the Base SDK
- > pop-up menu. It is recommended that the selection for the pop-up menu "Base
- > SDK for All Configurations" starts with "Latest iOS". If you don't have a
- > selection that starts with "Latest iOS" selected, then you will need to make
- > sure you have the correct iOS version selected every time you update your
- > Xcode to one that has a new iOS SDK.
- >
- > Screenshot 2: Overview toolbar Pop-up Menu
- >
- > Again in your Xcode project, select the Overview toolbar pop-up menu. Make
- > sure you are building for a device, and that you have the correct active
- > configuration selected. Take a screen shot of the Overview pop-up menu
- > showing your current selections.
- >
- > Screenshots 3: Keychain Access
- >
- > Open "Keychain Access" application's main window and type in "iPhone" into
- > the search field in the top left corner of the window, then select the
- > "Certificates" category. If you are trying to deploy to your device for
- > development select the certificate that starts with the title "iPhone
- > Developer:," or if you are trying to distribute your application select the
- > certificate that starts with the title "iPhone Distribution:." In the
- > information view there should be a green circle with a check mark to
- > indicate that the certificate is valid. Grab a screen shot
- > (Command-Shift-3).
- >
- > If you don't see a disclosure triangle next to a certificate this means
- > your keychain doesn't have your private key for that certificate. Importing
- > the private key for your iPhone Developer/Distribution Certificate from a
- > backup will correct this. If you have lost or deleted your private key you
- > will need to delete the certificate from your keychain, revoke your old
- > certificate in the iPhone Provisioning Portal and then use Automatic Device
- > Provisioning to create a new private key and certificate.
- >
- > Replacing your private key or certificates will not affect applications
- > already on the App Store.
- >
- > Screenshot 4-5: Organizer Windows
- >
- > You may take two screen shots for this step. First, open the "Organizer"
- > under the Window menu in Xcode. Then, under the Development turn down,
- > select Provisioning Profiles. Update your profiles and certificates as
- > described bellow.
- >
- > Beginning in Xcode 3.2.2, Xcode has the ability to create and update your
- > expired certificates and provisioning profiles for you automatically from
- > within the Xcode Organizer.
- >
- > In the Xcode Organizer, select Provisioning Profiles in the DEVELOPMENT
- > group.
- >
- > 0. Plugin your development iOS device into your development computer.
- >
- > 1. Select the checkbox next to the Automatic Device Provisioning option.
- >
- > 2. Click the Refresh button.
- >
- > 3. In the dialog that appears, enter your iOS Developer Program
- > credentials.
- >
- > This process will create and download your developer certificates and a
- > wild card team provisioning profile you can use for development, if your
- > plugged in a development device then it will also update install or update
- > profiles on the device as appropriate. This process will also update your
- > certificates and Provisioning Profiles as needed with new ones that have new
- > expiration dates.
- >
- > Once you have updated them if needed, take a screen shot of the
- > Provisioning Profiles installed on your development machine. Then, still in
- > the Organizer window, if you are attempting to deploy to a device to a
- > device for testing select the iPhone device (under the Devices disclosure
- > triangle) and take a screen shot of Provisioning Profiles installed on your
- > device.
- >
- > Screenshot 6: Target Properties Tab
- >
- > Back in your Xcode project, choose Project->Edit Active Target, and select
- > the Properties tab. Take a screen shot of the Target info window showing
- > the Properties tab. It is important that the Identifier field in Xcode
- > matches the Bundle Identifier portion of the App ID for the provisioning
- > profile you intend to use for code signing. If the App ID for the intended
- > provisioning profile contains a wild card then remember to replace the
- > asterisk with an appropriate string using the reverse-DNS format when you
- > fill in the Bundle Identifier field in your Xcode project.
- >
- > For more information about Wild Card App ID's read Q&A 1713:
- > http://developer.apple.com/library/ios/#qa/qa2010/qa1713.html
- >
- > Screenshot 7: Target Code Signing Identity
- >
- > Still in your Target settings select the Build tab and scroll down to Code
- > Signing. In the Code Signing Section there should be a Code Signing
- > Identity with a disclosure triangle next to it. The Code Signing Section
- > should look like Figure 3 in TN2250 linked to above. Make sure the setting
- > is for "Any iOS," and then select the pop-up menu in the value column. Take
- > a screen shot of the Target info window including the pop-up menu.
- >
- > If the private key for your iPhone Developer/Distribution Certificate is
- > missing, you will be unable to select the Provisioning Profile associated
- > with that certificate. Importing the private key for your iPhone
- > Developer/Distribution Certificate from a backup will correct this. If you
- > have lost or deleted your private key you will need to delete the
- > certificate from your keychain and revoke your old certificate in the iPhone
- > Provisioning Portal and then use Automatic Device Provisioning to create a
- > new private key and certificate.
- >
- > Screenshot 8: Project Code Signing Identity
- >
- > The eight screenshot is just like the seventh screenshot, but using the
- > Project settings. In your Xcode project, choose Project->Edit Project
- > Settings and select the Build tab and scroll down to Code Signing. In the
- > Code Signing Section there should be a Code Signing Identity with a
- > disclosure triangle next to it. The Code Signing Section should look like
- > Figure 3 in TN2250 linked to above, but make sure the setting is for "Any
- > iOS," and the value is "Don't Code Sign," and then select the pop-up menu in
- > the value column. Target settings override project settings, so it is easier
- > if changes to the code signing section are only made in only one place, the
- > target settings. Take a screen shot of the Project info window.
- >
- > This makes a total of 8 screenshots if you are trying to deploy to a
- > device. If you are trying to submit to the app store you should have seven
- > screenshots. Use Finders File > Compress menu item to archive them into a
- > .zip file and send them in a reply to this email.
- >
- > Best Regards,
- >
- > Maurice Cusseaux
- > Developer Technical Support
- > Apple Worldwide Developer Relations
RAW Paste Data