問題
升級 Xcode9 以后斗幼,原有的 fastlane 打包和分發(fā)腳本不能正常使用焚碌。
1庶近、gym export_options 變化
Xcode9 中的 Export 操作需要指定更多的信息枢纠,對應(yīng)的 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"
}
}
})
- 上傳 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
操作掩浙,則此時會更新相應(yīng) ruby 應(yīng)用到最新或者指定版本,相應(yīng)的 Gemfile.lock 文件也會更新秸歧,此時將 Gemfile.lock 文件提交進你的代碼倉庫厨姚,就保存了最近能正常使用的 ruby 應(yīng)用版本信息。
想了解更多键菱,這篇Bundler 的作用及原理文章介紹的很詳細谬墙。