Skip to content

Manual signing with distribution provisioning profile fails with NS 2.5 #2501

Closed

Description

@dbenninger

When specifying the provisioning profile with the new command line parameter "--provision", the "CODE_SIGN_IDENTITY = iPhone Distribution" in build.xcconfig is ignored and "iPhone Developer" is used. The xcode build fails with the error message 'Provisioning profile "" doesn't include signing certificate "iPhone Developer: ..."' because it cannot find a developer certificate for the adhoc distribution provisioning profile.

To reproduce:

  1. Use NS 2.5 to create a test app: tns create "SignTest" --ng
  2. In the file app/App_Resources/iOS/build.xcconfig, enable CODE_SIGN_IDENTITY = iPhone Distribution;
  3. Create an adhoc distribution provisioning profile for your SignTest app id and link it to your distribution certificate
  4. Install the distribution provisioning profile and distribution certificate locally
  5. Run the build with: tns build ios --release --for-device --provision (UUID)
  6. The build fails with: Provisioning profile "..." doesn't include signing certificate "iPhone Developer: ..."

Manually editing the generated project.pbxproj and replacing "iPhone Developer" with "iPhone Distribution" solves the issue.

Opening the generated project settings in xcode shows you the same error message:
xcode

Activity

  1. self-assigned this
    on Feb 7, 2017
  2. patrickpereira commented on Apr 5, 2017

    @patrickpereira

    Any fixes for this one?

  3. spike1292 commented on Apr 5, 2017

    @spike1292

    having the same problem.
    is there a workaround?

  4. pkoleva commented on Apr 6, 2017

    @pkoleva
    Contributor

    Hey guys, sorry for not updating you. We haven't got the time to fix this with all the improvements around 3.0.0 RC. We'll consider it for a future release. I also have the same issue and am constantly reminding about it :). For now I recommend you to not use this option and as a workaround set PROVISIONING_PROFILE = <name > in build.xcconfig.

  5. spike1292 commented on Apr 6, 2017

    @spike1292

    @pkoleva thank you for the update, will try to use the PROVISIONING_PROFILE workaround.
    We where using PROVISIONING_PROFILE_SPECIFIER but this is not working any more, any chance you will also support the specifier?

  6. PanayotCankov commented on Apr 11, 2017

    @PanayotCankov
    Contributor

    @dbenninger once you use --provision it sets the provision's attributes in the pbxproj and they have higher precedence than the xcconfig. The --provsion should be able to use distribution certificates since #2705. If there is high demand we can either clear the pbxprj if no "--provision" is used or provide special option like "--provision -" or something that would clear its effect. The current design is to allow "tns prepare ios --provsion MyDevProfile" to be called once and skip the --provision flag in subsequent interactions with the CLI during development.

    PROVISIONING_PROFILE_SPECIFIER should be good to go again with #2705, we used to check if the xcconfig has PROVISIONING_PROFILE and switch to manual signing mode if it was specified. I've added checks for the specifier too.

  7. added this to the 3.1.0 milestone on Apr 27, 2017
  8. spike1292 commented on May 23, 2017

    @spike1292

    @PanayotCankov tested --provision with nativescript@next. It works with developer profiles & App Store profiles. But not with adhoc profiles.

    tns prepare ios --bundle --provision "match AdHoc nl.energiedirect.selfserviceapp" --release

    when I open xcode I see this:
    screen shot 2017-05-23 at 14 42 59
    when I check the provision profile it looks fine:
    screen shot 2017-05-23 at 14 41 03

    to be sure I just cleaned my /Users/me/Library/MobileDevice/Provisioning Profiles folder

    so now I can't run my adhoc builds with a ci server, because of the manual interaction.

  9. assigned and unassigned on Jun 19, 2017
  10. modified the milestones: 3.2.0, 3.1.0 on Jun 29, 2017
  11. dtopuzov commented on Aug 14, 2017

    @dtopuzov
    Contributor

    @vbresults @spike1292 @patrickpereira @dbenninger

    This should be fixed in nativescript@next

    Can you please try:

    npm un -g nativescript
    npm cache clean
    npm i -g nativescript@next
    tns build ios --provision <id> --release --for-device
    

    Please let us know if you still encounter some issues.

  12. removed this from the 3.2.0 milestone on Aug 15, 2017
  13. PanayotCankov commented on Aug 15, 2017

    @PanayotCankov
    Contributor

    When --provision is used, there should be no signing or provisioning switches configured manually in the build.xcconfig. If you have configured the build.xcconfig use the tns commands without --provision. These are mutually exclusive for the moment.

    Providing --provision with development or distribution certificate will set the proper code signing in the pbxproj now.

  14. dtopuzov commented on Aug 18, 2017

    @dtopuzov
    Contributor

    I can confirm signing with distribution provisioning works in @next and it will be officially released in nativescript@3.2.0.

    As @PanayotCankov explained above, --provision is mutually exclusive with provisioning switches configured manually in the build.xcconfig

    @vbresults @spike1292 @patrickpereira @dbenninger
    Please let us know if you still encounter some issues.

  15. added this to the 3.2.0 milestone on Aug 18, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions