這段時(shí)間剛?cè)肼毿鹿菊姑ィ谂鴄pp更新,但是事情卻不順利,審核被拒了,返回信息如下:
Guideline 2.5.2 - Performance - Software Requirements
During review, your app installed or launched executable code, which is not permitted on the App Store. Specifically, your app uses the itms-services URL scheme to install an app.
Please note that while educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code, such code may not be used for other purposes and such apps must make the source code completely viewable and editable by the user.
The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.
Next Steps
- Review the Software Requirements section of the App Store Review Guidelines.
- Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program.
- Once your app is fully compliant, resubmit your app for review.
Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination.
If you believe your app is compliant with the App Store Review Guidelines, you may submit an appeal. Alternatively, you may provide additional details about your app by replying directly to this message.
Guideline 4.0 - Design
Your app includes an update button or alerts the user to update the app, but the update button or alert does not link directly to the app’s page on the App Store.
Next Steps
To resolve this issue, please ensure that tapping the update button takes the user directly to the app’s page on the App Store to update the app.
大概意思就是我的app會(huì)通過(guò)url進(jìn)行安裝其他app,應(yīng)用程序中或者框架中使用了蘋(píng)果禁止的私有方法厕怜,或者熱修復(fù)。大概就是這2個(gè)原因?qū)е律霞鼙痪芰恕?/p>
1.應(yīng)用程序中或者框架中使用了蘋(píng)果禁止的私有方法,或者熱修復(fù)。
各種百度 Google师抄,詢問(wèn)各位網(wǎng)友關(guān)于Guideline 2.5.2的信息,許多網(wǎng)友說(shuō)是第三方SDK里面含有一些蘋(píng)果禁止的dlopen()、dlsym()诫肠、responseToSelector等私有方法司澎。
按照網(wǎng)友的方法(打印第三方.a文件所需命令行命令)
1?? cd進(jìn)入 .a上級(jí)文件夾目錄 (找到.a文件的目錄)
2?? 執(zhí)行命令 nm -n xxx.a >> xxx.txt (將 靜態(tài)庫(kù)名.a 所用的函數(shù)名保存到 xxx.txt 文件中)
打開(kāi)xxx.txt 文件搜索dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations()函數(shù)名,這些函數(shù)如果有用到的恭喜你中獎(jiǎng)了,需要將第三方庫(kù)更新(有的第三方庫(kù)最新版本可能不行反而老版本的可以,是否更新那就自己斟酌了)栋豫。
靠著網(wǎng)友傳授的“神功”,我在txt尋找著dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations()等函數(shù)谚殊,但是都沒(méi)有發(fā)現(xiàn)丧鸯,不是因?yàn)榈谌絊DK導(dǎo)致上架被拒的。
2.app會(huì)通過(guò)url進(jìn)行安裝其他app
懷疑是app的更新提示導(dǎo)致的,我的這個(gè)app是電商類型的嫩絮,之前有做過(guò)強(qiáng)制更新的功能丛肢,所以我把a(bǔ)pp更新相關(guān)的代碼都屏蔽了,重新上架審核。
但是過(guò)了幾天,又被拒了剿干。ㄟ( ▔, ▔ )ㄏ 無(wú)奈了蜂怎,拒絕的理由還是Guideline 2.5.2,蘋(píng)果爸爸真厲害置尔。失敗了一次杠步,只能重新查看代碼中是否還有其他問(wèn)題。既然上次沒(méi)有在app中發(fā)現(xiàn)應(yīng)用程序中或者框架中使用了蘋(píng)果禁止的私有方法榜轿,或者熱修復(fù)的相關(guān)代碼幽歼,那就只能app會(huì)通過(guò)url進(jìn)行安裝其他app導(dǎo)致的被拒。
好吧谬盐,運(yùn)行代碼甸私。電商類型app是需要支付的,此項(xiàng)目中接入了微信與支付寶支付飞傀。那么是不是因?yàn)橹Ц兜膯?wèn)題才被拒的呢皇型?突然想到,蘋(píng)果審核那邊的手機(jī)可能沒(méi)有支付寶或者微信app砸烦,這個(gè)居然沒(méi)想到弃鸦,測(cè)試的時(shí)候也不曾設(shè)置過(guò)沒(méi)有支付寶或者微信的測(cè)試環(huán)境,玩大發(fā)了 =_=外冀!
把手機(jī)里面的支付寶寡键,微信都刪除了,運(yùn)行app,下單支付西轩。 果然员舵,問(wèn)題出現(xiàn)了 /(ㄒoㄒ)/~~ 此時(shí),我的手機(jī)是沒(méi)有安裝支付寶與微信的藕畔,下單支付的時(shí)候马僻,選擇微信支付,沒(méi)有什么反應(yīng)注服,不會(huì)跳轉(zhuǎn)網(wǎng)頁(yè)或app韭邓。下一個(gè),選擇支付寶支付溶弟,支付寶居然會(huì)跳轉(zhuǎn)一個(gè)網(wǎng)頁(yè)女淑,在這個(gè)網(wǎng)頁(yè)中會(huì)要求下載支付寶app,基于AppStore的審核辜御,我肯定不想下載支付寶啦鸭你,然而,我被支付寶大佬打臉了 ( ̄ε(# ̄)☆╰╮( ̄▽ ̄///) 當(dāng)我點(diǎn)擊離開(kāi)網(wǎng)頁(yè)的時(shí)候擒权,居然沒(méi)法退出網(wǎng)頁(yè)袱巨,我的天啊,不下載就別想離開(kāi)這個(gè)網(wǎng)頁(yè)了碳抄,支付寶大佬的態(tài)度真是強(qiáng)硬S淅稀!剖效!對(duì)于這種強(qiáng)硬的操作嫉入,我是相當(dāng)?shù)姆猓喈?dāng)?shù)姆饧桑喈?dāng)?shù)姆馊懊常≈匾氖虑檎f(shuō)3遍。 我在想之前這個(gè)app是怎么成功上架幾次的逗宁?是蘋(píng)果審核沒(méi)有發(fā)現(xiàn)這個(gè)問(wèn)題嗎映九? 我終于明白我的app被拒的原因了 /(ㄒoㄒ)/~~
應(yīng)對(duì)措施:在下單支付的Controller中,要判斷是否安裝微信與支付寶瞎颗,如果沒(méi)有安裝app件甥,就隱藏對(duì)應(yīng)的支付方式。
以下是我的判斷代碼:
if (![WXApi isWXAppInstalled]) {
self.weixinView.hidden = YES;
}
self.aliPayView.hidden = ![[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"alipay:"]];
好了哼拔,打包引有,重新上傳到App Store等待審核。
蘋(píng)果爸爸虐我千百遍倦逐,我待蘋(píng)果爸爸如初戀譬正。 /(ㄒoㄒ)/~~