Hi!
Instead of using username/password authentication, I wanted to use a magic link to authenticate users of my app to simplify the process.
However, on the app review, it got rejected because of the magic link:
Guideline 2.1 - Performance - App Completeness
Issue Description
The app exhibited one or more bugs that would negatively impact App Store users.
Bug description: The Magic Link failed to open the installed app.
Review device details:
- Device type: iPad Air (5th generation)
- OS version: iPadOS 18.1
Next Steps
Test the app on supported devices to identify and resolve bugs and stability issues before submitting for review.
If the bug cannot be reproduced, try the following:
- For new apps, uninstall all previous versions of the app from a device, then install and follow the steps to reproduce.
- For app updates, install the new version as an update to the previous version, then follow the steps to reproduce.
Resources
- For information about testing apps and preparing them for review, see Testing a Release Build.
- To learn about troubleshooting networking issues, see Networking Overview.
I had no luck to reproduce this. The magic links trigger my application on all my testing devices. I also had external testers using TestFlight and it works for all of them as well.
The only time where I can see it failing is if I archive the IPA and install it on an external service like AWS Device Farm or BrowserStack App Live. But here it is very hard to debug because I think I cannot get the sysdiagnose
file and I don't know if it is even supposed to work in this case because those devices are not associated with my developer account.
I read countless links, tutorials and discussions on this topic but it did not really help. https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links https://developer.apple.com/documentation/xcode/allowing-apps-and-websites-to-link-to-your-content
Here is my set-up:
- I added the
Associated Domains
capability to my app.
There under Domains
I put applinks:subdomain.domain.com
- Under
https://subdomain.domain.com/apple-app-site-association
andhttps://subdomain.domain.com/.well-known/apple-app-site-association
I host this file with JSON content header:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "<TEAM>.<TestAppIdentifier>",
"paths": [
"/magiclink/*",
"/activate/*"
]
},
{
"appID": "<TEAM>.<Identifier>",
"paths": [
"/magiclink/*",
"/activate/*"
]
}
]
}
}
My main entry point of the app has a
.onOpenURL { url in
handleOpenURL(url)
}
on the ContentView()
-
If I go to
https://app-site-association.cdn-apple.com/a/v1/subdomain.domain.com
, I see the file correctly as I specified it above. -
If I go on my development phone to
Settings > Developers > Universal Links > Diagnostics
and I enter one of the "magic links" into the field, it says with a checkmarkOpens Installed Application
. -
https://getuniversal.link/ says my AASA file is valid.
Any suggestion on what I could do to further debug or resolve this is highly appreciated.