bamlab / fastlane-plugin-cordova

Integrate your Cordova build into your Fastlane setup

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using match build fails the second time

lockenj opened this issue · comments

Hey gang! Love the plugin great work on this guys.

The issue I see is when match runs the first time and installs the development provisioning profile it sets ENV["SIGH_UUID"] which this plugin sees and provides --provisioningProfile=... on to the cordova compile command. If this is run after the provisioning profile has been installed ENV["SIGH_UUID"] is not set and the provisioningProfile flag is not passed, this results in a build failure

Code Signing Error: No profiles for '<MYAPP>' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '<MYAPP>'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.

Here is the lane:

lane :build do
    UI.message "ios build()"
    match(
        type: 'development'
    )
    cordova(
      platform: 'ios',
      release: false,
      type: 'development'
    )
end

Workaround

I have worked around this issue by making a second call directly to get_provisioning_profile this seems to have the side affect of setting ENV["SIGH_UUID"]. Does anyone have a better workaround for this?

lane :build do
    UI.message "ios build()"
    match(
      type: 'development'
    )
    get_provisioning_profile(
      development: true,
      skip_install: true,
      app_identifier: 'com.wonky.mobile',
      readonly: true
    )
    cordova(
      platform: 'ios',
      release: false,
      type: 'development'
    )
  end

For the record my workaround didn't entirely fix the issue. If the app was deleted and recreated (as it is in my CI environment) using the same bundle id without nuking the provisioning profiles this fails. So my latest worked around is this.

  lane :build do
    match(
      type: 'development'
    )
    ENV['SIGH_UUID'] = ENV['sigh_com.wonky.mobile_development'];
    cordova(
      platform: 'ios',
      release: false,
      type: 'development'
    )
  end

Anyone have any better ideas?

Closing this as the project that needed this has since been deprecated.