How debug Universal links

[New problem]

The Previous problem has been solved (I don't know why but after a weekend, everthing was working as expected locally).


As everything was working as expected locally, I was pretty confident and I deployed the new app with Universal Links to the store.

But as I tried the app installed from the store. The Universal Links was not working any more.


I have:

- working UniversalLink on device where I installed manually the app;

- NOT working on app installed from the store;

- NOT working on app installed from testFlight;


FYI, while watching apache2 logs on the associated WebApp for the file 'apple-app-site-association', I get :

XX.XX.XX.XX - - [29/Aug/2018:14:39:10 +0000] "GET /.well-known/apple-app-site-association HTTP/1.1" 200 5495 "-" "swcd (unknown version) CFNetwork/811.5.4 Darwin/16.7.0"

But just for mannually installed app. For apps from appStore or testFlight, nothing happens.


Can someone help, I don't understand why it works locally and not from store (nor testFlight).


[Previous Problem]

I use the cordova plugin "ionic-plugin-deeplinks" (to my knowledge also works with a plain cordova app).


On Android, links when clicked let users choice between chrome and my application. => I suppose that app links works => As I'm able to access window.IonicDeeplink and redirect the user to the right page.


I'm not able to have the same behavior on iOS, when I click a link I always get the app open in Safari.

How can I find clue on issues ?


More context:

  • apple-app-site-association
    is got with a HTTP 200 (over https only), it's located in
    /.well-known/apple-app-site-association
    :
    • I checked TeamID and BundleID 5 times (at least);
    • with the branch.io validator i get all validations green:
      • Your domain is valid (valid DNS).
      • Your file is served over HTTPS.
      • Your server does not return error status codes greater than 400.
      • Your file's 'content-type' header was found 🙂
      • Your JSON is validated.
    • with the apple validator, I got : "Action required Could not extract required information for Universal Links. Learn how to implement the recommended Universal Links. Error no apps with domain entitlements The entitlement data used to verify deep link dual authentication is from the current released version of your app. This data may take 48 hours to update." I don't understand how solving the problem and if the 48h delay is relevant?
    • when monitoring server's log while installing the app with xCode I see a request get a HTTP 200 on
      apple-app-site-association
  • while installing the app with xCode I got no logs refering to swcd in xCode (I read here that I should if I had error while installing the app). Is a successful installation silent?
  • I followed https://developer.usebutton.com/guides/merchants/universal-links to setup entitlements, but some things feel odd with it:
    • Unlike the snapshot in the guide, I didn't found any
      *.entitlements
      file in my project. Should I have one? Or the guide is not up-to-date? (I set my setting in xCode though). Is it possible to check if the installed app get entitlements?
    • I did set my domain in xCode like this:
      applinks:mydomain.com
      and the switch is ON. But I never uploaded any thing from my local dev environment to apple services. Should I have? If yes, how ? (it would explane the apple validator error)

My current interogations are highlighted but any explanations on any lack of understanding will be more than welcome!!!

Until then I started a verification for testFlight looking for more info.

Replies

Did you find a solution?

I'm having the same problem.


Thanks

I did not, i'm still investigating.

Someone answer to one of my stackoverflow: https://stackoverflow.com/questions/52080841/universal-links-works-locally-but-not-from-appstore-apps

It gave me some clues but not enough info to solve my problem.

https://forums.developer.apple.com/message/334862


Describes a proper solution, make sure that Entitlements-Release.plist includes the correct entitlements. In my case, only Entitlements-Debug.plist was updated when I edited the associated domains in Xcode.