firebase / FirebaseUI-iOS

iOS UI bindings for Firebase.
Apache License 2.0
1.51k stars 472 forks source link

FirebaseUI Apple Sign-in method Rejected from App Store #823

Open babkouew opened 4 years ago

babkouew commented 4 years ago

Hi - I am trying to submit my app to the App Store but it got rejected by the App Review Team here is what they wrote:

"Guideline 2.5.13 - Performance - Software Requirements: The Apple Sign-in authentication method does not use LocalAuthentication as the App's primary authentication mechanism. LocalAuthentication must be your app's primary biometric authentication method, and any other custom facial recognition mechanism should be optional for login and cannot replace LocalAuthentication."

I have implemented the new FUIOAuth.appleAuthProvider() method to comply with the new rule that requires developers to provide sign-in with Apple in their App. As it stands if we cannot use FUIOAuth.appleAuthProvider() to implement "sign-in with Apple" then we can't use the FUIAuth at all.

My only option for now is to implement Apple sign-in only outside of FUIAuth and implement the required LocaAuthentication protocol myself.

Could you please suggest any workaround this issue? Did it happen to anyone besides me?

Thanks

morganchen12 commented 4 years ago

FirebaseUI doesn't use a custom biometric auth. Can you make sure you've linked the LocalAuthentication framework in your app? It should be linked automatically, but something may have messed up your archive build.

If it is already linked, you should submit an appeal to Apple.

babkouew commented 4 years ago

Thanks Morgan - The LocalAuthentication framework was not linked. I will resubmit the App and close this issue if it goes through.

oviroa commented 4 years ago

@morganchen12 I just had an app being rejected for using the "Sing In with Apple" provider, but the rejection reason is different than the one described by @babkouew above:

We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect:

This is what my app's log-in screen looks like, including the Apple button:

Simulator Screen Shot - iPhone 11 Pro - 2020-01-09 at 13 01 44

The button looks slightly different than their guidelines, like the centering of the text which in the FirebaseUI example is slightly off. Any ideas if that could be fixed without and update on your end?

bojeil-google commented 4 years ago

Hey @oviroa thanks for bringing this up to us. Do you have more details on the reason? Is it the text centering issue? They do not specify the centering requirement in the guidelines. We could modify the alignment but we want to make sure as it will affect the other buttons too.

oviroa commented 4 years ago

@bojeil-google The centering is just my assumption. They tend to be rather cryptic in their responses. This is the whole thread I had with Apple:

**Hello,

Thank you for your reply. The style of the Sign In with Apple button does not conform to the Human Interface Guidelines. Please see the previous message for more information and a link to the HIG website.

Best regards,

App Store Review Jan 9, 2020 at 7:14 AM From oviroa Can you please be more specific? Is the language wrong? How does button design not comply? Is there a user flow issue (order of screens etc.)? Thanks! Jan 9, 2020 at 4:57 AM From Apple Guideline 4.0 - Design

We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect:

Next Steps

To resolve this issue, please revise your app to address all instances of this type of issue.

Resources

For information on improving and enhancing your app:

Please see attached screenshot for details.**

bojeil-google commented 4 years ago

Thanks, @oviroa. @renkelvin will help you out. Perhaps we can provide you with a separate build with different alignment. If that ends up working, we will know for sure the underlying cause and update the library to comply with that.

oviroa commented 4 years ago

@bojeil-google @renkelvin Thanks, that would work. Just provide me the relevant files and I will replace in my locally installed pod (I am using Cocoapods.)

renkelvin commented 4 years ago

@oviroa Please try update your podfile.

pod 'FirebaseUI', :git => 'https://github.com/firebase/FirebaseUI-iOS.git', :branch => 'button-align'

And let me know if it works.

oviroa commented 4 years ago

Thanks @renkelvin ! Installed and submitting now to App Store. Will circle back pending app approval.

oviroa commented 4 years ago

@bojeil-google @renkelvin @morganchen12 Apple approved the app so we can for now assume it was the centering of the message inside the button.

babkouew commented 4 years ago

@morganchen12 the App was approved in my case as well. Linking manually the LocalAuthentication framework solved the issue.

yosuke-matsuda commented 4 years ago

I noticed another issue with the Human Interface Guidelines.

Sign in with Apple

The white style is available in iOS, macOS, tvOS, and web. Use this style on dark or colored backgrounds that provide sufficient contrast.

Dark Mode

Test your design in both light and dark appearances. See how your interface looks in both appearances, and adjust your designs as needed to accommodate each one. Designs that work well in one appearance might not work in the other.

When the app supports the Dark mode, and the background of the login screen is black or colored, Apple potentially rejects your app for not using the white style. It will be very helpful if it uses system-provided APIs to create the button or responds to the Dark mode.

morganchen12 commented 4 years ago

@renkelvin and the larger Auth team are weighing some possibilities. We'll take that feedback into account.

fangyuxi commented 4 years ago

I followed Apple's guidelines and approved it after modifying it into the following style.

WechatIMG110
Casey10110 commented 3 years ago

How did you modify this, I still have this problem they won't accept my app?

morganchen12 commented 3 years ago

This should be fixed in the latest version of FirebaseUI. Please let me know if that's not the case.

frios commented 3 years ago

I have noticed that with build 10.0.2 that the Sign in with Apple button does not change its coloring when the phone changes light/dark mode. If the app is killed and restarted, then the button will be the appropriate color, but not if the color mode is changed while the app is running. This may cause some issues with Apple acceptance of the app.

morganchen12 commented 3 years ago

Thanks @frios, for the time being you can work around this by reinstantiating your app's auth flow when the system light/dark mode changes.

morganchen12 commented 3 years ago

Hey all, is this still an issue with FirebaseUI 11?

babkouew commented 3 years ago

Hi @morganchen12 , I don't know yet. However, I will push a new refactored version of my App using FirebaseUI 11 to the App store in the coming months and will surely let you know if anything.