Universal Links Not Working on iOS 18 Due to App Re-signing

Hello, we are currently encountering a similar issue. We need to inject our capabilities into a third-party app by re-signing it (not a full re-signing process—just requiring the provisioning profile and certificate to match). However, this seems to affect the functionality of universal links. We've found that this issue only occurs on iOS 18.

We noticed that when re-signing the app, the entitlements related to associated domains are changed to a wildcard:

[Key] com.apple.developer.associated-domains
[Value]
[Array]
[String] *

However, this doesn’t cause any issues on iOS 17.

Through further testing, we discovered that in order for universal links to work properly, we need to restore the original value of com.apple.developer.associated-domains and use a provisioning profile that matches the app's bundle ID. This means our previous re-signing approach using a certificate and provisioning profile from another bundle will no longer work.

We’d like to ask: is this a new restriction introduced in iOS 18? If we manually restore the original com.apple.developer.associated-domains entitlement and use a provisioning profile that matches the app’s bundle ID, will universal links function correctly going forward?

Thank you for sharing your post. It appears that you are encountering difficulties related to universal links and the modification of an application’s signing attributes. If the bundle identifier has undergone a change, it is necessary to incorporate that information into the AASA file.

Could you kindly provide me with the following details:

  • The updated bundle ID
  • The original bundle ID
  • A link to the AASA file

Additionally, I would appreciate it if you could share the sysdiagnose from the device that is experiencing the issue. Within the sysdiagnose, there exists a file named swcutil_show.txt that contains a log of the AASA registration or an error message.

You mentioned that the issue is resolved on iOS 17 but not on iOS 18. However, I have not observed any changes in the system. I am curious if the iOS 17 application is the original application with the old bundle ID, while the iOS 18 application is the new application with the updated bundle ID. Both applications adhere to the rule that entitlements must match the provisioning profile and bundle ID, and the AASA file must be downloaded onto the device.

In summary, yes, manually restoring the original entitlement and matching the provisioning profile to the bundle ID should resolve the issue on iOS 18. Always ensure your development and testing processes account for these nuances in app signing and entitlements.

I would also recommend to follow the troubleshooting guide for Universal Links: https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links

Albert Pascual
  Worldwide Developer Relations.

Universal Links Not Working on iOS 18 Due to App Re-signing
 
 
Q