[英]Build iOS app with Notification Extension with fastlane
[英]Using Fastlane for Push Notification services? (Wonderpush iOS, in this instance)
我有一個使用 Fastlane 成功構建的 Cordova 應用程序(使用“match”和“fastlane-plugin-cordova”),我正在嘗試向它添加推送通知 - 具體來說,我正在使用 Wonderpush 並試圖讓它工作最初在 iOS 上,但我相信我的問題可能適用於任何使用通知服務擴展的推送通知服務。
我添加了 wonderpush-cordova-sdk Cordova 插件,如果我通過 Xcode 手動構建應用程序,它構建得很好。
但是,如果我嘗試通過 Fastlane 構建它,我會收到錯誤消息:
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')
(如果有用,請在下面完整跟蹤)
問題似乎是我需要正確配置配置文件/證書/匹配,但我一直在查看 Fastlane 文檔,並且通常在 SO/Google 上進行搜索,但迄今為止無法找到我可以遵循的任何示例有這個正常工作的人。
我已經嘗試從https://github.com/fastlane/fastlane/issues/12826和https://github.com/fastlane/fastlane/issues/8563等鏈接中挑選出部分解決方案,但到目前為止無法找到讓我工作的配置行的組合。
我的 Fastfile 相當簡單:
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
正如我所說,當我使用 Wonderpush 時,我假設您在嘗試實現任何添加需要以這種方式簽名的擴展的推送通知服務時會遇到同樣的問題?
任何有關如何進行的建議或指示將不勝感激!
完整的錯誤日志以防萬一:
[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
嘿嘿,
我不知道你是否同時解決了這個問題,但我記得我們在處理 OneSignal Push 集成時曾經遇到過類似的問題。
您需要確保不僅為應用程序本身調用 match,還為該服務擴展調用 match,如下所示:
ext_identifier = app_id + ".OneSignalNotificationServiceExtension"
match(
app_identifier: [app_id, ext_identifier],
type: "appstore",
git_branch: gitBranch
)
我們最終沒有使用該 ServiceExtension,因此在我們的場景中再次將其刪除 - 但我希望它有所幫助。
安妮
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.