har*_*all 4 heroku ios testflight fastlane
我遵循了登机 github 页面上的“入门”指南,但在我的 heroku 页面上不断收到此错误 We're sorry, but something went wrong.
登机页面确实说双因素身份验证有效并转到这里:https : //github.com/fastlane/fastlane/blob/master/spaceship/README.md#2-step-verification但我不确定如何将该cookie添加到我的heroku站点。
提前致谢。
Fastlane 现在(从2.160.0版本开始)支持Apple 的 App Store Connect API。这避免了 2FA 会话黑客的所有问题。仍然有一些 fastlane 操作没有得到完全支持,但大多数都得到了支持。
https://docs.fastlane.tools/app-store-connect-api/解释了如何在 fastlane 中开始使用 API 密钥。
总之,您需要执行以下操作(这些示例直接来自该文档):
app_store_connect_api_key操作在您的Fastfile:lane :release do
api_key = app_store_connect_api_key(
key_id: "D383SF739",
issuer_id: "6053b7fe-68a8-4acb-89be-165aa6465141",
key_filepath: "./AuthKey_D383SF739.p8",
duration: 1200, # optional
in_house: false, # optional but may be required if using match/sigh
)
pilot(api_key: api_key)
end
Run Code Online (Sandbox Code Playgroud)
或者,将详细信息写入 JSON 文件:
{
"key_id": "D383SF739",
"issuer_id": "6053b7fe-68a8-4acb-89be-165aa6465141",
"key": "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHknlhdlYdLu\n-----END PRIVATE KEY-----",
"duration": 1200, # optional
"in_house": false, # optional but may be required if using match/sigh
}
Run Code Online (Sandbox Code Playgroud)
并在您的 JSON 文件中引用Fastfile:
lane :release do
pilot( api_key_path: "fastlane/D383SF739.json" )
end
Run Code Online (Sandbox Code Playgroud)
或者通过命令行:
$ fastlane pilot distribute --api_key_path fastlane/D383SF739.json
Run Code Online (Sandbox Code Playgroud)
请遵循https://docs.fastlane.tools/best-practices/continuous-integration/#application-specific-passwords
如果您想从 CI 机器将构建上传到 App Store Connect(操作 upload_to_app_store 和交付)或 TestFlight(操作 upload_to_testflight、pilot 或 testflight),则需要生成应用程序特定密码:
注意:如果您的操作用途除了上传二进制文件之外还执行其他任何操作,例如更新任何元数据(例如设置发行说明或分发给测试人员等),则应用程序特定的密码将不起作用。
这就是我最近启用 2FA 时使用 Fastlane 设置 2FA 的方法。
与 Apple API 交互的所有其他操作不接受应用程序特定的密码。
这是您需要在 Fastlane 中存储并使用 cookie 的地方。我必须通过 CI/CD 设置来更新变更日志。
解锁钥匙串以存储我的用户密码
安全解锁钥匙串 -p $SYSTEM_PASSWORD
生成重定向到文件 (token.txt) 的 cookie。
捆绑执行 fastlane spaceauth -u ci-user@company.com >& token.txt
将身份验证令牌提取到文件“session”
awk -F"'" '$0=$2' token.txt > 会话
在运行 Fastlane 通道之前设置 FASTLANE_SESSION 变量,它会从上面创建的“会话”文件中读取值。
导出 FASTLANE_SESSION='$(<会话)'
照常运行 Fastlane 试飞通道。
在上面,我使用了两种方法,如果您只是将包上传到 Testflight,则只需设置 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 变量。
| 归档时间: |
|
| 查看次数: |
3382 次 |
| 最近记录: |