13

我們的應用使用Firebase手機驗證。在App Store審覈已拒絕的應用程序,由於被要求推向:由於使用Firebase手機驗證的App Store拒絕

準則4.5.4 - 設計 - 蘋果站點和服務

我們注意到,您的應用程序需要推動才能正常運行的通知。

具體而言,我們注意到如果我們的設備上未啓用推送通知設置,則在應用內輸入我們的電話號碼後,我們遇到了錯誤消息。

下一步

推送通知必須是可選的,並且必須獲得在該應用內使用的用戶的同意。

而且他們也已經連接描繪火力地堡錯誤截圖「遠程通知和背景提取需要被設置爲應用程序[...]」

火力地堡文檔指出的APN通知是絕對對於手機驗證需要的功能:
https://firebase.google.com/docs/auth/ios/phone-auth

要使用電話號碼的認證,您的應用程序必須能夠從火力地堡收到的APN通知。當您在設備上首次使用其電話號碼登錄用戶時,Firebase身份驗證會向設備發送無聲推送通知,以驗證電話號碼登錄請求是否來自您的應用。 (出於這個原因,電話號碼登錄不能在模擬器上使用。)

但是App Store中不能按順序要求推送通知審查指南狀態的應用功能:https://developer.apple.com/app-store/review/guidelines/

4.5.4推送通知不能用於應用程序的運行,不應該用於廣告,促銷或直接營銷目的,或發送敏感的個人或機密信息。

用戶需要登錄,他們可以使用該應用程序之前(應用程序是有關發送數字GIF邀請你的客人和共享照片),這就是爲什麼推送通知基本上都是必需的應用功能,如果登錄方法是Firebase手機身份驗證。

我們已經測試了很多應用程序,並且啓用了推送通知(在真實設備上,無論是在分佈式Ad Hoc構建的生產環境還是開發構建的沙盒環境中),身份驗證都毫無問題。

想想吧,App Review團隊是如何禁用推送通知的?通知中心設置不會停止實際推送,它只是不顯示它們。 Setting is turned off 我們已經測試過這個設置,並且firebase手機驗證碼工作正常,推送仍然按預期進行。

我對這個問題感到非常驚訝,因爲Firebase是一個巨大的服務提供商。有沒有其他人遇到過這個問題? 是否有計劃刪除手機驗證的APN要求?有沒有其他方法可以使用Firebase手機認證而不用推?

+3

聽起來好像您需要提供除firebase手機身份驗證之外的其他身份驗證方法,並向用戶解釋這些選項。 – Paulw11

+3

* firebaser here *我很抱歉聽到這個問題。這顯然不是我們希望你擁有的體驗。這是我第一次聽到這個問題。您可以[聯繫Firebase支持](https://firebase.google.com/support/contact/troubleshooting/),以便我們更好地瞭解您的應用如何使用電話號碼身份驗證以及與拒絕相關的方式? –

+2

@FrankvanPuffelen嗨,我也很驚訝,沒有其他人有這樣的拒絕,我可以找到。我星期五寫了支持票,但我不希望在星期一之前得到答案。該應用程序以直接的方式使用手機身份驗證,您下載應用程序,觀看/跳過教程,您必須使用電話號碼登錄,這是禁用iPad推送通知的App Review團隊無法繼續操作的地方。他們引用的規則(關於APN必須是可選的)確實存在,所以它們似乎是正確的。 – Leetmorry

回答

5

UPD:Firebase 4.2.0已經推出,解決了問題。您需要將您的反向客戶端ID添加到您的Info.plist中的URL模式中,並將其設置爲com.googleusercontent.apps.123456-abcdefg99

爲了找到這個 值,打開Goog​​leService-Info.plist中的配置文件,並查找 REVERSED_CLIENT_ID關鍵。


火力地堡支持已確認此問題,並已對這個問題給予迴應:


謝謝你的詳細信息LEET。這確實是一個奇怪的情況,我們的電話Auth工程師正在看一看。我會盡快回復你。

最佳,
傑夫



嗨LEET,

我們的工程師正在爲這個長期固定在內部的工作,但在此期間,想與您會面,看看我們能否找出解決方法。

看起來Firebase手機驗證/ Firebase用戶界面確實存在一個錯誤。

+0

遷移回數字 - 一個月內將停用的服務不是解決方案。我在我的文章中找到了根本原因,但是你接受了你自己的答案,沒有對問題有所瞭解。 – skensell

1

我接觸火力地堡的支持和這裏的摘錄:

在各地的用戶禁用推送通知關注的方面 - 禁用推送通知用戶的應用程序通常不會阻止用戶登錄使用自己的手機數字與Firebase身份驗證。我們的要求是,應用程序必須設置並啓用推送通知,而不是用戶。無論用戶是否接受或拒絕您的應用程序的推送通知提示,電話身份驗證都將繼續工作,因爲我們使用不需要用戶採取任何操作的無聲推送。

我進一步研究發現,即使用戶明確禁用推送通知,靜默推送通知的確會到達設備。要禁用靜默推送通知,您需要轉至設置 - >您的應用程序 - >後臺刷新以禁用它。請參閱Is Silent Remote Notifications possible if user has disabled push for the app?

因此,您可以告訴App Store Review團隊您的登錄將僅在啓用後臺刷新時起作用。我不相信這違反了他們的條款。

編輯

經過一番測試,看來當後臺刷新禁用手機身份驗證可以正常工作。不過,它適用於我,因爲Firebase已經可以訪問我的APNS設備令牌。我找不到將設備令牌與Firebase關聯的方法 - 它們不提供API。很遺憾,這使得我們無法測試新用戶在進行電話認證之前禁用後臺刷新和遠程通知的情況,我認爲這可能是導致錯誤的原因。

EDIT 2

我可以證實,一個新的設備上全新安裝我們的應用程序中,如果你禁用背景刷新,然後火力地堡電話驗證將無法正常工作。一旦啓用它,它將再次工作。

原因是SDK可能會調用[[UIApplication sharedApplication] registerForRemoteNotifications],如果用戶手動禁用了「後臺刷新」和「通知」設置,系統將忽略該值。

遺憾的是,除非Firebase發佈不需要APN的新SDK,否則沒有解決方法。

+2

請閱讀原始問題的這一部分: 「通知中心設置並不會停止實際推送,它只是不顯示它們。 我們已經測試了這個設置,並且firebase手機認證工作正常,推動仍然按預期進行。「 該錯誤發生在Firebase UI中,Firebase支持已確認並正在修復此問題。 – Leetmorry

+0

您問「App Review團隊甚至是否禁用推送通知?」我告訴你他們禁用了防止靜默推送通知到達的後臺刷新。 – skensell

+0

當你說推送通知時,你應該明確你的意思是用戶通知還是遠程通知。 – skensell

8

Firebaser here。正如Leetmory提到的,我們已經發布了一個更新的Firebase Auth SDK 4.2.0,希望能夠解決這些問題。

該問題是由於使用APN驗證請求的Firebase身份驗證SDK導致的 - 這是爲了儘量減少短信垃圾郵件濫用或類似的風險。驗證使用無提示APNs通知,因此不需要iOS 8及更高版本的明確用戶同意。但是,如果APNs完全停用,這種情況仍然會失敗,就像本審查案例一樣。

4.2.0版本引入了在SFSafariViewController(或舊版iOS的webview)中使用reCAPTCHA提示的功能,以防止APN不可用時的濫用。我們不認爲這會發生很多,但它說明了這裏遇到的不尋常狀態。它還支持在模擬器上測試Firebase Phone Auth!

您會注意到verifyPhoneNumber方法中有一個新的uiDelegate參數。在大多數情況下,你不需要使用它,但它是後備驗證的一部分。

如果您還沒有,您需要做的是將REVERSED_CLIENT_ID(來自GoogleService-Info.plist)添加爲自定義URL方案。這將允許reCAPTCHA視圖向您的應用返回驗證。

有一個陷阱,以瞭解在當前版本中,但:

  1. 在從verifyPhoneNumber回調,您需要重新分派到主線程,使用DispatchQueue.main.async {} - 這將是固定在未來Firebase Auth的版本!

除此之外,事情應該正常工作!我們絕對推薦儘可能支持靜默推送,以確保最佳的用戶體驗。

有關完整步驟,請參閱完整手機驗證碼developer guide

相關問題