Reputation: 602
I have a Cordova app that builds successfully with Fastlane (using "match" and "fastlane-plugin-cordova"), and I'm trying to add push notifications to it - specifically, I'm using Wonderpush and trying to get this working on iOS initially, but I believe my problem is likely generic to any push notification service using notification service extensions.
I've added the wonderpush-cordova-sdk Cordova plugin, and if I build the app manually via Xcode, it builds fine.
However, if I try to build it via Fastlane, I receive the error:
error: Provisioning profile "match AppStore uk.co.mycompany.my-app" has app ID "uk.co.mycompany.my-app", which does not match the bundle ID "uk.co.mycompany.my-app.WonderPushNotificationServiceExtension". (in target 'WonderPushNotificationServiceExtension' from project 'My App')
(full trace below in case it's useful)
The problem seems to be that I need to configure the profiles/certificates/match correctly, but I've been looking in the Fastlane docs, and generally searching on SO/Google and have thus far been unable to find any examples I can follow of people who have this working correctly.
I've tried taking parts of solutions culled from links such as https://github.com/fastlane/fastlane/issues/12826 and https://github.com/fastlane/fastlane/issues/8563 but have been so far unable to find a combination of configuration lines that gets this working for me.
My Fastfile is fairly straightforward:
desc "Ship to Testflight"
lane :beta do
setup_project
changelog_from_git_commits
match(type: 'appstore')
cordova(
platform: 'ios',
)
upload_to_testflight(
ipa: ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'],
)
end
As I say, whilst I'm using Wonderpush, I assume you'd hit the same question when trying to implement any push notification services that adds an extension that needs signing in this fashion?
Any advice or pointers on how to proceed would be very much appreciated!
Full error log in case it's helpful:
[15:01:17]: Exit status of command 'npx --no-install cordova compile ios --release --device --packageType=app-store --developmentTeam=XXXXXXX --provisioningProfile=xxxxxxxxxxxxxxxxxxxx -- ' was 65 instead of 0.
Building project: /Users/me/Sites/project/src-cordova/platforms/ios/My App.xcworkspace
Configuration: Release
Platform: device
Target:
Running command: xcodebuild -workspace My App.xcworkspace -scheme My App -configuration Release -destination generic/platform=iOS -archivePath My App.xcarchive archive CONFIGURATION_BUILD_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/device SHARED_PRECOMPS_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/sharedpch
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace "My App.xcworkspace" -scheme "My App" -configuration Release -destination generic/platform=iOS -archivePath "My App.xcarchive" archive CONFIGURATION_BUILD_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/device SHARED_PRECOMPS_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/sharedpch
User defaults from command line:
IDEArchivePathOverride = /Users/me/Sites/project/src-cordova/platforms/ios/My App.xcarchive
Build settings from command line:
CONFIGURATION_BUILD_DIR = /Users/me/Sites/project/src-cordova/platforms/ios/build/device
SHARED_PRECOMPS_DIR = /Users/me/Sites/project/src-cordova/platforms/ios/build/sharedpch
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
error: Provisioning profile "match AppStore uk.co.mycompany.my-app" has app ID "uk.co.mycompany.my-app", which does not match the bundle ID "uk.co.mycompany.my-app.WonderPushNotificationServiceExtension". (in target 'WonderPushNotificationServiceExtension' from project 'My App')
** ARCHIVE FAILED **
xcodebuild: Command failed with exit code 65
+------+----------------------------------+-------------+
| fastlane summary |
+------+----------------------------------+-------------+
| Step | Action | Time (in s) |
+------+----------------------------------+-------------+
| 1 | default_platform | 0 |
| 2 | Switch to ios setup_project lane | 0 |
| 3 | is_ci | 0 |
| 4 | changelog_from_git_commits | 0 |
| 5 | is_ci | 0 |
| 6 | is_ci | 0 |
| 7 | is_ci | 0 |
| 8 | match | 5 |
| 9 | produce | 1 |
| 10 | is_ci | 0 |
| 11 | is_ci | 0 |
| 12 | is_ci | 0 |
| 13 | match | 5 |
| 💥 | cordova | 6 |
+------+----------------------------------+-------------+
[15:01:17]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
Traceback (most recent call last):
33: from /Users/me/.rvm/gems/ruby-2.7.1/bin/ruby_executable_hooks:24:in `<main>'
32: from /Users/me/.rvm/gems/ruby-2.7.1/bin/ruby_executable_hooks:24:in `eval'
31: from /Users/me/.rvm/gems/ruby-2.7.1/bin/fastlane:23:in `<main>'
30: from /Users/me/.rvm/gems/ruby-2.7.1/bin/fastlane:23:in `load'
29: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/bin/fastlane:23:in `<top (required)>'
28: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
27: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
26: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
25: from /Users/me/.rvm/gems/ruby-2.7.1/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
24: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
23: from /Users/me/.rvm/gems/ruby-2.7.1/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
22: from /Users/me/.rvm/gems/ruby-2.7.1/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
21: from /Users/me/.rvm/gems/ruby-2.7.1/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
20: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
19: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
18: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
17: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:45:in `execute'
16: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:45:in `chdir'
15: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
14: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/lane.rb:33:in `call'
13: from Fastfile:97:in `block (2 levels) in parsing_binding'
12: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
11: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
10: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
9: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:229:in `chdir'
8: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
7: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
6: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
5: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-plugin-cordova-3.0.0/lib/fastlane/plugin/cordova/actions/cordova_action.rb:129:in `run'
4: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-plugin-cordova-3.0.0/lib/fastlane/plugin/cordova/actions/cordova_action.rb:116:in `build'
3: from /Users/me/.rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/forwardable.rb:235:in `sh'
2: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane/lib/fastlane/helper/sh_helper.rb:80:in `sh_control_output'
1: from /Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing'
/Users/me/.rvm/gems/ruby-2.7.1/gems/fastlane-2.155.3/fastlane_core/lib/fastlane_core/ui/interface.rb:153:in `shell_error!': \e[31m[!] Exit status of command 'npx --no-install cordova compile ios --release --device --packageType=app-store --developmentTeam=XXXXXXX --provisioningProfile=xxxxxxxxxxxxxxxxxxxx -- ' was 65 instead of 0. (FastlaneCore::Interface::FastlaneShellError)
Building project: /Users/me/Sites/project/src-cordova/platforms/ios/My App.xcworkspace
Configuration: Release
Platform: device
Target:
Running command: xcodebuild -workspace My App.xcworkspace -scheme My App -configuration Release -destination generic/platform=iOS -archivePath My App.xcarchive archive CONFIGURATION_BUILD_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/device SHARED_PRECOMPS_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/sharedpch
Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace "My App.xcworkspace" -scheme "My App" -configuration Release -destination generic/platform=iOS -archivePath "My App.xcarchive" archive CONFIGURATION_BUILD_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/device SHARED_PRECOMPS_DIR=/Users/me/Sites/project/src-cordova/platforms/ios/build/sharedpch
User defaults from command line:
IDEArchivePathOverride = /Users/me/Sites/project/src-cordova/platforms/ios/My App.xcarchive
Build settings from command line:
CONFIGURATION_BUILD_DIR = /Users/me/Sites/project/src-cordova/platforms/ios/build/device
SHARED_PRECOMPS_DIR = /Users/me/Sites/project/src-cordova/platforms/ios/build/sharedpch
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
error: Provisioning profile "match AppStore uk.co.mycompany.my-app" has app ID "uk.co.mycompany.my-app", which does not match the bundle ID "uk.co.mycompany.my-app.WonderPushNotificationServiceExtension". (in target 'WonderPushNotificationServiceExtension' from project 'My App')
** ARCHIVE FAILED **
xcodebuild: Command failed with exit code 65
Upvotes: 1
Views: 1875
Reputation: 319
Hej,
I dont't know if you did solve the problem in the meantime, but I recall we once had similar problems when working on our OneSignal Push integration.
You need to make sure, that you don't call match only for the app itself, but also for that service extension, like so:
ext_identifier = app_id + ".OneSignalNotificationServiceExtension"
match(
app_identifier: [app_id, ext_identifier],
type: "appstore",
git_branch: gitBranch
)
We didn't use that ServiceExtension in the end, so it was removed again in our scenario - but I hope it helps.
Anne
Upvotes: 2