[英]ITMS-90683: Missing Purpose String in Info.plist for NSCameraUsageDescription key
[英]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 中,如下所示:
但什么也沒發生。 應用商店總是向我發送此錯誤。
如何修復此錯誤?
人們說他們被拒絕了,即使他們沒有請求訪問相機。 您必須知道 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.