iOS上架被拒原因及解决办法
简单的记录一下,近期APP上架所遇到的坑爹事儿吧!!
第一次提交:
第二天给了回复,内容如下:
、Guideline 2.5. - Performance - Software Requirements Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change. Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store. Next Steps To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the "prefs:root" or "App-Prefs:root" URL scheme. If there are no alternatives for providing the functionality your app requires, you can file an enhancement request.
这是因为公司项目已经近1年没有更新了,很多访问私有API的地方没有进行删除,我接手项目对里面的代码也不太清楚,直接上传了,结果悲剧了。。。。。
解决办法如下:在xcode内进行全局搜索“prefs”
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
换成下面的
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
提醒:注释掉也不行,苹果机审仍然会检查到,直接进行删除或替换掉。
第二次提交:
结果如上,仍然有API存在(这叫一个郁闷啊~明明全局已经搜索完了,为啥还会有私有API存在。)后来在网上搜索一下,才发现第三方库中也有使用私有API的情况。
在终端下依次执行如下代码进行搜索私有API.
cd 工程目录
grep -r prefs .(注意此处有个点.)
grep -r App-Prefs .
grep -r GraphicsServices .
果然:真有存在的情况,这个TZImagePickerController第三方库中有"prefs"存在。
那就好办了:cocoapods进行更新TZImagePickerController版本。
第三次提交:
第二天一早就收到了苹果的回复邮件,当时满心欢喜的去登录App Store Connect,可是一打开,傻眼了,这是什么鬼。竟然收到了传说中的2.1大礼包。
Guideline 2.1 - Information Needed This type of app has been identified as one that may violate one or more of the following App Store Review Guidelines. Specifically, these types of apps often: 1.1. - Include false information, features, or misleading metadata.
2.3. - Undergo significant concept changes after approval
2.3. - Have hidden or undocumented features, including hidden "switches" that redirect to a gambling or lottery website
3.1. - Use payment mechanisms other than in-app purchase to unlock features or functionality in the app
4.3. - Are a duplicate of another app or are conspicuously similar to another app
5.2. - Were not submitted by the legal entity that owns and is responsible for offering any services provided by the app
5.3. - Do not have the necessary licensing and permissions for all the locations where the app is used
此时,不用慌,凡事儿总会有解决的办法,就仔细审查了一下,后来询问过开发大佬后,才知道这未必就是你项目中的问题,如果确定项目中没有以上问题,你直接回复苹果审核团队就行了。
尊敬的苹果审核团队:
感谢您对我们的App耐心审核, 对于您提到的我们可能违反的其中11个审核条款, 我们的研发团队经过认真自查和研究, 我们现在对此回复如下: 1.1.:我们绝对没有包含任何的虚假信息和误导用户的功能,全都是真实的。
2.3.:我们没有在通过后修改任何概念和功能。
2.3.:我们没有切换到任何赌博或彩票的网站。
3.1.:我们没有使用应用程序内购买以外的支付机制解锁应用程序中的功能或功能
3.2.; 我们没有使用任何贷款业务。
4.3.:我们的APP内容不存在抄袭或大量相似。
5.2.:我们的App并没有法人实体和版权的风险。
5.2.:我们的app并没有进行非法文件共享,或包括从第三方来源保存、转换或下载媒体的能力
5.3.:我们的App定位功能在用户首次安装时会以弹窗的形式提醒用户,请点击“允许”以允许访问。若不允许,APP”将无法获取定位当前位置。
希望苹果审核团队能继续审核,谢谢。 Dear Apple Review Team:
Thank you for your patience in reviewing our App (). Our R&D team has carefully examined and studied of the audit terms you mentioned that we may violate. We now reply as follows: 1.1.: We absolutely do not contain any false information and misleading user functions, all are true.
2.3.: We haven't changed any concepts and functions after adoption.
2.3.: We haven't switched to any gambling or lottery websites.
3.1.: We do not use payment mechanisms other than in-app purchases to unlock functions or functions in applications.
3.2.; We did not use any loan business.
4.3.: Our APP content is not plagiarized or largely similar.
5.2.: Our App has no legal entity or copyright risk.
5.2.: Our app does not have illegal file sharing, or includes the ability to save, convert or download media from third-party sources.
5.3.: Our App Location function reminds users when they first install it in the form of a pop-up window. Please click "Allow" to allow access. If not, APP will not be able to locate the current location.
I hope the Apple Audit Team can continue to audit. Thank you.
第四次提交:
这就开始了一段漫长时间的等待,APP一直处于等待审核状态,针对2.1大礼包,网上云说亦云,各种说法,有的等待了三两周,有的等了三两月。。。。我就准备先等待一周看看情况再决定,然后每天给苹果审核团队发一封邮件催他们,反正我有的是时间,就发呗!!!结果等到了第五天早晨手机叮的一声儿~~~收到一封邮件,我饭都么吃,赶紧打开邮件。苹果尼玛~~~怎么又给我拒绝了?
Guideline 2.1 - Information Needed We were unable to sign in to review your app with the demo account information you provided. In order for us to review your app, please provide us with a functional demo account so that we may fully assess your app's features. Next Steps To help us proceed with the review of your app, please provide a user name and password in the App Review Information section for your app in App Store Connect. Please be sure to include content in your app that demonstrates the features and functionality available in your app. To provide demo account information: - Log in to App Store Connect
- Click "My Apps"
- Select your app
- Click on the app version on the left side of the screen
- Scroll down to "App Review Information"
- Select the "Sign-in required" box
- Enter demo credentials in the "User name" and "Password" fields
- Once you've completed all changes, click the "Save" button at the top of the Version Information page.
百度翻译一下:原来说我提审的账号密码错误,我就无语了,尼玛之前提交也没有说登录不上去啊!!!闲的蛋疼了吗?这不是没事找事儿吗?
吐槽一番之后,也没办法,谁让苹果是粑粑呢,只好老老实实的给回复邮件,并上传了一段演示视频。
现在等结果吧!!
iOS上架被拒原因及解决办法的更多相关文章
- iOS 上架被拒原因保存
一.后台一直在获取用户的定位,需要给用户电池消耗提示 Your app uses the Location Background mode but does not include the requi ...
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...
- 各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码
响应编码 产生原因以及解决办法: 示例: package cn.yzu; import java.io.IOException; import javax.servlet.ServletExcept ...
- .Net内存泄露原因及解决办法
.Net内存泄露原因及解决办法 1. 什么是.Net内存泄露 (1).NET 应用程序中的内存 您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈.非托管堆和托管堆.这里我们需 ...
- Oracle死锁产生的原因和解决办法
如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会发生死锁.用下面实验来说明死锁的产生原因和解决办法.SESSION1:SQL> create table t2 as select * ...
- HttpClient的CircularRedirectException异常原因及解决办法
HttpClient的CircularRedirectException异常原因及解决办法 这两天在使用我自己爬虫抓取网页的时候总是出现 org.apache.http.client.ClientPr ...
- php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法
在StackOverflow得到最终原因及解决办法 http://stackoverflow.com/questions/16424117/php-unable-to-load-php-curl-dl ...
- mysql保存中文乱码的原因和解决办法
当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心. 也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类 ...
- eclipse中tomcat发布失败(Could not delete May be locked by another process)原因及解决办法
在eclipse中tomcat发布项目时,偶尔出现了以下情况: publishing to tomcat v7.0 services at localhost has encountered a pr ...
随机推荐
- linux oracle error解决记录
1.sqlplus / as sysdba后使用select instance_name,status from v$instance后出错: ERROR:ORA-01034: ORACLE not ...
- Linq中GroupBy方法的使用总结(转载)
from:https://www.cnblogs.com/zhouzangood/articles/4565466.html Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均 ...
- Jmeter与LoadRunner 测试Java项目的坑
32位的JDK,Jmeter.bat 最大内存只能配置1G,测不了大并发,所以用Jmeter测试时一定要改成64位的Jmeter用LR测试java程序的时候必须用32位的JDK 环境变量 在path的 ...
- c#文件流汇总
操作文件比较常见,项目中经常出现这样的需求:按每个月自动创建文件,并且向文件里面插入一些数据,那么我们将要分析,文件是否存在的情况:如果存在则直接打开文件流向文件中插入数据,如果不存在,则创建文件再插 ...
- java内部类详细介绍
0.内部类与一般类有所不同,它是放在外部类的内部即可作为外部类的成员变量,也可放在方法内部作为局部变量,既然是变量,那么它可以用 private static 修饰符修饰,而外部类则不能,这也是内部类 ...
- 《挑战程序设计竞赛》2.1 广度优先搜索 AOJ0558 POJ3669 AOJ0121
AOJ0558 原文链接: AOJ0558 题意: 在H * W的地图上有N个奶酪工厂,分别生产硬度为1-N的奶酪.有一只吃货老鼠准备从老鼠洞出发吃遍每一个工厂的奶酪.老鼠有一个体力值,初始时为1,每 ...
- 【转】图解MySql命令行创建存储过程
一 操作实例 首先登录mysql: 使用source命令,从命令行执行sql脚本,创建表: 创建第一个存储过程: 事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";&q ...
- Win7环境下Apache+mod_wsgi本地部署Django
django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习 以前你总是使用python manage.py runserver进行服务启动,但是却不知 ...
- 让phpstorm 支持 vue文件并且语法高亮
1 安装 vue.js 插件 很遗憾,我的win版本没有支持的插件 2 修改文件类型 vue本质上还是html文件,包含了css html js,用html类型文件打开就可以 给html 文件添加 * ...
- Python3.6全栈开发实例[024]
24.文件a1.txt内容(注意每行中的空格是不一样的,需要对空格进行处理)序号 部门 人数 平均年龄 备注 1 python 30 26 单身狗 2 Linu ...