在使用通知扩展的应用程序中使用Fastlane

时间:2018-07-01 10:24:53

标签: 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

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

我尝试为不同的包标识符手动创建多个配置文件,但是fastlane只选择一个。我该如何解决?

1 个答案:

答案 0 :(得分:1)

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

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

如果要使用匹配,可以用以下内容替换export_options

match(
    app_identifier:["com.myapp.ios","com.myapp.ios.OneSignalNotificationServiceExtension"],
    type: "appstore"
)
相关问题