Sign in with Apple | iOS App

MANVENDRA SINGH RATHOR
3 min readDec 17, 2019

Like other third party(such as Facebook or Google) Apple also provide Sign feature for applications.

If you are an iOS app developer, you need to know the Apple login because according to Apple’s new App Store developer guidelines(4.8 Sign in with Apple):

Apps that exclusively use a third-party or social login service (such as Facebook Login, Google Sign-In, Sign in with Twitter, Sign In with LinkedIn, Login with Amazon, or WeChat Login) to set up or authenticate the user’s primary account with the app must also offer Sign in with Apple as an equivalent option.

Step to Implementation

It’s much easier to implement than any other third party at frontend.

1.Configure the Apple account

Allow the ‘Sign In with Apple’ capability on Apple ID and update the profile.

2. Configuration at Xcode

  • Open your Xcode Project.
  • Project Navigator Select Project Select Target.
  • In Project Editor, Click Signing & Capabilities.
  • Add Capability by clicking the + button. Search for Sign In with Apple Capability in Capability Library.
  • Double-click the capability to add.

3. The coding Part

We need to use Authentication Services framework to give users the ability to sign into your services with their Apple ID.

import AuthenticationServices

Add Sign In with Apple Button

Handle Apple sign In Request

Implement ASAuthorization Controller Delegate

You can download the complete file from here, just assign the MSAppleLoginView to your custom view and confirm the delegate.

User Information

Apple is known for its data privacy and it’s also apply on Apple sign In. User has the choice to provide the email id for our application or just login with apple Id.

Case: Share My Email:

You will get the original email id of the user and you can use it for future uses.

Case: Hide My Email:

You will get the encoded email id of the user.

Note: In both the above cases you git get the apple Id like in facebook and other third party application. So you can use the Id for login.

Thank you, may be this post reduce your development time.

Please let me know if you have any queries.

--

--