好好的App,在新版本加入了QQ登陸功能後,竟然就被蘋果拒絕了。重點是前先後後一共拒絕了5次!!!審覈過了的那天立志要在簡書寫下第一篇文章好好記錄,順便鍛鍊一下文筆和熟悉一波Markdown。ios
該App是先要登陸而後才能使用。不像一些App(例如直播App),不用登陸就能使用。剛開始不瞭解蘋果審覈準則,這就挖下了後面的坑。 文末再作一波總結。web
Guideline 4.2.3 - Design - Minimum Functionality
We were required to install QQ before we could use your app. Apps should be able to run on launch, without requiring additional apps to be installed.Next StepsTo resolve this issue, please revise your app to ensure that users can use it upon launch. If your app requires authentication before use, please use methods that can authenticate users from within your app.
複製代碼
去查看蘋果開發者指南 https://developer.apple.com/app-store/review/guidelines/ api
簡單翻譯一下 若是該App要先登陸才能使用,那麼在未安裝其它任何App的狀況下必須能運行該App。bash
如圖,跳轉到Web顯示這頁面。 這種狀況是設備未安裝QQ,直接調用QQ SDK形成的。微信
蘋果反饋的圖 當時沒保存,顯示「未安裝QQ」的界面。app
處理方法: 檢測設備是否安裝QQ,未安裝的則隱藏登陸按鈕。 PS:網上大多數解決方案都是這樣。ide
還有一種方法是:經過後臺接口隱藏按鈕,等審覈經過後再修改接口顯示按鈕。 但查看蘋果開發指南中會發現,審覈期須要打開全部API。 那這種方法算不算關閉了API呢?感受蘋果應該檢測不出來,但願有大神能告知。ui
看到的時候都震驚了,蘋果仍是蘋果,竟然用了兩臺設備來審覈。 竟然還恰好一臺設備未安裝,另外一臺設備安裝了。 看樣子檢測設備是否安裝QQ的方法仍是有必定概率不可行。 (臉黑,畢竟審覈也是要看運氣的)this
恰好該App也作了微信登陸功能,對比一下。 spa
未安裝微信的設備,會跳出Web來驗證。
看到這想起,QQ登陸好像也有Web驗證功能。 翻了一下SDK,並未找到對應方法,因而就上網搜。
原來申請QQ登陸後,還要找客服配置一下才能跳轉到Web受權。申請後會自動頂替 第一次被拒絕 那個要求安裝最新QQ的界面。 因而就去找騰訊客服說明狀況,獲得如下回復。
這麼說,不就又掉回了此次被拒的輪迴嗎。。。
抹着眼淚的我又從新去看了QQ第三方登陸的網址。 一打開,個人天,漏了這麼重要的消息!!!
QQ竟然從2018年1月31日起不支持網頁受權啦!!!
親愛的蘋果官方審覈人員,您好!
對於QQ登陸,蘋果官方建議咱們,若是用戶沒有安裝QQ,則提供潛入網頁讓用戶在網頁輸入QQ帳戶密碼來登陸。可是,騰訊QQ官方已經不支持第三方QQ登陸使用網頁登錄方式。咱們已經跟騰訊開放平臺的客服聯繫過。騰訊官方也發佈了公告,這個是連接: http://wiki.connect.qq.com/%E9%80%9A%E7%9F%A5
目前騰訊技術提供了一個接口,就是判斷用戶有沒有安裝QQ,若是安裝了則顯示QQ登陸圖標,若是沒有則屏蔽該圖標。咱們的(**)APP已經實現這樣的邏輯了。騰訊技術官方給出惟一的解決辦法就是判斷是否安裝QQ選擇性顯示QQ登陸圖標。下面這個是騰訊的技術公告連接http://wiki.connect.qq.com/ios%E4%BE%A7%E5%88%A4%E6%96%AD%E5%AE%89%E8%A3%85qq%E6%8E%A5%E5%8F%
麻煩審覈人員理解下,目前QQ已經不容許其餘APP使用網頁方式登陸QQ,咱們也按照騰訊的要求,作了判斷屏蔽圖標處理。
但願審覈人員,能讓咱們新版本的APP審覈經過,謝謝!
附件,是咱們跟騰訊客服的對話截圖。
複製代碼
此次蘋果還回復同樣的緣由,我是不服的。蘋果不行、騰訊那邊又不行,需求方也不會放過個人。
Dear Apple official auditor, Hello!According to the latest technology Bulletin of Tencent, when QQ third party login, if the client installed QQ, it can directly modulate the QQ application authorized login. However, when QQ application is not installed, it will prompt the installation of QQ, and cannot jump to browser for QQ login.If you do not install QQ, it is impossible to land, this is due to the official restrictions of the Tencent, not our reason. If the user does not log in to QQ, it can also use the WeChat or the registered account of our application.For QQ login, apple officials suggest that if the user does not install QQ, it provides a latent web page to allow the user to enter the QQ account password in the web page. However, Tencent official does not support third party QQ login login page. We have been in contact with the customer service of the Tencent open platform. Tencent official also issued a bulletin, this is the link: http://wiki.connect.qq.com/%E9%80%9A%E7%9F%A5At present, Tencent technology provides an interface to determine whether the user has installed QQ. If installed, it displays the QQ login icon. If not, it will block the icon. Our (**) APP has already realized this logic. The only solution to the Tencent technology official is to determine whether to install a QQ selective display of the QQ login icon. The following is the Tencent technical bulletin link http://wiki.connect.qq.com/ios%E4%BE%A7%E5%88%A4%E6%96%AD%E5%AE%89%E8%A3%85qq%E6%8E%A5%E5%8F%QQ has not allowed other APP to log on to QQ with web pages. We also made a judgement of screened icon processing according to the requirements of Tencent.Hope that the auditor, can let us the new version of the APP audit pass, thank you!
複製代碼
到這終於經過審覈啦,笑得像個地主家的傻兒子。
好日子還沒享受多久,又傳來了噩耗。 修改了一些bug後提交新版本審覈又被拒絕啦。
反饋的圖 和第一次被拒的圖同樣。 猜想是設備安裝了QQ,但QQ版本太低。
處理方法:
//判斷是否安裝qq,沒有就隱藏按鈕
if([QQApiInterface isQQInstalled]){
//判斷當前版本的qq是否支持調用api
if([QQApiInterface isQQSupportApi])
[self setQQLogin];
}
複製代碼
改完後又經過了。
最後但願不會有第六次吧。