Urgence Google Play & Apple Store : Conformité Android 16 (API 36) & Privacy Manifests.Hub Urgences 24h
Kerweb. Agence Capacitor
APPLE_GUIDELINE_4_8_SIWA

Rejet Apple Guideline 4.8 : Obligation Sign in with Apple (SIWA) avec Google Login

Guide complet de mise en conformité et service d'intervention d'urgence garanti sous 24-48h par notre cellule technique.

TL;DR — Solution Rapide Synthétique

Installez le plugin natif @capacitor-community/apple-sign-in, capturez immédiatement le fullName et email lors de la première connexion, et validez cryptographiquement l'identityToken côté backend.

Description du Problème & Risque Store

L'App Store rejette automatiquement toute application iOS qui intègre un système de connexion tiers (Google Sign-In, Facebook Login, etc.) sans proposer Sign in with Apple avec une ergonomie équivalente.

Procédure de Réparation Étape par Étape

Selon la Guideline Apple 4.8, dès lors qu'une application mobile propose un login tiers (Google, Facebook, etc.), l'intégration de Sign in with Apple (SIWA) est strictement obligatoire sous peine de rejet immédiat lors de l'App Review. ### Complexités techniques critiques résolues par Kerweb : 1. **Côté Frontend & Capacitor :** - Utilisation du plugin natif `@capacitor-community/apple-sign-in` pour déclencher la modale native FaceID / TouchID du système iOS. - Respect strict des directives d'affichage et de branding officiel Apple (*Human Interface Guidelines*). 2. **Côté Backend & Authentification (Le Piège du 1er Login) :** - **Capture unique du profil :** Apple ne renvoie le `fullName` et l'`email` de l'utilisateur qu'à la toute première connexion. Notre architecture capture et persiste immédiatement ces données en base de données avant l'expiration du token. - **Relais privé Apple (Hide My Email) :** Gestion transparente des adresses e-mails anonymisées relayées par Apple. - **Validation cryptographique :** Décodage et vérification sécurisée de la signature du JWT (`identityToken`) via les clés publiques Apple côté serveur.
src/services/appleAuth.ts
import { SignInWithApple, SignInWithAppleOptions, SignInWithAppleResponse } from '@capacitor-community/apple-sign-in';

export const handleAppleSignIn = async () => {
  const options: SignInWithAppleOptions = {
    clientId: 'app.kerweb.mobile',
    redirectURI: 'https://kerweb.app/api/auth/apple/callback',
    scopes: 'email name',
    state: '12345',
    nonce: 'nonce',
  };

  const result: SignInWithAppleResponse = await SignInWithApple.authorize(options);
  
  // result.response.identityToken -> to be verified on backend
  // Note: result.response.email & givenName are ONLY provided on first login
  return result.response;
};
Intervention 24h par Julien Kermarec

Vous préférez qu'un Ionic Expert s'en charge ?

Nous prenons en main votre code, appliquons le fix conforme et soumettons l'application sur les Stores.

Dépanner mon App en 24h