簡體   English   中英

收到錯誤“需要承認 Apple 的 Apple ID 和隱私聲明。”

[英]Getting error “Need to acknowledge to Apple's Apple ID and Privacy statement.”

您好,我們在使用 fastlane sigh/get_provisioning_profile 時遇到此錯誤。 我不認為這是一個快車道問題,因為它發生在case1 case2之前,並且通過接受協議或其他未知原因得到了解決。

需要承認 Apple 的 Apple ID 和隱私聲明。 Please manually log into https://appleid.apple.com (or https://appstoreconnect.apple.com ) to acknowledge the statement.

我們去了

但那里沒有什么可以批准的。

有任何想法嗎?

概括:

情況1:

* 你不想啟用 2FA

  1. 使用fastlane 2.173.0更新 Gemfile 並運行bundle installbundle update fastlanebundle update
  2. 在 CI 中使用SPACESHIP_SKIP_2FA_UPGRADE=1

案例二:

* 您已啟用 2FA

* 您只需要非企業賬戶

  1. 使用Account Holder 角色appstore connect生成APP_STORE_CONNECT_API_KEY

在此處輸入圖像描述

看起來像

-----BEGIN PRIVATE KEY-----\nabcdef12345abcdef12345\n-----END PRIVATE KEY-----
  1. 將其作為 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
  1. 把它傳到你的車道
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
  1. 使用 output 作為 CI 上的FASTLANE_SESSION環境變量。

  2. 您仍然需要包含FASTLANE_PASSWORD

請注意,這只持續8 小時

案例4:

* 您已啟用 2FA

* 您需要企業賬號或非企業賬號

* 您需要上傳到應用商店

  1. https://appleid.apple.com/account/manage 創建 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD

  2. 在您的 ci 中將其設置為環境變量

案例5:

* 您已啟用 2FA

* 您需要從 appstore connect 下載 dsyms

fastlane spaceauth -u user@email.com
  1. 使用 output 作為 CI 上的FASTLANE_SESSION環境變量。

  2. 您仍然需要包括FASTLANE_USERFASTLANE_PASSWORD

請注意,這只持續8 小時

我在使用Bitrise (另一個 CI/CD 工具)時遇到了同樣的問題。 該錯誤消息具有誤導性,因為它與接受某些新策略無關,而是與App Store Connect API使用的新身份驗證系統有關。

為了解決這個問題,我登錄了 Bitrise,我不得不切換到新的身份驗證方法,如下圖所示。

在此處輸入圖像描述

舊的身份驗證方法基於單個 Apple Developer 用戶的憑據,而新方法則基於 API 密鑰的生成。 正如您從下面的屏幕截圖中看到的那樣,我必須在User and Access -> Keys下創建一個 API 密鑰,然后將其上傳到 Bitrise。

在此處輸入圖像描述

我希望我的案例可以幫助其他人解決這個問題。 我很確定即使您使用不同的工具,您也必須遵循或多或少相同的程序。

我正在使用 Apple 帳戶來驗證和授權 fastlane 操作。

將我的 CI 更改為使用Apple API 密鑰似乎可以解決問題。

Fasltane 應該使用app_store_connect_api_key

這里的文檔: http://docs.fastlane.tools/actions/app_store_connect_api_key/#app_store_connect_api_key

您檢查過您的 2FA 設置嗎?

蘋果宣布:“從 2021 年 2 月開始,所有用戶都需要額外的身份驗證才能登錄 App Store Connect。”

對於 Azure DevOps 用戶,在我們等待 AppStoreConnect Api 密鑰支持合並時,臨時SPACESHIP_SKIP_2FA_UPGRADE=1有效:

https://github.com/microsoft/app-store-vsts-extension/pull/189

飛船跳過2FA升級


編輯


拉取請求已合並,並且 API 身份驗證現在可以工作,並且是首選的身份驗證方式。

AppStoreConnect API 身份驗證

對於那些使用Pilot的人來說,有一個簡單的解決方案:

只需將其添加到 Pilot:

skip_waiting_for_build_processing: true,
apple_id: "123456789"

您可以在 AppStoreConnect 的 General > App information 中找到 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM