Sign In with Apple
npm i --save nativescript-apple-sign-in

Sign In with Apple, for NativeScript

NPM version Downloads Twitter Follow

Plugin version 2+ is compatible with NativeScript 7+. If you use an older NativeScript version, please use plugin version 1.1.0.


  • Go to the Apple developer website and create a new app identifier with the "Sign In with Apple" Capability enabled. Make sure you sign your app with a provisioning profile using that app identifier.
  • Open your app's App_Resources/iOS folder and add this (or append) to a file named app.entitlements.


tns plugin add nativescript-apple-sign-in

Demo app

If you're stuck or want a quick demo of how this works, check out the demo app:

git clone
cd nativescript-apple-sign-in/src
npm run demo.ios



Sign In with Apple was added in iOS 13, so make sure to call this function before showing a "Sign In with Apple" button in your app. On iOS < 13 and Android this will return false.

import { isSignInWithAppleSupported } from "nativescript-apple-sign-in";

const supported: boolean = isSignInWithAppleSupported();


Now that you know "Sign In with Apple" is supported on this device, you can have the user sign themself in (after they pressed a nice button for instance).

import { signInWithApple, SignInWithAppleAuthorization } from "nativescript-apple-sign-in";

// by default you don't get these details, but if you provide these scopes you will (and the user will get to choose which ones are allowed)
scopes: ["EMAIL", "FULLNAME"]
.then((result: SignInWithAppleAuthorization) => {
console.log("Signed in, credential: " + result.credential);
console.log("Signed in, familyName: " + result.credential.fullName.familyName);
// you can remember the user to check the sign in state later (see '
getSignInWithAppleState' below)
this.user = result.credential.user;
.catch(err => console.log("Error signing in: " + err));


⚠️ This does not seem to work on a simulator!

If you want to know the current Sign In status of your user, you can pass the user (id) you acquired previously.

import { getSignInWithAppleState } from "nativescript-apple-sign-in";

const user: string = "the id you got back from the signInWithApple function";

.then(state => console.log("Sign in state: " + state))
.catch(err => console.log("Error getting sign in state: " + err));