首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于fastlane的双因素认证

基于fastlane的双因素认证
EN

Stack Overflow用户
提问于 2020-08-20 15:13:24
回答 3查看 23.6K关注 0票数 24

我发布了我的应用程序,以消防分发抛飞快,而使用CI机。我正面临着2FA的问题。

我用Match检索我的证书。这就是我在"Appfile“下的内容

代码语言:javascript
运行
复制
app_identifier "com.example.example" # the bundle 
apple_id "appleAcount@gmail.com" # Your Apple
team_id "abcd..."  # Developer Portal Team ID
ENV["FASTLANE_USER"] = "appleAcount@gmail.com"
ENV["MATCH_PASSWORD"] = ""
ENV["FASTLANE_PASSWORD"] = ""
ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = ""

这是我收到的错误:

为帐户“appleAcount@gmail.com”启用了双因素身份验证(6位代码),有关双因素身份验证的更多信息:https://support.apple.com/en-us/HT204915 如果您在非交互式会话(例如服务器或CI)中运行此操作,请检查https://github.com/fastlane/fastlane/tree/master/spaceship#2-step-verification。 (输入sms以转义此提示符,并选择一个受信任的电话号码作为文本消息发送代码) (您还可以将环境变量SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER设置为自动化)(请参阅更多的at:) 请输入六位码:

我读过这个"https://docs.fastlane.tools/best-practices/continuous-integration/“,但没有运气。有人能帮我解决这个问题吗?

EN

回答 3

Stack Overflow用户

发布于 2020-10-13 18:03:03

在最近的发行版(从2.157.02.163.0到目前为止),fastlane团队做了一个很棒的工作,以支持在许多操作中使用应用程序商店连接API的API键 (pilotdelivermatch等)--每个工具的状态都是可在这里找到

使用API密钥无需提供苹果帐户来验证和授权fastlane操作在account上执行操作,这也意味着您将不再与CI计算机上的两个因素问题抗争,或者在会话无效时必须通过fastlane spaceauth手动重新生成会话。

来自应用程序存储连接API密钥页

生成API密钥允许您为该密钥配置、验证和使用一个或多个Apple服务。密钥不会过期,但一旦创建,就不能修改以访问更多的服务。一次最多可以有50个活动键。

使用API键还有其他好处,这是推荐的解决方案,如快车道文件中所解释的。

fastlane过去一直使用带有用户名和密码的Apple来使用基于cookie的web会话进行身份验证。fastlane将继续使用相同的基于cookie的web会话来使用App连接API的非官方版本进行身份验证。 但是,当您能够使用API密钥身份验证时,建议使用。这些好处包括:

  • 不需要2FA
  • 性能更好
  • 有记录的API
  • 增加可靠性

我不会在这里详细介绍设置和使用API键的步骤,因为在文献资料中已经很好地解释了这个步骤,但是下面是主要步骤:

  1. 从Account创建一个新的API密钥(必须有"Account Holder“角色来创建),并将其分配为App 角色(cf )。角色权限文档),
  2. 把钥匙和它的信息存储在你的CI上,
  3. Fastfile中,使用存储在2中的值调用app_store_connect_api_key操作。
  4. 在调用操作时,将3.返回的值作为api_key参数传递,或者让操作从泳道上下文(如果它支持的话)自动检索其值。

2由于无效会话造成的2FA问题:

应消失:)

票数 67
EN

Stack Overflow用户

发布于 2020-09-09 21:09:59

您需要设置一个环境变量‘FASTLANE_SESSION’=‘-\n’令牌。

要获得此令牌,需要使用以下命令手动进行身份验证:

快车道空间-u YOUR_APP_STORE_EMAIL

例如,快车道空间-u joe@test.com。

您需要每2-3周(有些人说是30天)重新验证您的会话。这个过程现在有点痛苦。

票数 10
EN

Stack Overflow用户

发布于 2021-09-21 19:27:21

  1. 用户页面中创建一个新的App连接API密钥
代码语言:javascript
运行
复制
- For more info, go to the [App Store Connect API Docs](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api)
代码语言:javascript
运行
复制
- Give your API Key an appropriate role for the task at hand. You can read more about roles in [Permissions in App Store Connect](https://developer.apple.com/support/roles/)
  1. 下载新创建的API密钥文件(.p8)该文件在刷新页面后无法再次下载。
  2. 在项目中添加键

代码语言:javascript
运行
复制
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 (maximum 1200)
    in_house: false # optional but may be required if using match/sigh
  )

  pilot(api_key: api_key)
end

更多细节

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63508108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档