2020苹果审核那些事

最近苹果审核越来越严,写此博客记录一下踩过的一些坑,下次就不会再遇到相同的问题了

  1. Guideline 4.2.3 - Design - Minimum Functionality

    We were required to install the WeChat app before we could log in via WeChat. Users should be able to log in with WeChat and access their accounts without having to install any additional apps.

    Next Steps

    If you would like to offer authentication through WeChat, please use a mechanism that allows users to log in with WeChat from within your app without first having to install an additional app.

    We recommend implementing the Safari View Controller API to display web content within your app. The Safari View Controller allows the display of a URL and inspection of the certificate from an embedded browser in an app so that customers can verify the webpage URL and SSL certificate to confirm they are entering their sign in credentials into a legitimate page.

    Resources

    For additional information on the Safari View Controller API, please review the What’s New in Safari webpage.

解决方案:

最好判断一下当前手机微信APP是否安装,安装显示微信登录入口,否则不显示入口

  1. Your app allows users under the age of 18 to register for an account or allows users to search for other users under the age of 18. Since your app is primarily a dating app, it is more appropriate for an adult audience.

    Next Steps

    To resolve this issue, please revise your app to ensure users under 18 cannot register an account. Additionally, it would be appropriate to restrict searchable age groups to 18+.

    Please see attached screenshots for details.

解决方案:

按照苹果要求即可,对于约会类的APP,年龄在APP上显示要大于18岁

  1. Guideline 2.3.1 - Performance

    We discovered that your app contains hidden features. Attempting to hide features, functionality or content in your app is considered egregious behavior and can lead to removal from the Apple Developer Program.

    Specifically, we found that your app includes AliPay (支付寶), which provides access to external payment mechanisms and enables the purchase of content, services, or functionality by means other than the in-app purchase API.

    If you feel that we have misunderstood how your app functions and that your app is compliant with the App Store Review Guidelines, please reply to this message in Resolution Center to explain how this feature works.

    The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.

    Next Steps

    - Review the Performance section of the App Store Review Guidelines.
    - Ensure your app, as well as any third-party code and SDKs implemented in your app, are compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program.
    - Revise or remove the hidden features from your app. Once your app is fully compliant, resubmit your app for review.

    Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination.

解决方案:

对于支付购买虚拟类物品(没有实际的物流发货),苹果要求必须使用自己的内购,不能有支付宝或微信支付的SDK!苹果审核会检测APP代码,切记!!!(去按要求对接内购)

  1. We noticed that your app requests the user’s consent to access their camera, photos, and location but does not clarify the use of the camera, photos, 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, photos, 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 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 screenshots for details.

解决方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意才能访问媒体库</string>
<key>NSCalendarsUsageDescription</key>
<string>觅愿想始终访问您的日历,这样可以为您选择日期发布时间</string>
<key>NSCameraUsageDescription</key>
<string>觅愿需要您的同意才能访问相机,这样可以为您拍摄头像以及个人相册的照片</string>
<key>NSContactsUsageDescription</key>
<string>App需要您的同意才能访问通讯录信息</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>觅愿想始终访问您的位置,这样可以为您自动匹配附近的人</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>觅愿想始终访问您的位置,这样可以为您自动匹配附近的人</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>觅愿想始终访问您的位置,这样可以为您自动匹配附近的人</string>
<key>NSMotionUsageDescription</key>
<string>App需要您的同意才能访问运动与健身</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>觅愿需要您的同意才能访问相册,这样可以为您选取头像以及个人相册的照片</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>App需要您的同意才能访问语音识别</string>
  1. Guideline 3.1.1 - Business - Payments - In-App Purchase

    We noticed that your app or its metadata enables the purchase of content, services, or functionality in the app by means other than the in-app purchase API, which is not appropriate for the App Store.

    Next Steps

    While the payment system that you have included may conduct the transaction outside of the app, if the purchasable content, functionality, or services are intended to be used in the app, they must be purchased using in-app purchase, within the app - unless it is of the type referenced in guideline 3.1.3 of the App Store Review Guidelines.

In-App Purchase

It may be appropriate to revise your app to use the in-app purchase API to provide content purchasing functionality.

In-app purchase provides several benefits, including:

- The flexibility to support a variety of business models.
- Impacting your app ranking by consolidating your sales to one app rather than distributing them across multiple apps.
- An effective marketing vehicle to drive additional sales of new content.

For information on in-app purchase, please refer to the following documentation:

In-App Purchase for Developers

In-App Purchase Programming Guide

For step-by-step instructions on in-app purchase creation within App Store Connect, refer to App Store Connect Help.

Please see attached screenshot for details.

解决方案:

对于内购,如果是会员的话,APP提供非会员账号供苹果审核,在提交APP备注或者内购商品审核备注最好给出详细的说明,下面是我给的例子

点击首页第一个用户头像(见附件)进入其详情页可做演示查看微信和查看相册(详情页右上角有举报加入黑名单此用户功能)

版本提交备注:

下面提供的信息不是必要操作的,只是辅助审核用的

1.APP内购操作使用录屏演示链接地址 *

2.已有APP会员的测试账号: 密码:

3.非会员的测试账号: 密码:

4.APP内购支付时使用的测试付款账户Apple ID: 密码:

功能内购提交备注:

在非会员账号登录下,进入首页-会员-办理会员卡-APP会员价格和特权介绍-去选择支付APP会员,即可拥有此会员特权,有效期为30天,失效后需重新购买

下面提供的信息不是必要操作的,只是辅助审核用的

1.APP内购操作使用录屏演示链接地址*

2.已有APP会员的测试账号: 密码:

3.APP内购支付时使用的测试付款账户Apple ID: 密码:

备注:App会员月卡 是198RMB只可购买一次的产品,在使用之后即失效,必须再次购买。

  1. Guideline 3.1.1 - Payments - Payments - In-App Purchase

    We noticed that your in-app purchase product is set to an incorrect product type.

    App会员1-198 is set to Consumable.

    Next Steps

    Based on product functionality, please use the non-consumable in-app purchase product type. Non-consumable products are only purchased once by users and are always available on all devices that are associated with that user’s App Store account.

    Note: The product type cannot be changed once an in-app purchase product has been created. Therefore, you will need to create a new in-app purchase product with the correct product type.

    To create new in-app purchases:

    - Log in to App Store Connect
    - Click on “My Apps”
    - Select your app
    - Click on “Features” to create new in-app purchases
    - Click Save
    - Once you’ve completed all changes, click the “Submit for Review” button at the top of the App Version Information page.

    Resources

    More information on in-app purchase product types is available in App Store Connect Help.

解决方案:

如果是会员的话把产品类型需要是非续订和续订订阅产品,并在APP显示界面上显示出来比如 199元/月,按照其意思即可审核通过

PS:在做内购的时候,最好的方案去显示虚拟的物品代表等价兑换,比如一朵小花6元

  1. Guideline 1.2 - Safety - User Generated Content

    Your app enables the display of user-generated content but does not have the proper precautions in place.

    Next Steps

    To resolve this issue, please revise your app to implement all of the following precautions:

    - A mechanism for users to block abusive users

    Please see attached screenshot for details.

解决方案:

所有的界面有用户操作产生的比如发布的动态,附近的人,都要加入举报和拉黑

  1. Guideline 2.1 - Performance - App Completeness

    We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.

    Next Steps

    To resolve this issue, please revise your app and test it on a device to ensure it will launch without crashing.

    Resources

    For information on how to symbolicate and read a crash log, please review Tech Note TN2151 Understanding and Analyzing Application Crash Reports.

    crashlog-232FCE01-3856-4AD9-840F-A23646FB5565.txt

    crashlog-4241C53E-4F6D-420A-B246-BEB8A979315D.txt

    crashlog-9E12358E-2061-4B5E-BA51-F9E5D12DBC09.txt

解决方案:

按要求去排查问题,最后发现是在iPad上最新的系统造成的崩溃原因,确少rootViewContoller 在Main 写上Main.storyboard appdelege.m单独判断iPad即可(苹果要求可以不适配iPad,但一定能在iPad上运行,他们审核测试的时候会在iPad上测试,作为开发者的我们在每次提交APP版本审核的时候最好在iPad上测试一遍流程,尽量避免新的系统在iPad上有问题)

  1. Guideline 1.2 - Safety - User Generated Content

    Your app enables the display of user-generated content but does not have the proper precautions in place.

    Next Steps

    To resolve this issue, please revise your app to implement all of the following precautions:

    - Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users
    - A method for filtering objectionable content
    - A mechanism for users to flag objectionable content
    - A mechanism for users to block abusive users
    - The developer must act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided the offending content

解决方案:

所有的界面有用户操作产生的比如发布的动态,在进入发布动态前提示一个弹框,这个弹框可以保存本地,只弹出一次即可,内容就是同意协议说明,有同意和不同意选项,同意继续操作,不同意则返回上一个界面

  1. 对于不明确的问题要及时多与苹果审核回复邮件方式进行一一解释说明,必要时提供附近,越详细越好