Apple Sign In – Obligatoire

Illustration de l'Apple Sign In
Extrait de : https://developer.apple.com/news/

Depuis le 12 Septembre 2019 Apple a mis à jour les « Guidelines » de l’App Store pour enrichir les critères de soumissions et de mise à jour d’applications.

Dans ces guidelines que toutes les applications doivent suivre, Apple a rajouté ça.

developer.apple.com-app-store-review-guidelines

🚨Donc ? Obligation de proposer un « Sign in with Apple » si vous proposez un login externe dans le but d’authentifier vos utilisateurs (« Facebook Login », « Google Sign-In », « Sign in with Twitter », « Sign In with LinkedIn », « Login with Amazon », ou « WeChat Login »).

Les exceptions 

  • ✅ Vous utilisez un « Sign in » qui est propre à votre entreprise.
  • ✅ Votre application est une application de formation, d’entreprise ou d’entreprise qui exige que l’utilisateur se connecte avec un compte de formation ou d’entreprise existant.
  • ✅ Votre application utilise un système d’identification des citoyens ou une pièce d’identité électronique soutenu par le gouvernement ou l’industrie pour authentifier les utilisateurs.
  • 😳 Votre application est un client pour un service tiers spécifique et les utilisateurs doivent se connecter à leur compte de messagerie, de médias sociaux ou autre compte tiers directement pour accéder à leur contenu.

Désolé, je ne comprends pas le dernier à 100%. Peut-on considérer que nous sommes des tiers quand on utilise des SDK tiers dans nos applications ? Pour ne citer que FirebaseUI, suis-je obligé de rajouter ce type de login. C’est indéniablement à clarifier car le coût d’intégration peu vite devenir élevé (j’y reviens quelques lignes plus bas) et à partir de d’Avril 2020 toutes les applications devront s’y plier au risque de se voir refuser ou bloquer les mises à jours.


Pourquoi doit-on y voir un coût d’intégration important ?

Pour proposer cette nouvelle façon de s’authentifier, vous allez devoir intégrer ce petit bout de code.

func appleSignInPressed() {
      let request = ASAuthorizationAppleIDProvider().createRequest()
      request.requestedScopes = [.email, .fullName]
      let controller = ASAuthorizationController(authorizationRequests: [request])

      controller.delegate = self
      controller.presentationContextProvider = self
      controller.performRequests()
}

Malheureusement, cela requiert d’utiliser Xcode 11 pour compiler son projet… ce qui veut dire qu’on va surement devoir composer avec d’autres petits changement qu’Apple a réalisé avec la nouvelle version de son SDK. (J’en parle ici)

Pour intégrer ces 6 lignes de code, vous allez devoir tester toute votre application pour vérifier que les parcours fonctionnent correctement et détecter/corriger les régressions.


🚨 Une mise à jour obligatoire avant Avril 2020

Pour les « anciennes » applications, vous allez devoir prendre le temps de faire les modifications avant la date fatidique. Cela peut devenir un casse tête quand on pense aux soucis qu’on peut rencontrer :

  • Mise à jour de la version de Swift,
  • Modification des SDK tiers à faire ou à demander,
  • Changement des librairie tiers, via cocoapods/carthage,
  • Des librairies qui peuvent devenir incompatibles,
  • Des correction à faire propre à iOS13 (au moins Dark mode et la gestion des modales)

Prévoyez ça dans votre RoadMap produit !

😎 RocketSkill intègre « Apple Sign In » depuis quelques semaines et ça s’est plutôt bien passé.