震惊!APP审核竟然审核了4个月

在经历了漫长的延时审核和反复提交各种资料中,本人踩过了很多坑,每天早上第一件事就是看手机,查邮件,审核通过了没有,所以在此记录一下。

先说一下背景,我们的这个app是我接受分公司的项目,那边解散了,所以我基本处于无人可问的情况,而且项目相当的大,代码量和功能也超多,集成了很多第三方sdk(有些sdk竟然找不到官网)。

第一次被拒:苹果严查热更新问题

### Guideline 2.5.2 - Performance

Your app, extension, or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with

 [App Store Review Guideline 2.5.2](https://developer.apple.com/app-store/review/guidelines/#software-requirements) 

and section 3.3.2 of the
 [Apple Developer Program License Agreement](https://developer.apple.com/terms/)

This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes. This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior and/or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.

但是我们真的没有使用JSPath方面的功能,dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(),这些方法是没事的,经过和苹果审核人员的反复解释,苹果准备放行的时候,结果又出了问题!

第二次被拒:虚拟类支付需要使用内购,但是我们使用了支付宝,微信,银联等第三方支付

Guideline 3.1.1 - Business
We noticed that your app 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.

Specifically, your app allows users to purchase digital content using UnionPay, AliPay and IPAYNOW.

我们在审核的时候隐藏了支付功能,调用了内购,但是还是被查了出来,苹果竟然开始扫描源代码!!!说我们的app里有第三方支付的sdk!没办法,只能继续沟通。结果苹果主动给我们打了电话。

At your request, we can arrange for an Apple Representative to call you within the next three business days to discuss your App Review issue. Our representative will be able to discuss the issue in English or Chinese.

To request a call and ensure we have accurate contact information, reply directly to this message with a contact name and direct phone number to reach you.

申请应用审核团队致电联系

如果您有需要,我们将根据您的要求在三个工作日内安排一位精通中文的苹果公司代表致电与您联系,讨论您的应用审核结果。
为了确保我们有正确的联系资料,请回复这封邮件并提供您的姓名与电话号码。

申請應用審核團隊致電聯繫

如果您有需要,我們將根據您的要求在三個工作日內安排一位精通中文的蘋果公司代表致電與您聯繫,討論您的應用審核結果。
為了確保我們有正確的聯繫資料,請回覆這封郵件並提供您的姓名與電話號碼。

反正我接到的电话态度并不是那么好,而是挺强硬的,我和他们解释了我们的app里真不存在热更新,而且已经删除了第三方支付的sdk,但是还是给我们延时审核了!

但是我也特别忙,因为我一个人要做两个项目,而且我本来是技术不是产品,实在是没有精力去反复的沟通app的审核问题。

找了很多办法,大部分都说是第三方sdk存在的热更新问题,我也看了很多文章,该替换的sdk也都替换了,后来我们还是找到了问题所在,原来是一个小广告公司提供的sdk,他们竟然连官网都没有,更别说更新sdk了,但是也有一些找不到官网的sdk没有替换。我也总结了一些方法:

我们使用的是反汇编工具hopper
1.将打包好的ipa文件解压缩
2.找到payload文件然后显示包内容
3.找到黑色的可执行文件,用hopper去扫描该文件
4.我们找了一些jspath的方法,逐行的去搜索关于jspath方法名:

  • (void)startEngine;
  • (JSValue *)evaluateScriptWithPath:(NSString *)filePath;
  • (void)defineStruct:(NSDictionary *)defineDict;
  • (void)handleException:(void (^)(NSString *msg))exceptionBlock;
  • (void)main:(JSContext *)context;
  • (void *)formatPointerJSToOC:(JSValue *)val;
  • (id)formatRetainedCFTypeOCToJS:(CFTypeRef)CF_CONSUMED type;
  • (id)formatPointerOCToJS:(void *)pointer;
  • (id)formatJSToOC:(JSValue *)val;
  • (id)formatOCToJS:(id)obj;
  • (int)sizeOfStructTypes:(NSString *)structTypes;
  • (void)getStructDataWidthDict:(void *)structData dict:(NSDictionary *)dict structDefine:(NSDictionary *)structDefine;
  • (NSDictionary *)getDictOfStruct:(void *)structData structDefine:(NSDictionary *)structDefine;
  • (NSMutableDictionary *)registeredStruct;
  • (NSDictionary *)overideMethods;

后来经过一点点的排查终于找到了存在热更新问题的sdk,太坑了!

第四次被拒:音频/视频下载功能

Guideline 5.2.3 - Legal - Intellectual Property
Your app allows users to save or download music, video, or other media content without authorization from the relevant third-party sources.

Please see attached screenshots for details.

The next submission of this app may require a longer review time.

死的心都有了,又被拒了!

我们的app中存在了下载电影功能,但是我们的app下载的电影都是我们自己购买的版权,然后我又提交了授权书,但是在解决方案中心提交材料的时候怎么都提交不上去。大概需要注意以下几点:

1.需要提交png格式的文件
2.每个文件不要超过5M

否则只会干转圈,什么反应也没有,我为此不知试了多少次!太坑了!

再次被拒:授权书所被授权的都是公司名称,而我们之前的产品注册了个个人开发者账号。。。

也就是说,你提交的授权是版权方授权该XXX公司有权处置该方面的资源,但是你是个人开发者,授权书上并没有具体说明。

Hello, 

Thank you for your response.

Please point to the portions of the documentation that allows for the download of media content. 

Additionally, we are requesting further documentation demonstrating your right as XXX to develop the app. 

We look forward to reviewing your app once the requested information is provided.

Best regards,

App Store Review

我当时真的有点绝望了,苹果延时审核第一次是一个月后审核,第二次将近1个半月才审核!而且在问题解决中心里面回复速度也比之前慢了好几天。我当时都想让我在加拿大的同学给苹果审核小组打电话了。

Please feel free to contact me at +1-408-783-3183 between 11AM-8PM Pacific Daylight Time if you need further clarification.

结果苹果又给我回了信息,让我提交材料证明这个个人开发者账号是公司的,有人会问了,为什么不转让App或者升级账号呢。

1.我们已经有公司的开发者账号了,所以只能转让
2.APP内购中涉及连续包月功能无法转让

哎!我只能说是太坑了。。。
然后我有开始准备各种材料,走公司OA流程,盖章,证明这个个人级别的开发者账号是公司的,而且涉及内购连续包月问题,无法做转让!


屏幕快照 2017-11-09 上午8.59.28.png

我准备好了这些材料,并说明了原因,苹果把app的状态变成了in review状态。这篇文章是11月7号晚上写的,在in review状态经过了漫长的10天,和我反复的发邮件催审核的状态,今天11月8号终于过了!!!
WechatIMG2.jpeg

经过反复4个月的等待和耐心沟通,终于审核过了!!!

我也总结了一下几点,大家可以借鉴:
1.千万不要耍小聪明,如同热更新,第三方支付,否则会死的很惨
2.及时的与苹果沟通,通过解决方案中心,还有加急审核两个方式进行沟通。
3.如果解决方案中心和加急审核都没有回复,可以打苹果客服,根据我每天给苹果打电话的经验来说,客服人员女的比男的好,他们可以帮你发内部邮件,男客服一般会说没有这项服务(大概的意思是)。
4.及时与领导商量怎么办,需要授权书,需要公司开证明走OA报批,能够尽快走完流程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容