Skip to content

EXPO SDK 58 · MODULES 2.0

expo-apple-sign-inSign in with Apple for Expo SDK 58

One API and one Apple-style button for iOS, Android and web, with adapters for Supabase, Clerk and Firebase.

Expo Apple Sign InExpo Apple Sign In
iOSAndroidWebExpo SDK 58Modules 2.0

Requires Expo SDK 58. expo-apple-sign-in is built on Expo Modules 2.0, which earlier SDKs do not support, and Expo Go cannot load it, so iOS and Android need a development build.

Sign in with one component ​

Add "expo-apple-sign-in" to the plugins in app.json, build a development client, and render AppleButton. iOS signs in with your App ID; Android and web use the Services ID and redirect URI passed to AppleAuth.configure. The Quick start walks through each step.

App.tsx
tsx
import { useState, type ReactElement } from 'react'
import { Text, View } from 'react-native'
import { AppleAuth, AppleButton } from 'expo-apple-sign-in'

AppleAuth.configure({
  clientId: 'com.example.app.web',
  redirectUri: 'https://app.example.com/auth/callback',
})

export default function App(): ReactElement {
  const [userId, setUserId] = useState<string | null>(null)

  return (
    <View style={{ flex: 1, justifyContent: 'center', gap: 16, padding: 24 }}>
      <AppleButton onSuccess={(credential) => setUserId(credential.user.id)} />
      <Text>{userId ? `Apple user ${userId}` : 'Signed out'}</Text>
    </View>
  )
}

Released under the MIT License.