更新iOS14被拒
1、本地網絡被拒解決方案: local network
因iOS14新增審核規(guī)則,要求對本地網絡的使用增加具體描述
查看網上有伙伴說增加描述信息就可以,親測還是被拒,提示描述信息審核“不通過”
<key>NSLocalNetworkUsageDescription</key>
<string>【app名稱】需要訪問您的本地網絡才能與【app名稱】服務器連接</string>
1.1 經研究,修改成以下描述,可通過Apple團隊審核。
<key>NSLocalNetworkUsageDescription</key>
<string>此App將可發(fā)現(xiàn)和連接到您所用網絡上的設備。</string>
1.2 通過審核下一步會提示讓你在開發(fā)者賬號描述,你為何使用了本地網絡,都是做了什么,什么功能會使用到,然后反饋給他們,他們會繼續(xù)進行審核,目前項目已通過這個方法上架成功。
1、Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requests the user’s consent to access the local network information but does not clarify the use of the local network information in the applicable purpose string.
To help users understand why your app is requesting access to their personal data, all permission request alerts in your app should specify how your app will use the requested feature.
Next Steps
Please revise the relevant purpose string in your app’s Info.plist file to specify why the app is requesting access to the local network information. Make sure the purpose string includes an example of how the user's data will be used.
You can modify your app's Info.plist file using the property list editor in Xcode.
Resources
For additional information and instructions on requesting permission, please review the Requesting Permission section of the iOS Human Interface Guidelines and the Information Property List Key Reference. You may also want to review the Technical Q&A QA1937: Resolving the Privacy-Sensitive Data App Rejection page for details on how to provide a usage description for permission request alerts.
Please see attached screenshot for details.
-----------------------------------以下是iOS14之前遇到的被拒記錄------------------------------------
1.解決方案
iPhoneSimulator 修改為 iPhoneOS
1.
ERROR ITMS-90542: Invalid CFBundleSupportedPlatforms value. The key'CFBundleSupportedPlatforms' in the Info.plist file in bundle 'Payload/#XF ?IE5 RRS .app/
HTMIBlue.bundle' contains an invalid value '[iPhoneSimulator]'. Consider removing the CFBundleSupportedPlatforms key from the Info.plist. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue.
2.解決方案
<key>NSHealthShareUsageDescription</key>
<string>some string value stating the reason</string>
2.
ERROR ITMS-90683: Missing Purpose String in Info.plist. Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSHealthShareUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APls that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_ app/protecting _the. _user. _s_ privacy).
3.解決方案
項目應導入App Store Icon圖標
3.
ERROR ITMS-90704: Missing App lcon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review. For details, see https://developer.apple.com/ios/ human-interface-guidelines/icons-and-images/app-icon/.
4.解決方案
info.plist 刪除NSExtensionActivationSupportTex字段
4.
ERROR ITMS-90361: Invalid lnfo.plist value type. The value type for the key'NSExtensionActivationSupportTex in bundle #X ???? ??B1?3?? 8R .app/Pluglns/#X ??? ??[1?X3?? lB???? .appex is not a boolean.
5.解決方案
刪除 info.plist 文件中的 Executable file 配置
5.
ERROR ITMS-90535: Unexpected CFBundleExecutable Key. The bundle at 'Payload/教育部政務服務.app/HTMIBlue.bundle' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue.
6.解決方案
擴展插件版本號不匹配
6.
App Store Connect Operation Warning WARNING ITMS-90473: CFBundleVersion Mismatch. The CFBundleVersion value '100' of extension '教育部政務服務.app/PlugIns/教育部政務服務.appex' does not match the CFBundleVersion value '1' of its containing iOS application '#J ? 5?ES BRS .app'
7.解決方案
刪除 info.plist 文件中的 Executable file 配置
7.
RROR ITMS-90171: Invalid Bundle Structure - The binary file '#X?8?ES RR5.app/Frameworks/HTMIScreenShotModule.framework/HTMlScreenShotModule' is not permitted. Your app can't contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure.
8.解決方案
因項目不支持ipad,需在項目中取消 ipad 支持
8.
ERROR ITMS-90023: Missing required icon file. The bundle does not contain an app icon for iPad of exactly '76x76' pixels, in .png format for iOS versions >= 7.0. To support older operating systems, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_ property_ list/user_ interface
9.解決方案
info.plist 增加
<key>NSHealthUpdateUsageDescription</key>
<string>some string value stating the reason</string>
9.
ERROR ITMS-90683: Missing Purpose String in Info.plist. Your app's code references one or mor APIs that access sensitive user data. The app's Info.plist file should contain a NSHealthUpdateUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Sto that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APls, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core _app/protecting_ the_ _user. _s_ privacy).
10. 解決方案
刪除敏感方法
_actionButtonTapped
_applicationIconImageForBundleIdentifier:format:scale:
allInstalledApplications
currentSession
openApplicationWithBundleID:
10.
ITMS-90338:Non-public API usage - The app references non-public selectors in 教育部政務服務:_actionButtonTapped:,_applicationIconImageForBundleIdentifier:format:scale:, allInstalledApplications, currentSession, openApplicationWithBundleID:. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
11.解決方案
問題主要是說你的App中獲取用戶權限時,info.plist中通訊錄權限【NSContactsUsageDescription】沒有具體的使用說明,請補充完整 。
11.
ITMS-90683:Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSContactsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
12.解決方案
問題主要是說你的App中獲取用戶權限時,info.plist中麥克風權限【NSMicrophoneUsageDescription】沒有具體的使用說明,請補充完整 。
12.
ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSMicrophoneUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
13.解決方案
2020年4月開始,App Store上架的應用Apple將不再支持UIWebView,如項目中使用到UIWebView的功能,需替換成WKWebview實現(xiàn)。
13.
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).
14.解決方案
因項目中使用了面容識別,但是App的隱私政策沒有對面容識別進行使用說明,需在隱私政策中增加面容識別條款
可以從以下方向入手:
1、使用目的
2、面容信息存儲在哪
3、是否會與第三方共享
4、在隱私條款中增加面容條款
14.
Guideline 2.1 - Information Needed
We have started the review of your app, but we are not able to continue because we need additional information about how your app uses face data.Next StepsTo help us proceed with the review of your app, please provide complete and detailed responses to the following questions.
· What face data is your app collecting?
· For what purposes are you collecting this information? Please provide a complete and clear explanation of all planned