Использование fastlane с приложением, которое использует расширение уведомлений - PullRequest
0 голосов
/ 01 июля 2018

Я использую fastlane для сборки и отправки своего приложения в testflight. Это работало, пока я не добавил расширение уведомления. Теперь это всегда дает мне ошибку:

Ошибка домена = IDEProvisioningErrorDomain Code = 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 голосов
/ 27 сентября 2018

Я исправил это, изменив вручную указав профили обеспечения в своем 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)", 
    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"
)
...