簡體   English   中英

ITMS-90683:Info.plist NSCameraUsageDescription 中缺少目的字符串

[英]ITMS-90683: Missing Purpose String in Info.plist NSCameraUsageDescription

我成功在應用商店上傳了我的應用。

應用商店給我發一個 email 像這樣:

應用商店連接

親愛的開發者,

我們發現您最近交付的應用程序“Kupona Online”1.0.2 (1.2) 存在一個或多個問題。 請更正以下問題,然后重新上傳。

ITMS-90683:Info.plist 中缺少目的字符串 - 您的應用程序代碼引用了一個或多個訪問敏感用戶數據的 API。 應用程序的 Info.plist 文件應包含一個 NSCameraUsageDescription 鍵和一個面向用戶的目的字符串,清楚而完整地解釋您的應用程序需要數據的原因。 從 Spring 2019 開始,所有提交到 App Store 並訪問用戶數據的應用都必須包含目的字符串。 如果您使用的是外部庫或 SDK,它們可能會引用需要目的字符串的 API。 雖然您的應用可能不使用這些 API,但仍需要使用目的字符串。 您可以聯系庫的開發人員或 SDK 並請求他們發布不包含 API 的代碼版本。 了解更多信息( https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy )。

此致,

應用商店團隊

為了解決這個錯誤,我將 Info.plist 放入 Xcode 10.2.1 中,如下所示:

圖片

但什么也沒發生。 應用商店總是向我發送此錯誤。

如何修復此錯誤?

對於 NSCameraUsageDescription,在 Value 列中添加使用相機的確切目的。 例如, 在此處輸入圖片說明

人們說他們被拒絕了,即使他們沒有請求訪問相機。 您必須知道 Apple 會使用其靜態分析工具掃描您的代碼。 即使你在功能標志后面保護了它,應用商店的審查過程仍然會拒絕你的應用。 因為他們不知道你什么時候會打開那個功能標志。

此外,如果第三方服務在其代碼中包含與相機訪問相關的代碼,您可能會遇到此問題。 再一次,即使您沒有達到(第 3 方框架的)那條線,您也需要輸入該鍵。

但是后來我遇到了問題,我們在其中添加了該 plist,但隨后應用商店審核團隊無法對其進行測試,因為該功能受到功能標志的保護。 而且因為他們無法測試,所以他們沒有批准它¯\\ (ツ) /¯

最后但並非最不重要的一點是,如果您確實在 plist 中確實需要該密鑰,請確保其推理足夠通用以涵蓋所有情況,例如,如果您需要訪問相機以拍攝個人資料照片和掃描 QR 碼,那么鑒於您的應用程序可以要求在的資料圖片步驟或在plist中掃描PR的代碼,那么你的描述應該涵蓋的功能,而不僅僅是其中一個相機訪問。 如果您說“需要獲取拍攝個人資料照片的權限”,那么如果用戶首先點擊 QR 流程但看到您請求獲取拍攝個人資料照片的權限,您可能會被拒絕。 因此,您應該說“需要訪問拍攝個人資料照片和掃描新設備的二維碼”

tl;dr 確定您在應用流程中請求訪問的位置。 如果你需要它,那么在你的 plist 中添加它的鍵/值。 如果您不需要它,請注釋掉該行。 您不應該僅僅為了通過應用商店審核而添加 plist。 可能會失敗,但也可能會成功,但在未來的版本中它會成功......

在新版本的 IOS 中,訪問相機的應用程序會觸發一個對話框,提示用戶允許或拒絕該應用程序的權限。

這就是為什么您需要解釋應用程序訪問輸入設備(相機、麥克風等)的原因。

為此,您需要通過在 dict 標記內添加鍵和字符串描述來編輯您的項目 Runner/info.plist 文件。

<dict>
    ...
    <key>NSCameraUsageDescription</key>
    <string>My_app_name needs to access the camera to do x_thing. 
    </string>
<dict>

或者,您可以通過在xcode中打開您的產品來添加它,更多詳細信息如下圖所示。

在此處輸入圖像描述

暫無
暫無

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

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