美文网首页
App Store上架被拒,上架过程的辛酸~~~

App Store上架被拒,上架过程的辛酸~~~

作者: coco_CC | 来源:发表于2020-09-07 11:09 被阅读0次

    App的开发渐渐的进入尾声,相关测试也逐渐完成,只剩下了最后一项App Store上架审核,因之前App没有上架App Store,都是企业版发布,这次上架App Store问题居多,故把这次上架的问题,进行总结,供后续参考。

    更新iOS14被拒

    1、本地网络被拒解决方案: local network

    因iOS14新增审核规则,要求对本地网络的使用增加具体描述

    查看网上有伙伴说增加描述信息就可以,亲测还是被拒,提示描述信息审核"不通过"

    <key>NSLocalNetworkUsageDescription</key>
        <string>【app名称】需要访问您的本地网络才能与【app名称】服务器连接</string>
    
    1.1 经研究,修改成以下描述,可通过Apple团队审核。
    <key>NSLocalNetworkUsageDescription</key>
        <string>此App将可发现和连接到您所用网络上的设备。</string>
    
    1.2 通过审核下一步会提示让你在开发者账号描述,你为何使用了本地网络,都是做了什么,什么功能会使用到,然后反馈给他们,他们会继续进行审核,目前项目已通过这个方法上架成功。
    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.
    
    1. 解决方案
      <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).
    
    1. 解决方案
      项目应导入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/.
    
    1. 解决方案
      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.
    
    1. 解决方案
      删除 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.
    
    1. 解决方案
      扩展插件版本号不匹配
    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'
    
    1. 解决方案
      删除 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.
    
    1. 解决方案
      因项目不支持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
    
    1. 解决方案
      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).
    
    1. . 解决方案
      删除敏感方法
      _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/
    
    1. 解决方案
      问题主要是说你的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).
    
    1. 解决方案
      问题主要是说你的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).
    
    1. 解决方案
      2020年4月开始,App Store上架的应用Apple将不再支持UIWebView,如项目中使用到UIWebView的功能,需替换成WKWebview实现。
    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).
    
    1. 解决方案
      因项目中使用了面容识别,但是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.
    
    1. 解决方案
      App中删除HealthKit所有相关的信息
      其中比如证书取消支持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.
    
    1. 解决方案
      删除App中plist audio相关配置
    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."
    
    1. 解决方案
      删除App中plist VoIP相关配置
    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.
    
    1. 解决方案
      因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).
    
    
    1. 解决方案
      Apple检测出了应用中使用了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/).
    
    
    1. 解决方案
      还是隐私政策,回复:您好,感谢您对App进行审核,我们已对隐私政策进行更新,敬请复查。
    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:
    
    
    1. 解决方案
      因使用了相机,但是权限说明不明确,在info.plist中进行了补充权限说明。
    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.
    
    
    1. 解决方案
      因App中有几个地方需要进行登录才可以查看,Apple认为你应该打开权限,针对这些问题,进行阐述说明,反馈给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.
    
    1. 解决方案
      苹果认为身份证号码数据隐私隐私,查看登录不需要认为不需要身份证号码信息,针对这些问题,进行阐述说明,反馈给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. 
    
    1. 解决方案
      Apple检测到你的App中使用了第三方登录,根据Apple官方说明,使用了第三方登录就必须支持Apple登录,故需要支持Apple登录。
      但是,但是如果满足以下条件,则无需使用Apple登录:
      1.您的应用专门使用公司自己的帐户设置和登录系统。
      2.您的应用是教育,企业或商业应用,要求用户使用现有的教育或企业帐户登录。
      3.您的应用程序使用政府或行业支持的公民身份识别系统或电子ID来对用户进行身份验证。
      4.您的应用是特定第三方服务的客户端,要求用户直接登录其邮件,社交媒体或其他第三方帐户 才能访问其内容。
    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.
    
    
    1. 解决方案
      Apple检测你的App支持推送,但是没有在开发者中心上传推送证书。创建并在开发者中心上传推送证书
    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."
    
    

    如需转载,需注明出处
    https://www.jianshu.com/p/f586bc94c732

    如需转载,需注明出处
    https://www.jianshu.com/p/f586bc94c732

    如需转载,需注明出处
    https://www.jianshu.com/p/f586bc94c732

    相关文章

      网友评论

          本文标题:App Store上架被拒,上架过程的辛酸~~~

          本文链接:https://www.haomeiwen.com/subject/msjkektx.html