问题描述
您好,我们在使用 fastlane sigh/get_provisioning_profile 时遇到此错误。我不认为它是 fastlane issue,因为它发生在 case1 case2 之前并通过接受协议或其他未知原因得到修复..
需要承认 Apple 的 Apple ID 和隐私声明。请手动登录https://appleid.apple.com(或https://appstoreconnect.apple.com)以确认声明。
我们去了
但没有什么需要批准的。
有什么想法吗?
解决方法
总结:
案例 1:
* 您不希望启用 2FA
- 使用 fastlane 2.173.0 更新 Gemfile 并运行
bundle install
、bundle update fastlane
或bundle update
- 在 CI 中使用
SPACESHIP_SKIP_2FA_UPGRADE=1
情况 2:
* 您启用了 2FA
* 您只需要非企业帐号
- 使用 appstore connect 从 Account Holder role 生成
APP_STORE_CONNECT_API_KEY
。
看起来像
-----BEGIN PRIVATE KEY-----\nabcdef12345abcdef12345\n-----END PRIVATE KEY-----
- 将其作为 APP_STORE_CONNECT_API_KEY 环境变量添加到您的 CI 中
lane :get_app_store_connect_api_key do
ensure_env_vars(
env_vars: [
'APP_STORE_CONNECT_API_KEY'
]
)
app_store_connect_api_key(
key_id: "12345ABCDEF",issuer_id: "1234abcd-12ab-12ab-12ab-123456abcdef",key_content: "#{ENV["APP_STORE_CONNECT_API_KEY"]}".gsub('\n','\\n'),in_house: false,)
end
- 把它传到你的车道
get_provisioning_profile(api_key: get_app_store_connect_api_key)
sigh(api_key: get_app_store_connect_api_key)
pilot(api_key: get_app_store_connect_api_key)
案例 3:
* 您启用了 2FA
* 您需要企业帐户并获取配置文件
- 运行
fastlane spaceauth -u user@email.com
-
将输出用作 CI 上的
FASTLANE_SESSION
环境变量。 -
您仍然需要包含
FASTLANE_PASSWORD
请注意,这仅持续 8 小时
案例 4:
* 您启用了 2FA
* 您需要企业或非企业帐号
* 您需要上传到应用商店
-
从 https://appleid.apple.com/account/manage 创建 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
-
在您的 ci 中将其设置为环境变量
案例 5:
* 您启用了 2FA
* 你需要从 appstore connect 下载 dsyms
- 运行
fastlane spaceauth -u user@email.com
-
将输出用作 CI 上的
FASTLANE_SESSION
环境变量。 -
您仍然需要包含
FASTLANE_USER
和FASTLANE_PASSWORD
请注意,这仅持续 8 小时
,我在使用 Bitrise(另一个 CI/CD 工具)时遇到了同样的问题。该错误消息具有误导性,因为它与接受某些新政策无关,而是与 App Store Connect API 使用的新身份验证系统有关。
为了解决这个问题,我登录了 Bitrise,我不得不切换到新的身份验证方法,如下图所示。
旧的身份验证方法基于单个 Apple Developer 用户的凭据,而新方法则基于 API 密钥的生成。正如您从下面的屏幕截图中看到的,我必须在 User and Access -> Keys 下创建一个 API 密钥,然后将其上传到 Bitrise。
我希望我的案例可以帮助其他人解决问题。我敢肯定,即使您使用不同的工具,您也必须或多或少地遵循相同的程序。
,我正在使用 Apple 帐户对 fastlane 操作进行身份验证和授权。
更改我的 CI 以使用 Apple API key 似乎可以解决问题。
Fasltane 应该使用 app_store_connect_api_key
这里的文档: http://docs.fastlane.tools/actions/app_store_connect_api_key/#app_store_connect_api_key
,您是否检查过 2FA 设置?
Apple 宣布:“从 2021 年 2 月开始,所有用户都需要额外的身份验证才能登录 App Store Connect。”
,对于 Azure DevOps 用户,在我们等待合并 AppStoreConnect Api 密钥支持期间,临时 SPACESHIP_SKIP_2FA_UPGRADE=1
起作用:
https://github.com/microsoft/app-store-vsts-extension/pull/189
编辑
拉取请求已合并,API 身份验证现在可以工作,并且是首选的身份验证方式。
,对于那些使用 Pilot 的人,有一个简单的解决方案:
只需将其添加到 Pilot:
skip_waiting_for_build_processing: true,apple_id: "123456789"
您可以在 AppStoreConnect 的通用 > 应用信息中找到 apple_id
参考: https://dev.to/dumazy/upload-to-testflight-with-fastlane-and-2fa-11k8
,就我而言,以下解决方案适用于上传 ipa 文件
lane :upload_ipa do |options|
api_key = app_store_connect_api_key(
key_id: "xxxxx",issuer_id: "xxxxxx",key_filepath: "./fastlane/AuthKey_xxxxx.p8",#Mention the relative path
duration: 1200,# optional
in_house: false,# optional but may be required if using match/sigh
)
# The ipa and team_id are sent as options parameters to the method
pilot(api_key: api_key,ipa: options[:ipa],team_id: options[:team_id],skip_waiting_for_build_processing: true,wait_processing_interval: 120,app_platform: options[:app_platform])
end