fastlane Xcode9 The call to the iTMSTransporter completed with a non-zero exit status: 1. This indicates a failure.

問題

升級 Xcode9 以后,原有的 fastlane 打包和分發(fā)腳本不能正常使用。

1、gym export_options 變化

Xcode9 中的 Export 操作需要指定更多的信息,對應的 fastlane 中的 gym action 也同樣需要把更多的信息指明,原有最簡單的腳本,可能已不能正常工作:

// 在 Xcode9 中可能不能正常工作
gym(scheme: "MyApp", workspace: "MyApp.xcworkspace")

你需要更多的配置信息:

// 指定 export plist 文件路徑
gym({
    workspace: "MyApp.xcworkspace"
    scheme: "MyApp",
    configuration: 'Release',
    export_xcargs: "-allowProvisioningUpdates",
    export_options: './exportOptions_appStore.plist'
    })

// 或者直接將相關(guān)信息追加到參數(shù)里面
gym({
      scheme: "appScheme"
      configuration: "Debug",
      export_method: "development",
      export_xcargs: "-allowProvisioningUpdates",
      export_options: {
                provisioningProfiles: {
                    "com.example.appId" => "app_dev",
                    "com.example.appId.NotificationServiceExtension" => "app_notification_dev"
                }
            }
    })
  1. 上傳 iTunes 失敗
    需要更新 fastlane 版本到 2.56.0 以上,在之后的版本適配了 Xcode9 的上傳問題。

3、fastlane 版本無法更新
如果你使用了 plugin,在運行 bundle install 后發(fā)現(xiàn) fastlane 版本又回退到了某個版本,此時你需要執(zhí)行:

bundle update fastlane

在執(zhí)行上面命令時,我遇到一個 git 讀寫權(quán)限的問題,直接加上管理員權(quán)限即可:

sudo bundle update fastlane

之后你會發(fā)現(xiàn)你的 Gemfile.lock 文件也有更新,需要將這個文件提交進你的代碼倉庫。

說明:
如果你使用了 plugin ,在你的的 Gemfile 中沒有指定使用的 fastlane(以及其它插件) 版本,bundler 會默認使用你上一次使用的版本,這個版本信息記錄在 Gemfile.lock 文件中。
你在執(zhí)行 bundle install 會直接使用 Gemfile.lock 文件中的版本。
如果你執(zhí)行 bundle update 操作,則此時會更新相應 ruby 應用到最新或者指定版本,相應的 Gemfile.lock 文件也會更新,此時將 Gemfile.lock 文件提交進你的代碼倉庫,就保存了最近能正常使用的 ruby 應用版本信息。
想了解更多,這篇Bundler 的作用及原理文章介紹的很詳細。

參考

官方issure10004

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容