简单的记录一下,近期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. 自定制serilazry字段

    在获取序列化返回值时候想要有时候我们需要生成我们需要的关联字段 class CourseSerializers(ModelSerializer): # 对于外键,one to one , choice ...

  2. Laravel5.1 模型初探

    Laravel的模型也是访问数据库的,它更加面向对象,一个模型对应着一张表 我们可以使用模型对数据做一些增删改查的操作. 1 创建模型 创建模型是可以使用Artisan控制台的: php artisa ...

  3. 三、docker官网注册docker id

    docker官网注册docker ID 电脑注册docker没有成功,网上有人说用手机注册,试了一下确实可以注册. 1.下载蓝灯软件开启FQ代理. 2.登录网站,按照提示注册.

  4. 160817、Java数据类型以及变量的定义

    Java 是一种强类型的语言,声明变量时必须指明数据类型.变量(variable)的值占据一定的内存空间.不同类型的变量占据不同的大小. Java中共有8种基本数据类型,包括4 种整型.2 种浮点型. ...

  5. 【python】-- Django 中间件、缓存、信号

    Django  中间件.缓存.信号 一. Django  中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的 ...

  6. 【转】NPIV - 连接虚拟机与存储的桥梁

    转自:http://blog.csdn.net/jewes/article/details/7705895 解决什么问题 我们知道在存储区域网络(SAN:storage area network),主 ...

  7. linux下查看cpu,内存,硬盘等硬件信息的方法

    说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息.但是对于双核的cpu,在cpuinfo中会看到两个cpu.常常会让人误以为是两个单核的cpu. 一.linux CPU大小 ...

  8. STL学习笔记— —容器map和multimap

    简单介绍 在头文件<map> 中定义 namespace std { template <typename Key, typename T, typename Compare = l ...

  9. 安装mysql以及修改初始密码

    我们可以采用类似安全模式的方法修改初始密码 先执行命令  mysqld_safe --skip-grant-tables &   (设置成安全模式) &,表示在后台运行,不再后台运行的 ...

  10. boost之定时器和io_service

    1.定时器的使用,sleep是等待线程,asio封装了操作系统的异步系统调用select,epoll. io_servie 实现了一个任务队列,这里的任务就是void(void)的函数.Io_serv ...