苹果的 AppleID 现在都开启了两步验证,在登录新设备或者进行一些操作时都需要提供二次验证的验证码(已登录设备、绑定手机号、绑定邮箱接收),这个功能提高了 AppleID 的安全性,但也给自动化打包带来了一些困扰,我们的打包过程会被中断,下面就简单介绍两种可以在 fastlane 中移除苹果两步验证的方案。
参考文档:http://docs.fastlane.tools/getting-started/ios/authentication/
使用应用特殊密码
点击链接 appleid.apple.com/account/manage 进入 AppleID 管理页面,点击 App 专用密码,然后生成。(此密码仅展示一次,请注意保存)
将专用密码配置在 fastlane 的环境变量当中即可
1 | ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = "xxxx-xxxx-xxxx-xxxx" |
此种方式仅支持 upload_to_app_store、upload_to_testflight 等上传二进制动作,其他的与 App Store Connect 交互的动作不支持。
使用 App Store Connect API key(推荐)
点击 https://appstoreconnect.apple.com/access/api 进入 App Store Connect 用户与访问下面的 Keys 页面,生成一个 API key(请确保自己有权限使用这个功能,如果看不到这个 tab,也可以让账号持有者帮你创建),获得 key_id,issuer_id 并下载 API Key 的 p8 文件(此文件仅能下载一次,请注意保存)
在调用动作之前,向 Apple 请求获得 api_key,并使用即可
1 | lane :release do |
本人更推荐自动将 api_key 自动写入上下文的这种写法,fastlane 的标准动作都会去上下文当中取 api_key,写法上更方便一点
1 | lane :release do |