Xcode 8.0 Automatically Manage Signing behaviour

前端 未结 2 521
-上瘾入骨i
-上瘾入骨i 2020-12-23 22:41

I had been using the Automatically Manage Signing option for some time. Yet when I do so in the recent Xcode 8.0 version it forces me to use the developer Code Signing Ident

相关标签:
2条回答
  • 2020-12-23 23:10

    Here is the process of Enable manual signing

    1. In the project editor, choose the target from the Project/Target pop-up menu, click Signing & Capabilities, then reveal the Signing settings.

    2. Click All or a specific build configuration.

      For example, you can use automatic signing for the Release configuration and manual signing for the Debug configuration.

    3. Unselect "Automatically manage signing".

      Note: If the target doesn’t use a provisioning profile (for example, a framework), choose a team from the Team pop-up menu.

    4. From the Provisioning Profile pop-up menu, choose a custom provisioning profile.

      The menu contains all custom provisioning profiles for all your teams that match the target’s bundle ID. The menu may contain expired and invalid provisioning profiles—for example, a provisioning profile with an App ID that changed in your developer account.

      If the provisioning profile you want to use doesn’t appear in the menu, you can either download the provisioning profile or import the provisioning profile.

    For more info: https://help.apple.com/xcode/mac/current/#/dev1bf96f17e

    0 讨论(0)
  • 2020-12-23 23:13

    With the release of Xcode 8, Apple introduced a new way of managing the signing configuration. Now you have two options Manual and Automatic.

    This new Automatic Signing doesn't work the same way as it did in previous Xcode versions. Before, when you set Automatic provisioning profiles, Xcode was using the first provisioning profile and certificate in your computer that matches the entitlements and bundle identifier that you were trying to use.

    In Xcode 8, Automatic Signing is going to manage profiles, entitlements and certificates for you, but only for Development. If you select automatic, you are forced to use Development signing and Xcode-created provisioning profiles.

    On the WWDC 2016 (Session 401 - What's new in Xcode app signing) they explain this new signing method and describe some 'Best Practices'. When you are building for distribution and using Automatic Signing or Manual you should Archive for Development and then export (from the organizer or the command line tools xcodebuild -exportArchive) as Distribution. The organizer will re-sign your app for Distribution even if it was archived for Development.

    The other issue that you describe, "Missing Push Notification Entitlement" is because Xcode 8 has changed the way it applies entitlements. With previous versions of Xcode, you didn't have to explicitly add the APS Environment entitlement, it was enough if your provisioning profile had that entitlement. Make sure that you have the Push Notification capability enabled in the Capabilities tab, and check that there are no errors there.

    (Edit: this new behavior is intentional and described in the Xcode 8 release notes: https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_44)

    Xcode 8 does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor’s Capabilities pane, or manually add the entitlement to your entitlements file. (28076333)

    0 讨论(0)
提交回复
热议问题