Skip to content

Conversation

@chriscanin
Copy link

@chriscanin chriscanin commented Oct 22, 2025

🔎 Previews:

https://clerk.com/docs/pr/chris-mobile-279-expo-sign-in-with-apple/expo/getting-started/quickstart
https://clerk.com/docs/pr/chris-mobile-279-expo-sign-in-with-apple/expo/guides/configure/auth-strategies/sign-in-with-apple
https://clerk.com/docs/pr/chris-mobile-279-expo-sign-in-with-apple/reference/expo/use-apple-sign-in

What does this solve?

This documentation helps to better explain the process of adding a native apple sign in / sign up button to your expo application in iOS.

What changed?

I have added a created an apple sign in installation guide, and added a hook details page. I have also added these items to the side menu as they are placed in the iOS section, so that the expo documentation matches as closely as possible.

Checklist

  • I have clicked on "Files changed" and performed a thorough self-review
  • All existing checks pass

@chriscanin chriscanin requested a review from a team as a code owner October 22, 2025 16:18
@vercel
Copy link

vercel bot commented Oct 22, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Updated (UTC)
clerk-docs Ready Ready Preview Oct 30, 2025 7:36pm

@mikepitre
Copy link
Contributor

Overall this looks great @chriscanin! I left just a few comments and I'll leave the technical review to the js team and the content review to the docs team 😃 Nice first docs PR! 🚀

@chriscanin
Copy link
Author

Overall this looks great @chriscanin! I left just a few comments and I'll leave the technical review to the js team and the content review to the docs team 😃 Nice first docs PR! 🚀

Hey @mikepitre , did not see any comments here on this repo. Maybe they were not published if it was a review? Let me know!

@mikepitre
Copy link
Contributor

Overall this looks great @chriscanin! I left just a few comments and I'll leave the technical review to the js team and the content review to the docs team 😃 Nice first docs PR! 🚀

Hey @mikepitre , did not see any comments here on this repo. Maybe they were not published if it was a review? Let me know!

you are correct, I never hit submit. They should be there now 🙈

@SarahSoutoul
Copy link
Contributor

SarahSoutoul commented Oct 22, 2025

@chriscanin @mikepitre @alexisintech - have just submitted a docs review. Have a look, and let me know thoughts.

I will also leave some comments about certain things I'm hesitating about before I can approve, and want Alexis to have a second look as well. This is a great addition Chris, thank you 🚀

Comment on lines 226 to 230
## Error handling

The `useAppleSignIn()` hook may throw errors in the following scenarios:

- **User cancellation**: The user cancels the sign-in flow, resulting in an error with code `ERR_REQUEST_CANCELED`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we perhaps want this in the guide itself as well?

@SarahSoutoul SarahSoutoul requested review from a team and alexisintech October 24, 2025 16:04
I like the link to the what is page from apple, very informative!

Co-authored-by: Michael Novotny <manovotny@gmail.com>
@SarahSoutoul
Copy link
Contributor

SarahSoutoul commented Oct 29, 2025

@chriscanin Have just pushed a docs review pt 2 here. Here is what I've done:

  • Replaced the support link for Sign in with Apple with the developer link, to be consistent with rest of docs. Tagging you here @manovotny to be aware of that change since you suggested the linkage in the first place.
  • Moved the Install dependencies step to be after the native applications dashboard setup in the guide. Again, to be consistent with the other iOS guide.
  • Renamed the hook file to be consistent with the new hook name and replaced all the links with the new filename
  • Moved the TutorialHero at the top, as that's the norm for our docs

Hope that makes sense but hit me with any questions/ thoughts if any.

Tagging you @alexisintech for visibility on this too. Approving this but want you to have a final look!

Copy link
Member

@alexisintech alexisintech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is looking great! there are a few questions I have regarding the examples. I'm going to contribute a commit to clean things up, but curious to hear back about these comments!

import { Text, TouchableOpacity, StyleSheet, Alert, Platform } from 'react-native'

export default function SignInPage() {
const { signIn, setActive, isLoaded } = useSignIn()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure how this got added! the useSignIn() hook isn't used

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh good catch. I pulled the example from the quickstart repo, and took out the logic where these are used in the "signInPage", but did not remove the imports or this line.

import { Text, TouchableOpacity, StyleSheet, Alert, Platform } from 'react-native'

export default function SignUpPage() {
const { signUp, setActive, isLoaded } = useSignUp()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same, not sure how this got added, the useSignUp() hook isn't used

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

</Tab>

<Tab>
The following example demonstrates how to implement a reusable component that works on both sign-in and sign-up pages.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it kinda feels like three of the same exact example - I'm going to work up something to consolidate these

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good! I am onboard.

})
```

## Error handling
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i love this section 😸💖

@alexisintech
Copy link
Member

alrighty, i've posted my docs review!

  • defined "transfer flow"
  • swapped "sign-in flow" to "authentication" flow, as the hook handles both sign-in and sign-up flows, not strictly sign-in flows.
  • favoured the "reusable component" example over the sign-in and sign-up page examples. these three examples felt redundant. the best option to me felt like favouring the reusable component as it can be used on either the sign-in or sign-up page, eliminating the need to showcase those pages.
  • moved useSignInWithApple() in the sidenav to be in its place (in alphabetical order)

@alexisintech
Copy link
Member

alexisintech commented Oct 29, 2025

looks like we're getting a warning about the partials, but they are indeed working locally. @NWylynko could you take a look? i think its because the build script wants the full path reference/expo/_partials/** but i used a relative path ./_partials/**

Screenshot 2025-10-29 at 18 03 41

i'm going to mark this PR as blocked for now

Copy link
Contributor

@SarahSoutoul SarahSoutoul Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alexisintech Curious to know why we're adding the partial here rather than in the general _partials folder?

Copy link
Member

@alexisintech alexisintech Oct 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its a relative partial - nick is going to add more info to our CONTRIBUTING doc about them, but we support relative partials now !


## Build your authentication flow

<Include src="../../../reference/expo/_partials/use-sign-in-with-apple-example" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure a relative partial makes sense if its gonna be used here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants