App的開發(fā)漸漸的進入尾聲,相關(guān)測試也逐漸完成,只剩下了最后一項
App Store上架審核,因之前App沒有上架App Store,都是企業(yè)版發(fā)布,這次上架App Store問題居多,故把這次上架的問題,進行總結(jié),供后續(xù)參考。
更新iOS14被拒
1、本地網(wǎng)絡(luò)被拒解決方案: local network
因iOS14新增審核規(guī)則,要求對本地網(wǎng)絡(luò)的使用增加具體描述
查看網(wǎng)上有伙伴說增加描述信息就可以,親測還是被拒,提示描述信息審核"不通過"
<key>NSLocalNetworkUsageDescription</key>
<string>【app名稱】需要訪問您的本地網(wǎng)絡(luò)才能與【app名稱】服務(wù)器連接</string>
1.1 經(jīng)研究,修改成以下描述,可通過Apple團隊審核。
<key>NSLocalNetworkUsageDescription</key>
<string>此App將可發(fā)現(xiàn)和連接到您所用網(wǎng)絡(luò)上的設(shè)備。</string>
1.2 通過審核下一步會提示讓你在開發(fā)者賬號描述,你為何使用了本地網(wǎng)絡(luò),都是做了什么,什么功能會使用到,然后反饋給他們,他們會繼續(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之前遇到的被拒記錄------------------------------------
-
解決方案
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.
-
解決方案
<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).
-
解決方案
項目應(yīng)導入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/.
-
解決方案
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.
-
解決方案
刪除 info.plist 文件中的 Executable file 配置
5.
ERROR ITMS-90535: Unexpected CFBundleExecutable Key. The bundle at 'Payload/教育部政務(wù)服務(wù).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.
App Store Connect Operation Warning
WARNING ITMS-90473: CFBundleVersion Mismatch. The CFBundleVersion value '100' of
extension '教育部政務(wù)服務(wù).app/PlugIns/教育部政務(wù)服務(wù).appex' does not match the
CFBundleVersion value '1' of its containing iOS application '#J ? 5?ES BRS .app'
-
解決方案
刪除 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.
-
解決方案
因項目不支持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
-
解決方案
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).
- .
解決方案
刪除敏感方法
_actionButtonTapped
_applicationIconImageForBundleIdentifier:format:scale:
allInstalledApplications
currentSession
openApplicationWithBundleID:
10.
ITMS-90338:Non-public API usage - The app references non-public selectors in 教育部政務(wù)服
務(wù): _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/
-
解決方案
問題主要是說你的App中獲取用戶權(quán)限時,info.plist中通訊錄權(quán)限【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).
-
解決方案
問題主要是說你的App中獲取用戶權(quán)限時,info.plist中麥克風權(quán)限【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).
-
解決方案
2020年4月開始,App Store上架的應(yīng)用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).
-
解決方案
因項目中使用了面容識別,但是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 uses of this data.
? Will the data be shared with any third parties? Where will this information be stored?
? Which are the relevant sections of your privacy policy that explain collection, use, disclosure, sharing,
and retention of face data?
? Please quote the specific language in your privacy policy that concerns face data.
Once you reply to this message in Resolution Center with the requested information, we can proceed
with your app's review.
-
解決方案
App中刪除HealthKit所有相關(guān)的信息
其中比如證書取消支持HealthKit,項目中取消支持HealthKit
15.
Guideline 2.5.1 - Performance - Software Requirements
We noticed that your app uses HealthKit, but your app does not appear to include any primary
features that require health or fitness data.
The intended use of HealthKit is generally to share health or fitness data with other apps or devices as
a part of the app's core functionality.
Next StepsTo
resolve this issue, please remove any HealthKit functionality from your app, as well as any references
to this app’s interactivity with HealthKit from the app or its metadata. This includes removing any
HealthKit-related keys in your app's Info.plist as well as removing any calls to HealthKit APIs,
including those from 3rd party platforms, from your app.
-
解決方案
刪除App中plist audio相關(guān)配置
16.
Guideline 2.5.4 - Performance - Software Requirements
Your app declares support for audio in the UIBackgroundModes key in your Info.plist but did not
include features that require persistent audio.
Next Steps
The audio key is intended for use by apps that provide audible content to the user while in the
background, such as music player or streaming audio apps.
Please revise your app to provide audible content to the user while the app is in the background or
remove the "audio" setting from the UIBackgroundModes key."
-
解決方案
刪除App中plist VoIP相關(guān)配置
17.
Guideline 2.5.4 - Performance - Software Requirements
Your app declares support for VoIP in the UIBackgroundModes key in your Info.plist, but it does not
include any Voice over IP services.
Next Steps
To resolve this issue, please revise your app to either add VoIP features or remove the "voip" setting
from the UIBackgroundModes key.
We recognize that VoIP can provide "keep alive" functionality that is useful for many app features.
However, using VoIP in this manner is not the intended purpose of VoIP.
-
解決方案
因App Store上架檢測出你使用了面容識別功能,并且面容識別沒有使用蘋果自帶的面容識別【LocalAuthentication】,Apple強制必須使用Apple官方的【LocalAuthentication】,目前已使用Apple自帶的LocalAuthentication進行面容識別認證。
18.
Guideline 2.5.13 - Performance - Software Requirements
We noticed that your app includes facial recognition for account authentication, but it does not use
LocalAuthentication as the app's primary authentication mechanism.
LocalAuthentication must be your app's primary biometric authentication method, and any other
custom facial recognition mechanism should be optional for login and cannot replace
LocalAuthentication.
Next Steps
To resolve this issue, please revise your app to use LocalAuthentication as the primary mechanism for
any biometric account authentication.
Resources
LocalAuthentication offers users secure, effortless access to their devices. Visit Apple Developer for
resources more on [using LocalAuthentication](https://developer.apple.com/documentation/localauthentication).
-
解決方案
Apple檢測出了應(yīng)用中使用了screenshot,我這邊是以前項目用到了,臨時做了隱藏操作,本項目暫時用不到
19.Guideline 4.0 - Design
We noticed that your app offers a custom screenshot-initiated interface when the user takes a
screenshot in the app.
Next Steps
To resolve this issue, please ensure your app only displays the iOS system-provided screenshot
interface.
The iOS Human Interface Guidelines include more details about [screenshot best practices](https://developer.apple.com/ios/human-interface-guidelines/system-capabilities/screenshots/).
-
解決方案
還是隱私政策,回復(fù):您好,感謝您對App進行審核,我們已對隱私政策進行更新,敬請復(fù)查。
20.
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
Your app includes a facial manipulation feature but the provided privacy policy does not include all of
the information required by [Guideline 5.1.1 of the App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#data-collection-and-storage) and [Section 3.3.10 of the Apple Developer Program License Agreement](https://developer.apple.com/terms/).
Next Steps
To resolve this issue, please update the Privacy Policy URL section of App Store Connect to link to your
privacy policy and ensure it includes all of the requisite information.
If your privacy policy includes this information, please respond to this message in Resolution Center
with the relevant sections quoted in your reply.
Resources
For your convenience, we’ve included Section 3.3.10 of the Apple Developer Program License
Agreement below:
-
解決方案
因使用了相機,但是權(quán)限說明不明確,在info.plist中進行了補充權(quán)限說明。
21.
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requests the user’s consent to access their camera and location but does not
clarify the use of the camera and location in the applicable purpose string.
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 user's camera and location. You can modify your app's Info.plist file using the
property list editor in Xcode.
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.
Resources
For additional information and instructions on requesting permission, please review the
[Requesting Permission](https://developer.apple.com/ios/human-interface-guidelines/app-architecture/requesting-permission/) section of the iOS Human Interface Guidelines and the [Information Property List Key Reference](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyRefere
nce/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW18).
You may also want to review
the [Technical Q&A QA1937: Resolving the Privacy-Sensitive Data App Rejection](https://developer.apple.com/library/archive/qa/qa1937/_index.html) page for details on how to provide a usage description for permission request alerts.
-
解決方案
因App中有幾個地方需要進行登錄才可以查看,Apple認為你應(yīng)該打開權(quán)限,針對這些問題,進行闡述說明,反饋給Apple就好了
22.
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requires users to register or log in to access features that are not account-
based.
Next Steps
To resolve this issue, please revise your app to let users freely access your app’s non account-based
features.
Apps may not require users to enter personal information to function, except when directly relevant to
the core functionality of the app or required by law.
You should allow users to freely access your app’s non account-based features. For example, an e-
commerce app should let users browse store offerings and other features that are not account-based
before being asked to register, or a restaurant app should allow users to explore the menu before
placing an order. Registration must then only be required for account-specific features, such as saving
items for future reference or placing an order.
-
解決方案
蘋果認為身份證號碼數(shù)據(jù)隱私隱私,查看登錄不需要認為不需要身份證號碼信息,針對這些問題,進行闡述說明,反饋給Apple就好了
23.
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requires users to register with personal information that is not directly
relevant to your app’s core functionality. Specifically, the following fields or actions are required but do
not appear to be directly relevant to your app’s core functionality:
身份證號碼
Next StepsTo
resolve this issue, please either remove all required fields that are not relevant to the app or make those
fields optional. Information requested during registration must be relevant to the features the app
provides.
-
解決方案
Apple檢測到你的App中使用了第三方登錄,根據(jù)Apple官方說明,使用了第三方登錄就必須支持Apple登錄,故需要支持Apple登錄。
但是,但是如果滿足以下條件,則無需使用Apple登錄:
1.您的應(yīng)用專門使用公司自己的帳戶設(shè)置和登錄系統(tǒng)。
2.您的應(yīng)用是教育,企業(yè)或商業(yè)應(yīng)用,要求用戶使用現(xiàn)有的教育或企業(yè)帳戶登錄。
3.您的應(yīng)用程序使用政府或行業(yè)支持的公民身份識別系統(tǒng)或電子ID來對用戶進行身份驗證。
4.您的應(yīng)用是特定第三方服務(wù)的客戶端,要求用戶直接登錄其郵件,社交媒體或其他第三方帳戶 才能訪問其內(nèi)容。
24.
Guideline 4.8 - Design - Sign in with Apple
We noticed that your app uses a third-party login service but does not offer Sign in with Apple. Apps
that use a third-party login service for account authentication must offer Sign in with Apple to users as
an equivalent option.
Next Steps
To resolve this issue, please revise your app to offer Sign in with Apple as an equivalent login option.
Resources
- Review the [sample code](https://developer.apple.com/documentation/authenticationservices/implementing_user_authentica
tion_with_sign_in_with_apple) on Apple Developer Support to learn more about implementing Sign
in with Apple in your app.
- Read the Sign in with Apple [Overview](https://developer.apple.com/sign-in-with-apple/) to learn
more about the benefits Sign in with Apple offers users and developers. Please see attached
screenshots for details.
-
解決方案
Apple檢測你的App支持推送,但是沒有在開發(fā)者中心上傳推送證書。創(chuàng)建并在開發(fā)者中心上傳推送證書
25.
ITMS-90078: Missing Push Notification Entitlement
"- Your app appears to register with the Apple Push Notification service, but the app signature's
entitlements do not include the 'aps-environment' entitlement.
If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push
Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution
provisioning profile that includes the 'aps-environment' entitlement.
Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at
build time.
This behavior is intentional. To use this entitlement, either enable Push Notifications in the project
editor's Capabilities pane, or manually add the entitlement to your entitlements file. For more
information, see
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/Remot
eNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1."
如需轉(zhuǎn)載,需注明出處
http://www.itdecent.cn/p/f586bc94c732
如需轉(zhuǎn)載,需注明出處
http://www.itdecent.cn/p/f586bc94c732
如需轉(zhuǎn)載,需注明出處
http://www.itdecent.cn/p/f586bc94c732