熱修復問題被拒解決(含蘋果聯絡方式)

weixin_33782386發表於2017-05-13

總共被拒了3次,第4次提交功能,現總結如下:
一.被拒理由2.5.2
<blockquote>
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 and section 3.3.2 of the Apple Developer Program License Agreement.

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.

Next Steps

To resolve this issue, please perform an in-depth review of your app and remove any code, frameworks, or SDKs that fall in line with the functionality described above and resubmit your app’s binary for review.
</blockquote>
二.排查思路
1.分析
從蘋果稽核回覆可以看出,是我們程式碼或庫用了類似熱修復的東西(可以動態改變app行為)。【第一次被拒,直接給了一張遊戲介面圖片,剛開始以為是網路運營商遊戲廣告導致】,google了下類似問題,發現基本上都是第三方庫問題導致,暫時排除運營商廣告(如果是這個引起,應該有好多類似app背景被拒)。自身app程式碼也沒有特意用到該技術,所以基本定位是第三方庫問題。

2.第三方庫排查總體思路
替換可以替換最新版本的第三方庫,如百度雲,bugly庫等。

三排查過程
1.參考如下連結,同時去第三方庫網站查閱並聯系相關技術支援
https://github.com/bang590/JSPatch/issues/746
得到如下彙總分析
<blockquote>
2017年5月9日
一.目前已知被拒過的第三方庫
1.高德 [最新版本可以解決]
2.個推 [最新版本可以解決]
3.騰訊Bugly 該版本可能有熱修復(網上有人用最新版稽核通過)[bugly應該沒有沒問題,熱更新sdk有問題]
4.百度移動統計[最終定位是該庫有問題,直接移除]
二.目前沒有問題
1.網易雲信 NIMKit
2.兌吧(積分商城)
3.友盟官網最新包顯示是是沒有問題[不放心因為用的是老包,還是嘗試了下,最終試出來是沒有問題]
4.WebViewJavascriptBridge

三.很可疑的(dlopen(), dlsym()函式使用)【最終發現沒有問題】
1.阿里雲埋點日誌服務 AliyunLogObjc(用到很多如下函式)


3003454-79e302ca1181920a.png
Paste_Image.png

2.AFNetWorking
</blockquote>

四.驗證試錯過程
1.由於蘋果爸爸很任性,不直接告訴你那個庫有問題,你就只能自己一個一個嘗試,強烈建議像我們一樣多個app,一起提交,這樣可以節省N倍時間(一般稽核1天左右就會有結果)
2.各種嘗試
<blockquote>
a.樹蘭分支嘗試
1.樹蘭分支 去除老版友盟(微信蘋果支付等) 百度移動統計庫, 替換百度雲最新庫,bugly最新庫, 12號成功上架

b.317護分支嘗試
1.更新百度推送,更新bugly,10號被拒
2.刪除百度移動統計,12號通過

c.智慧鞋分支嘗試
1.智慧鞋 當前版本 不修改{可以將bugly更新到最新在提交} ,含最新版友盟。 12號被拒,ipv6問題
</blockquote>
最終定位是百度移動統計問題,移除(其實我們後來用阿里資料埋點,自己統計分析了)。

四.蘋果稽核的相關聯絡方式

1.https://developer.apple.com/contact/app-store/?topic=appeal
直接提交申訴理由 (裡面還有一起其他功能 如加速稽核等.)

2.https://developer.apple.com/contact/submit.php
開發問題, 貌似也可以問一些稽核問題

3.各地區 Apple 開發者支援電話號碼:https://developer.apple.com/cn/contact/phone.php
01085255770 蘋果稽核團隊的電話

2017年5月10日
蘋果開發電話已經反饋 4006701855 id編號100189797078,
目前狀態,等待回覆。【最終沒有回覆,可能已經上架了,就不管我們了吧

2017年5月15日
id編號100193243875(PLA1.2問題)
如果您發現本文對你有所幫助,如果您認為其他人也可能受益,請把它分享出去。

相關文章