将 fastlane 与使用通知扩展的应用程序结合使用

Tom*_*you 7 ios fastlane

我正在使用 fastlane 构建我的应用程序并将其发送到 testflight。这一直有效,直到我添加了通知扩展。现在它总是给我错误:

错误域 = IDEProvisioningErrorDomain 代码 = 9 “OneSignalNotificationServiceExtension.appex”需要具有应用程序组功能的配置文件。” UserInfo={NSLocalizedDescription="OneSignalNotificationServiceExtension.appex" 需要具有应用程序组功能的配置文件。, NSLocalizedRecoverySuggestion=将配置文件添加到导出选项属性列表中的“provisioningProfiles”字典中。}

一切都应该在 Xcode 上自动处理,我的 fastfile 如下所示:

default_platform(:ios)

platform :ios do
  before_all do
    increment_build_number
  end

  desc "Push a new beta build to TestFlight"
  lane :beta do
    get_certificates           # invokes cert
    get_provisioning_profile   # invokes sigh
    build_app(workspace: "MyApp.xcworkspace", scheme: "MyApp (Production)")
    pilot(skip_waiting_for_build_processing: true)
  end
end
Run Code Online (Sandbox Code Playgroud)

我的应用程序的捆绑包标识符类似于 com.myapp.ios,我的通知服务的捆绑包标识符类似于 com.myapp.ios.notificationservice。

我尝试过手动为不同的捆绑包标识符创建多个配置文件,但 fastlane 只选择一个。我怎样才能解决这个问题?

Tom*_*you 7

我通过更改手动指定快速文件中的配置文件来修复此问题,如下所示:

default_platform(:ios)

platform :ios do
  before_all do
    increment_build_number
  end

  desc "Push a new beta build to TestFlight"
  lane :beta do
    get_certificates           # invokes cert
    get_provisioning_profile   # invokes sigh
    build_app(workspace: "MyApp.xcworkspace", 
    scheme: "MyApp (Production)", 
    export_method: "app-store",
        export_options: {
            provisioningProfiles: { 
                "com.myapp.ios" => "com.myapp.ios AppStore 1530397498",
                "com.myapp.ios.OneSignalNotificationServiceExtension" => "MyApp Notification Extension Provisioning Profile"
            }
        })
    pilot(skip_waiting_for_build_processing: true)
  end
end
Run Code Online (Sandbox Code Playgroud)

如果你想使用匹配,你可以export_options用这个替换:

match(
    app_identifier:["com.myapp.ios","com.myapp.ios.OneSignalNotificationServiceExtension"],
    type: "appstore"
)
Run Code Online (Sandbox Code Playgroud)