简单的记录一下,近期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”

将类似这段私有api
[[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上架被拒原因及解决办法的更多相关文章

  1. iOS 上架被拒原因保存

    一.后台一直在获取用户的定位,需要给用户电池消耗提示 Your app uses the Location Background mode but does not include the requi ...

  2. jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法   在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...

  3. 各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码

     响应编码 产生原因以及解决办法: 示例: package cn.yzu; import java.io.IOException; import javax.servlet.ServletExcept ...

  4. .Net内存泄露原因及解决办法

    .Net内存泄露原因及解决办法 1.    什么是.Net内存泄露 (1).NET 应用程序中的内存 您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈.非托管堆和托管堆.这里我们需 ...

  5. Oracle死锁产生的原因和解决办法

    如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会发生死锁.用下面实验来说明死锁的产生原因和解决办法.SESSION1:SQL> create table t2 as select * ...

  6. HttpClient的CircularRedirectException异常原因及解决办法

    HttpClient的CircularRedirectException异常原因及解决办法 这两天在使用我自己爬虫抓取网页的时候总是出现 org.apache.http.client.ClientPr ...

  7. php_curl.dll libssh2.dll 始终无法加载的原因 及解决办法

    在StackOverflow得到最终原因及解决办法 http://stackoverflow.com/questions/16424117/php-unable-to-load-php-curl-dl ...

  8. mysql保存中文乱码的原因和解决办法

    当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心.    也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类 ...

  9. 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 ...

随机推荐

  1. [转]unity3d所要知道的基础知识体系大纲,可以对照着学习,不定期更新 ... ... ... ...

    本文献给,想踏入3d游戏客户端开发的初学者. 毕业2年,去年开始9月开始转作手机游戏开发,从那时开始到现在一共面的游戏公司12家,其中知名的包括搜狐畅游.掌趣科技.蓝港在线.玩蟹科技.天神互动.乐元素 ...

  2. Python+selenium打开或关闭浏览器

    Python+selenium打开或关闭浏览器 一.打开或关闭火狐浏览器 1.       初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打 ...

  3. webpack添加node_path不是('webpack' 不是内部或外部命令,也不是可运行的程序或批处理文件?)

    安装webpack 先决条件 开始之前,请确保安装了新的Node.js版本.目前的LTS是理想的起点.您可能会遇到与旧版本的各种问题,因为它们可能缺少webpack或相关软件包可能需要的功能. 请注意 ...

  4. php 代码的执行

    PHP内核的实现和世界上绝大数的程序一样,接收输入数据,做相应处理后输出结果.用PHP编写的代码就是输入数据,PHP内核对编写的代码进行解释和运算,最后返回运算结果.当编写的PHP代码给内核去执行的时 ...

  5. Android无线测试之—UiAutomator UiSelector API介绍之六

    对象搜索—类名与包名 一.类名属性定位对象 返回值 API 描述 UiSelector calssName(String className) 完整类名匹配 UiSelector calssNameM ...

  6. mac中一一些常用的命令

    本文转载至 http://blog.csdn.net/chen505358119/article/details/9244701   这里主要讲的是mac中的一些命令,怕忘记了所以记在这里. 1.首先 ...

  7. Kettle 7启动 Spoon.bat 时报错“A Java Exception has occurred.”的解决方法

    最近在研究Kettle 时出现启动时报错“A Java Exception has occurred.”的问题.刚开始没搞明白是什么原因,后来发现是jdk版本的问题.出现这个错误原因是 Kettle ...

  8. ES6学习笔记之变量声明let,const

    最近用淘宝的weex做了个项目,最近稍微闲下来了.正好很久没有接触RN了,所以趁这个机会系统的学习一下ES6的相关知识. 孔子说:没有对比就没有伤害.所以我们要拿ES6和ES5好好对比的学习.这样才能 ...

  9. Docker Metasploit Framework

    https://hub.docker.com/r/usertaken/metasploit-framework/ docker pull usertaken/metasploit-framework ...

  10. spring tiles界面为空白

    Caused by: org.apache.jasper.JasperException: /WEB-INF/views/admin_template.jsp(3,62) Unable to read ...