Sign in with Apple | iOS App
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.