My existing iOS app has a legacy App ID prefix which does not match my Team ID.
I am planning on migrating it to my Team ID. I am aware of the potential issues with keychain access groups, however I wanted to double check that there are no issues related to "Sign in with Apple".
My app is currently the "Primary App ID" in the "Sign in with Apple" settings. The full App ID is listed there, including the prefix.
Can someone from the relevant team at Apple confirm that changing the App ID prefix to Team ID has no effect related to "Sign in with Apple"?
Sign in with Apple
RSS for tagDiscuss how to provide users the ability to sign in to your apps and websites using their Apple ID.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I keep getting invalid_client,
here is a test login: https://www.bella-booking.ch/_get_incl/test_apple_login.cfm
Any help appreciated.
NOTE: Everey other error, like wrong reroute or wrong client id, a different error will be sent frpm apple, after I checked all and crosschecked with jwt.io, it keep getting invalid_client.
Any clue?
If the response is correct, the token should be displayed on the page.
Thx
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Hi! I'm trying to add Sign in with Apple to my macOS app. I enabled this capability from the developer portal and created the corresponding certificate & provisioning profile (both of type Developer ID Application.) However, Xcode keeps prompting me that the profile doesn't support Sign in with Apple.
If I enable Automatically manage signing from Xcode, I can build and run the app but not distribute. If I turn it off and use the profile I got, it just keeps showing the errors below and doesn't even let me build.
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Tags:
Provisioning Profiles
Sign in with Apple
Signing Certificates
Our organization operates a web platform that hosts numerous newspaper properties. We recently acquired a new newspaper and are in the process of integrating it into our platform. As part of this transition, we’ve successfully transferred the App and App ID for the acquired newspaper into our Apple Developer portal. However, no Service ID associated with Sign in with Apple was included in the transfer.
Our current implementation uses a single, unified Service ID for all existing newspaper properties. This Service ID facilitates OAuth via a centralized Identity Server. The organization we acquired provided a CSV file containing a list of transport_ids, and based on our understanding, we’re expected to use the Apple endpoint:
https://appleid.apple.com/auth/usermigrationinfo
to initiate a registration process by submitting our Service ID (client_id) along with each transport ID. This step is required before users can sign in, and it should return the existing relay email address.
We have a few key concerns:
Service ID Compatibility
It appears that users cannot be transferred between Service IDs. In our case, there are now two:
a.) Our existing Service ID (used across all current newspaper properties)
b.) A separate Service ID previously associated with the acquired newspaper
3.) Due to architectural constraints, our platform cannot dynamically toggle between multiple Apple Service IDs. All properties authenticate through our unified Identity Server bound to our existing Service ID.
4.) Is it possible to call /usermigrationinfo using our existing Service ID rather than the one originally used by the acquired property?
5.) Relay Email and Apple ID Consistency
6.) We’re seeing conflicting information about whether the Apple relay email address (@privaterelay.appleid.com) and the Apple user ID are preserved during this migration. Some sources suggest that the relay email and Apple ID are tightly coupled to both the Service ID and Team ID.
7.) If we call /usermigrationinfo with our existing Service ID, will the same relay email be returned, or will Apple issue a new one?
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Please provide a descriptive title for your feedback:
Downloading Developer ID provisioning profiles - missing new entitlements
Which area are you seeing an issue with?
App Store Connect
What type of feedback are you reporting?
Incorrect/Unexpected Behavior
Please provide the App name/App ID if possible:
com.onexengineering.themedeck.macos
Please describe the issue and what steps we can take to reproduce it
bug in App Store Connect where downloading Developer ID provisioning profiles are missing the new entitlements
regenerated from scratch -- App Store Connect says entitlements are good, but actual file confirms entitlements are missing
App Store provisioning profiles seem to be unaffected (ignore my incorrect naming of files)
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Tags:
Provisioning Profiles
Developer ID
Entitlements
Hello.
Some of my users are signing in using "Sign in with Apple" and choosing the "Hide My Email" option. As expected, Apple generates a private relay email address. However, emails that we send to these addresses are not being delivered — the users report that they are not receiving anything.
We’ve configured our email sending domains in the Apple Developer portal, and all domains have been successfully verified with SPF records marked as OK.
Our system is sending the emails as usual, and we're not receiving any bounce-back or error messages. Everything looks fine on our end.
Is there something specific we need to configure to ensure emails sent to privaterelay.appleid.com addresses are delivered correctly?
Are there any known limitations or additional requirements for using Apple's private relay service?
Thank you!
Dear Sir or Madam,
Thank you for your continued support. My name is Sato from atmos.
We are currently working with a vendor to implement Apple Sign In as a login method for our app, but we are encountering some issues and would like to contact you about them.
The Apple Sign In functionality itself is almost complete, but during verification, email relay is not permitted by Apple when Apple Sign In is used with a non-public email address, making it impossible to complete email relay verification for users.
We have reviewed the settings in “/account/resources/services/configure,” checked your FAQ, and explored all other possible solutions within our scope, but the situation remains unchanged. Would it be possible for your team to confirm the cause of the email relay not being permitted?
Thank you for your assistance.
atmos Sato
Translated with DeepL.com (free version)
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Hello,
We’ve resumed the migration process after a break. Since my colleague is no longer with us, I had to go through the steps again myself.
As before, we’re trying to migrate "Sign In with Apple" users from tenant TENANT_A with client_id=CLIENT_ID_A to tenant TENANT_B with client_id=CLIENT_ID_B
I followed the procedure described here: [Apple Developer Documentation](https://developer.apple.com/documentation/technotes/tn3159-migrating-sign-in-with-apple-users-for-an-app-transfer – Migrating Sign In with Apple Users, essentially repeating what my coworker previously attempted in coordination with your employee Stephanie.
Here’s a summary of the steps and the issue we’re facing:
STEP 1 - get authcode for TEAM A
curl --location 'https://appleid.apple.com/auth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=client_credentials'
--data-urlencode 'scope=user.migration'
--data-urlencode 'client_id=pl.CLIEND_ID_A'
--data-urlencode 'client_secret=<TEAM_A_SECRET>'
I receive response:
{
"access_token": "<ACCESS_TOKEN_TEAM_A>",
"token_type": "Bearer",
"expires_in": 3600
}
STEP 2 - get authcode for TEAB B
curl --location 'https://appleid.apple.com/auth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=client_credentials'
--data-urlencode 'scope=user.migration'
--data-urlencode 'client_id=CLIENT_ID_B'
--data-urlencode 'client_secret=<TEAB_B_SECRET>'
I receive response:
{
"access_token":"<ACCESS_TOKEN_TEAB_B>",
"token_type": "Bearer",
"expires_in": 3600
}
STEP 3 - get transfer_sub from TEAM A
curl --location 'https://appleid.apple.com/auth/usermigrationinfo'
--header 'Authorization: Bearer <ACCESS_TOKEN_TEAM_A>'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'client_id=CLIENT_ID_A'
--data-urlencode 'client_secret=<TEAM_A_SECRET>'
--data-urlencode 'sub=USER_SUB_FROM_TEAM_A'
--data-urlencode 'target=TENANT_B'
I receive response:
{
"transfer_sub": "USER_SUB_FROM_TEAM_B"
}
STEP 4 - Team B exchanges transfer identifers
curl --location 'https://appleid.apple.com/auth/usermigrationinfo'
--header 'Authorization: Bearer <ACCESS_TOKEN_TEAM_B'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'client_id=CLIENT_ID_B'
--data-urlencode 'client_secret=<TEAM_B_SECRET>'
I receive response:
{
"error": "invalid_request"
}
We’ve created a new client_id under tenant B and want to migrate users there. However, we skipped the step described in Step 3 of the documentation(https://developer.apple.com/documentation/technotes/tn3159-migrating-sign-in-with-apple-users-for-an-app-transfer#3-Team-A-initiates-app-transfer-to-Team-B), which involves initiating an app transfer. The reason is that this client_id is used solely for web authentication, not for a mobile app, so we don’t have an app to transfer.
Based on our analysis and your documentation, it seems this flow only works if the client_id matches across both tenants, which can only be achieved through an app transfer, something we cannot proceed with.
Apple previously insisted that we migrate these users, but as shown above, we’re stuck. Is there any alternative flow available, or can you assist us in completing this migration?
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Hello,
I’m trying to set up Sign In with Apple for my Firebase Authentication integration.
Steps I followed:
Created a Service ID in Apple Developer, e.g. com.example.myapp.signin.
Tried to enable Sign In with Apple and configure the Web Authentication Configuration.
Web Domain: myapp.firebaseapp.com
Return URL: https://myapp.firebaseapp.com/__/auth/handler
When I click Save, I get the following error in the browser console and a blank response page:
Unsupported Request
PATCH to http://developer.apple.com/services-account/v1/bundleIds/XXXXXXXX not supported.
Reference #...
What I have verified so far:
My Apple Developer Program membership is active (paid).
My App ID (e.g. com.example.myapp) exists in Identifiers.
The App ID has Sign In with Apple capability checked.
I need to link the Service ID with this App ID for Firebase web-based auth.
Goal:
Complete setup of Apple as a sign-in provider in Firebase Authentication. To do this, Apple requires me to add the Firebase return URL above, but the Developer Portal prevents saving with the 501 error.
Has anyone else run into this, and is there a workaround (e.g. enabling via Xcode, App Store Connect, or other methods)? Is this a known bug with the Apple Developer Portal?
Here is the screenshot of the error:
And Response part:
Thanks in advance!
Private relay emails are not being delivered, even though we've followed the guidance here,
https://developer.apple.com/help/account/capabilities/configure-private-email-relay-service/
iCloud, gmail etc. get delivered fine but as soon as its a private relay email address they get bounced as unauthorized sender.
We've tried a couple of domains but here I'll document test.x.domain.com
We have registered domains (test.x.domain.com), also the sender communication emails just to be safe (noreply at test.x.domain.com).
Passed SPF Authentication, DKIM Authentication.
ESP account shows as all green checks in mailgun.
Is there any way to track down what the actual rejection reason is?
{
"@timestamp": "2025-08-20T14:30:59.801Z",
"account": {
"id": "6425b45fb2fd1e28f4e0110a"
},
"delivery-status": {
"attempt-no": 1,
"bounce-type": "soft",
"certificate-verified": true,
"code": 550,
"enhanced-code": "5.1.1",
"first-delivery-attempt-seconds": 0.014,
"message": "5.1.1 <bounce+b53c9e.27949-6qj4xaisn4k=privaterelay.appleid.com@test.x.domain.com>: unauthorized sender",
"mx-host": "smtp3.privaterelay.appleid.com",
"session-seconds": 1.7229999999999999,
"tls": true
},
"domain": {
"name": "test.x.domain.com"
},
"envelope": {
"sender": "noreply@test.x.domain.com",
"sending-ip": "111.22.101.215",
"targets": "6qj4xaisn4k@privaterelay.appleid.com",
"transport": "smtp"
},
"event": "failed",
"flags": {
"is-authenticated": true,
"is-delayed-bounce": false,
"is-routed": false,
"is-system-test": false,
"is-test-mode": false
},
"id": "1gtVBeZYQ0yO1SzipVP99Q",
"log-level": "error",
"message": {
"headers": {
"from": "\"Test Mail\" <noreply@test.x.domain.com>",
"message-id": "20250820143058.7cac292cf03993f2@test.x.domain.com",
"subject": "Test Mail",
"to": "6qj4xaisn4k@privaterelay.appleid.com"
},
"size": 22854
},
"primary-dkim": "s1._domainkey.test.x.domain.com",
"reason": "generic",
"recipient": "6qj4xaisn4k@privaterelay.appleid.com",
"recipient-domain": "privaterelay.appleid.com",
"recipient-provider": "Apple",
"severity": "permanent",
"storage": {
"env": "production",
"key": "BAABAgFDX5nmZ7fqxxxxxxZNzEVxPmZ8_YQ",
"region": "europe-west1",
"url": [
"https://storage-europe-west1.api.mailgun.net/v3/domains/test.x.domain.com/messages/BAABAgFDXxxxxxxxxxxxxxNzEVxPmZ8_YQ"
]
},
"user-variables": {}
}
I understand from the recent Apple Developer News that Korean developers are now required to register a URL to receive notifications from the Apple server when creating or modifying a Sign in With Apple Service ID. However, it is not clear whether simply registering the URL is sufficient, or if it is also mandatory to implement the real-time processing of those notifications. I am inquiring whether the processing part is also a mandatory requirement.
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Tags:
Sign in with Apple
Sign in with Apple JS
Hello,
I’m experiencing an issue with email deliverability when sending messages through Apple’s private email relay service.
Our app uses “Sign in with Apple” and sends communication emails to users through relay addresses . Messages are successfully delivered but are consistently being placed in users’ spam or junk folders.
Configuration summary:
Domain: myapp.example
Mail server: OVH SMTP
SPF and DKIM: Active and validated
Domain and sender registered under “Sign in with Apple for Email Communication”
Messages pass SPF and DKIM checks successfully, but emails relayed by Apple’s private service are still being marked as spam.
Could anyone confirm if there are additional steps or configurations required to improve deliverability (e.g., DMARC alignment or specific header requirements)?
Thank you for your help!
Goal
I want to reply to feedback from customers who signed up using a private.relay account.
Problem
I am getting this error when sending an email:
Reporting-MTA: dns; mailfout.stl.internal
X-Postfix-Queue-ID: B87481D0015B
X-Postfix-Sender: rfc822; hello@mydomain.com
Arrival-Date: Fri, 7 Nov 2025 03:37:29 -0500 (EST)
Final-Recipient: rfc822; xxxx@privaterelay.appleid.com
Original-Recipient: rfc822;xxxx@privaterelay.appleid.com
Action: failed
Status: 5.1.1
Remote-MTA: dns; smtp3.privaterelay.appleid.com
Diagnostic-Code: smtp; 550 5.1.1 <hello@mydomain.com>: unauthorized sender
What have I done?
I have configured mydomain.com in the Email Configuration Service inside of apple, as well as the email hello@mydomain.com.
Using https://www.mail-tester.com/, I could confirm that the
- [SPF] Your server 202.12.124.158 is authorized to use hello@mydomain.com
- Your DKIM signature is valid
- Your message passed the DMARC test
My hunch
This app was transferred and the previous owner did not have the email configuration set up.
The emails I am writing messages to signed up at that time.
Questions:
If I rescue the old account and set up the email configuration, would it work?
Is there any other tip I could try to apply?
I've just implemented Sign-In-With-Apple and everything is working perfectly, but my app seems to be in some strange state where users are unable to remove it from the Sign-In-With-Apple section of their settings.
Things I've tried:
-- Deleting from Mac. (It just stays in the list)
-- Deleting from the iPhone (It stays in the list)
-- Deleting from account.apple.com (same issue)
-- I've noticed in the browser inspector tools I receive a 200 on the DELETE request, but the app remains.
-- Multiple users
Also have tried:
-- Revoking the token through the REST API
-- I get an email saying the token has been revoked, but it's still working
-- Same code, different app id (works fine!)
It seems like maybe my app is in some sort of weird state? Has anyone come across this before?
Issue with passport-apple: req.user Returning Undefined Data & Callback URL Issue
I am facing an issue with passport-apple where, after successful authentication, the callback function does not receive the expected user data. Instead, req.user contains undefined values, and there seems to be an issue with the callback URL handling.
Steps to Reproduce
I have configured passport-apple with the following strategy:
passport.use(
new AppleStrategy(
{
clientID: process.env.APPLE_CLIENT_ID,
teamID: process.env.APPLE_TEAM_ID,
keyID: process.env.APPLE_KEY_ID,
privateKeyLocation: path.join(__dirname, 'Auth.p8'),
callbackURL: process.env.APPLE_CALLBACK_URL,
scope: ['name', 'email'],
passReqToCallback: true
},
async (req, accessToken, refreshToken, idToken, profile, done) => {
try {
const decoded = jwt.decode(idToken);
const user = {
id: decoded?.sub || null,
email: decoded?.email || null,
name: profile?.name?.firstName || 'Unknown'
};
const userApp = await authController.handleAppleAuth(user.email, accessToken, refreshToken);
done(null, userApp);
} catch (error) {
return done(error);
}
}
)
);
Observed Behavior
Apple login succeeds, and an existing user is found in the database.
However, req.user contains undefined values after authentication.
The callback URL does not seem to function correctly, leading to potential misrouting or incomplete authentication flow.
Expected Behavior
req.user should contain the authenticated user's ID, email, and name.
The callback URL should properly handle the authentication response.
Actual Behavior
req.user contains undefined values instead of valid user data, and the callback URL handling seems to be incorrect.
Log Output:
{
id: '001412.13cccc5062074c35833683f6f0bcf5f6.1212',
email: 'xyz@somemail.com',
name: 'Unknown'
} user
checking redirectionn [Function: next]
📍 Processing Apple callback
📍 Authentication successful for user: { id: undefined, email: undefined }
{
id: undefined,
email: undefined,
firstName: undefined,
lastName: undefined,
subscriptionStatus: undefined
}
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
After the App transfer is initiated, will the replacement of the old and new certificates affect user authorization? (Based on some replies from DTS on the forum [Apple login authorization data is generated in combination with the team ID to which the App currently belongs], it is speculated that after the App transfer, during the period when the certificate configuration of the new team ID is not completed, authorization or authentication may not be performed normally, resulting in users being unable to use the Apple login function normally)
During the 60-day migration period, if the user authorizes or cancels authorization and then authorizes again in the old app, will the authorized data be different? If so, will transfer_sub be included in the authorization operation?
Hi,
My app keeps getting rejected during App Review with the reason that the Sign in with Apple button is unresponsive. However, I have tested it extensively on:
• A real iPad Pro (iPadOS 18.3.2)
• Multiple Xcode simulators
• Including an iPad Air 5th simulator (18.3.1)
In all of these cases, the button works correctly.
The reviewer mentioned they are using an iPad Air 5th running iPadOS 18.3.2, which I cannot find as a simulator in Xcode, nor do I have access to this exact device around me.
I’m using standard SignInWithAppleButton code with no custom wrappers or UI layers on top. Here is the relevant snippet:
GeometryReader { geometry in
ZStack {
Color.black.opacity(0.3)
.ignoresSafeArea()
.onTapGesture {
prompt = ""
showChat = false
}
VStack(alignment: .leading, spacing: 0){
switch purchaseManager.hasAISubscription {
case 1:
HStack{
}
case 2:
HStack{
}
case 3:
HStack{
}
default:
HStack{
}
}
Divider()
ScrollView {
VStack(alignment: .leading, spacing: 8) {
ForEach(filteredChatHistory, id: \.id) { chat in
}
}
Spacer()
}
.frame(maxHeight: geometry.size.height * 0.7)
.defaultScrollAnchor(.bottom)
.padding()
Divider()
HStack(){
if httpManager.isLoggedIn && purchaseManager.hasAISubscription > 0 {
}
}
else if purchaseManager.hasAISubscription == 0{
}
else{
Spacer()
SignInWithAppleButton(.continue){ request in
request.requestedScopes = [.email]
} onCompletion: { result in
switch result {
case .success(let auth):
switch auth.credential {
case let appleCredential as ASAuthorizationAppleIDCredential:
let userID = appleCredential.user
saveToKeychain(userID, for: "com.xing-fu.aireader.apple.userid")
if let identityTokenData = appleCredential.identityToken,
let identityToken = String(data: identityTokenData, encoding: .utf8) {
Task {
//后端认证过,才算登录成功
await httpManager.loginWithApple(identityToken)
}
}
break
default:
break
}
case .failure(let error):
print("error")
}
}
.frame(maxWidth: 350, maxHeight: 40)
.padding()
.cornerRadius(10)
Spacer()
}
}
}
.overlay( // 边框
RoundedRectangle(cornerRadius: 10)
.stroke(Color.g2, lineWidth: 4)
)
.background(Color(UIColor.systemBackground))
.cornerRadius(10) // 圆角
.shadow(color: Color.black.opacity(0.1), radius: 5, x: 0, y: 5)
.frame(width: geometry.size.width * 0.8)
.onDisappear{
httpManager.alertMessage = nil
}
}
}
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
I’ve been running into an issue for over a day when trying to create a Sign in with Apple key. Each time I attempt to download it, I’m redirected to a page that displays an error and provides no further guidance.
I’ve contacted Support and haven’t yet received a reply. I’ve also tried across multiple browsers (Chrome, Safari, Firefox), including incognito modes.
Any ideas on how to resolve this? We’re currently stuck and would appreciate guidance.
I have implemented "Sign in With Apple" in my app , but problem is when user logged in initially or first time and email I can retrieve , name and email but after that when i tried to re login it is giving null value for name and email, why it is happening and what should be done here?
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Dear Apple Support Team,
I hope this message finds you well.
Our tech team is currently working on integrating the Apple Sign-In feature, and we have a specific query where we would appreciate your guidance.
Background Context:
We have several applications across different brands and are aiming to implement a unified sign-up and sign-in experience. Currently, we are utilizing a shared website to enable single sign-in functionality across all these applications.
Our Query:
If we embed the same website in all of these applications and implement the Apple Sign-In within this website—using a dedicated Service ID that is configured with the App Store name and icon—will users consistently see the Apple Sign-In pop-up with the Service ID’s name and icon, regardless of which base application (e.g., App A, App B, etc.) the website is accessed from?
We would like to ensure a seamless and consistent user experience and want to confirm that the branding within the Apple Sign-In prompt will reflect the Service ID’s configuration, rather than that of the hosting app.
Looking forward to your guidance on this matter.