React native Branch io deep linking in IOS not working - ios

I have followed the set up doc of branch for react native io i.e. https://help.branch.io/developers-hub/docs/react-native
React native Branch io deep linking is working fine for Android part and For ios part if click the banner from my website it is taking me to appstore and not the app though app is installed in device.
When copy the link getting created when user clicking on the banner and pasting it in notepad and on long press I am getting "open in your app" option and its navigating to app.

Since the 'Open in your app' option is visible on long-pressing the link on Notes app, it means that the universal links are setup fine here.
As per your query in regards to the link being redirected to the AppStore even when the app is installed, occurs when the AASA files are not being fetched by the device. This is a common issue occurring in iOS (https://forums.developer.apple.com/thread/123554) as in when the device fails to fetch the AASA files but this is an intermittent one and can be fixed manually. Your device will also try to fetch the AASA files at certain durations so that might also solve the issue at times.
As for the manual process, would request you to check on the Branch documentation here and follow the necessary steps : https://help.branch.io/developers-hub/docs/ios-troubleshooting#section-validate-if-aasa-file-successfully-downloaded
If the console shows as the AASA files are not getting fetched, please try uninstalling the app, restarting the device, and reinstalling the app. Recreate the method of testing for AASA once more.
PLEASE NOTE : These steps are advisable only if the SDK is integrated fine as per our docs.

Related

My flutter iOS app hasn't been released yet. How can I know my firebase dynamic link works to open Appstore if the app isn't installed yet?

I have set up Firebase deep link that will open the Flutter app if it's installed and will open Google Playstore or iOS Appstore respectively if the app isn't installed.
So far, the dynamic link successfully opens the app page in Google Appstore in its internal testing mode (because it's still in internal testing).
But when I tried to test the deep link on iOS device, it shows a Firebase page that says "Save my place in the app. A link will be copied to continue to this page." From my experience, this is the page Firebase showed when the deep link failed.
When I tapped the button, it indeed shows the Firebase link failed.
My question is, is this indeed about Firebase base deep link failed, or is it because the app is not released yet on iOS Appstore?
I have set Bundle ID, Appstore ID, and Team ID on the Firebase Apple app. The apple-app-site-association is set up properly from Firebase.
{"applinks":{"apps":[],"details":[{"appID":"TEAMID.com.app.bundle","paths":["NOT /_/*","/*"]}]}}
The problem is I cannot publish the app first and then experiment based on that app publish whether the link actually works or not. When the app is published, the link must already work. So I cannot test it beforehand. But I have a feeling the deep link failed, as I think the deep link should open Appstore even though the Appstore will display "Product not found" or similar.
Not sure if you still have this issue. I think for the first screen you missing the isi parameter, the second screen maybe caused by you didn't encode the URL

Universal link do not work on real devices

I'm currently working on implementing universals links into my App, they work perfectly on my simulators whether using command line xcrun simctl openurl booted or by tapping on links from messages
BUT I cannot run them on real devices (3 differents iPhones tested with 3 differents iOS 14.X versions)
App configuration > Signing and Capabilities > Associated Domains are correctly setup as applinks:<domain_name>.
I've already tried to :
uninstall/reinstall the App
clean my build repository
reboot my device
wait 5 minutes after installing the App
use another HTTP protocol for the route https://<domain>/.well-known/apple-app-site-association
tap the link from many apps (messages, discord, notes...)
expose my site with ngrok / localtunnel / apache server (in prod)
turn on/off "Associated Domains development" in Developer settings
I've verified on AASA validators sites like branch.io or appsflyer.com and everything is OK, once I reinstall the App to my iPhone, the aasa file is requested and it returns a 200 OK http response with the correct Content-Type : application/json
I ran out of idea to solve this issue. I really want to make it works before deploying the app on the Appstore even if it is working fine on simulators.
Thanks for your future help
Unfortunately, Universal links are not reliable for everyone, this seems to be an issue where the AASA files are not getting downloaded in the device.
Known Bug
There is a known universal bug for Apple where devices for iOS version 11.x+ , the AASA files do not get fetched and thus causing the Universal Links to fail.
Validate the issue
Normally, the Apple OS looks into retrying to fetch the AASA file at some time interval but the workaround might help for a test condition.
Inside the app, check if the AASA files were downloaded successfully or not. To do this:
Copy the link into your notes app.
Long-press the link till a dropdown appears. If the dropdown shows 'Open link', then Universal Links are not working for that device. If the link shows 'Open in app name', the configuration is working fine.
Backup plan
Also you can implement a fall back deeplink call on your sercerside with the help of user-agent and other stuff
In your apple-app-site-association file check if you are using "appID":".bundleid". If so, try replacing it with "appID":".bundleid" or vice-versa.

How debug Universal links

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." (but some devs said that working app add the same error) what to do with that result?
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 referring 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 that guide 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 with cordova? (my xCode seems to remember my setting though). Is it possible to check that 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 ?
My current interrogations 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.
while installing the app with Xcode I got no logs referring to swcd in xCode
I implemented Universal Links manually, but situation was similar. Particularly I mentioned empty swcd process log while installing the app, and it turned out that most likely iOS didn't even try to download apple-app-site-association file, like if responsible process wasn't run. In my case device restart helped and deep-linking began to work.
Thus I think restarting device is one another step in troubleshooting when you are sure about all your setup.
For anyone trying to debug this in development:
In XCode, ensure you're editing the Debug version of Signing & Capabilities.
To bypass the Apple Universal Links CDN, configure your Debug domains like applinks:?mode=developer -- adding that query string in development is important.
On your iOS Device, go to Settings->Developer->Universal Links and ensure the Associated Domains Development toggle is switched on.
On your iOS Device in Settings->Developer->Universal Links->Diagnostics, enter your Universal Links URL and ensure you get a green checkmark.
After following all of these steps, Universal Links work locally.

Universal Link broken in iOS 11.2

I am using Branch deep links in an app for sharing links to content in the app via social media. Everything was working fine quite a while.
When updating to iOS 11.2 I encountered the following behavior:
1) After the update the Universal Links still worked.
2) I uninstalled the app and reinstalled it.
3) Since then, all links always open the Branch deep view in Safari.
4) Tapping "Open The App", opens the AppStore.
It does not matter in which app I tap on the link (Notes, WhatsApp, Messages, Facebook, ...), it is always the same behavior.
The Universal Link was not bypassed by tapping the "go to link" button in the upper right corner (when app was opened). I tested on three different devices (iPhone 5s, iPhone 6s, iPhone 7). All led to the same result.
I found out that there was a bug in iOS 11 beta 2 which was fixed in the beta 3 (Ios 11.2 beta universal links open my app and safari), but it might have reappeared?!
Anyone having the same issues or a way to fix it?
Sometimes universal links don't work on iOS 11.2 for newly installed apps.
The symptoms are that clicking on a universal link won't open an app that is newly installed on a phone. The universal link takes the user to a web page and is prompted to download the app again.
Through testing here at Branch HQ we've discovered that the Apple App Site Associated Domains file (apple-app-site-association file) isn't always downloaded after the app is installed, either when it's installed from the app store or from Xcode.
Removing the app, restarting the phone, re-installing the app, and waiting a minute or so seems to clear this up. This is a horrible user experience obviously.
We have filed a radar with Apple and will continue to track this issue.
Mitigations
Set $uri_redirect_mode
Setting the $uri_redirect_mode option on links can have Branch try to force the link to open the app, even if it might show an error to the user. You can read about this option here, in the Branch docs.
Here's more info about turning on $uri_redirect_mode in your Branch Journey or Deepview banner, the web snippet that Branch shows the user if the ends up deep linking into a web browser:
Advanced Journey Configuration
Deferred Deep Linking Mitigates This Problem
This issue is mitigated by Branch's deferred deep linking tech: If the user opens the app from their home screen after the universal link is clicked, deferred deep linking still works, and the link content is shown in the app.
As an addition to #clayjones94's Answer, I have been unable to get my iPad 2nd gen (iOS 12.1.1) to recover the ability to use Universal links after switching between release and debug targets.
Yesterday it suddenly started to work, but then after changing build-target, the universal link has again broken.
I've uninstalled, rebooted, installed, rebooted and so on.
I was, however able to test the functionality in a simulator, so for now, I would recommend attempting a fresh simulator to make sure your AASA file is correct on the server.
EDIT: if you have a proxy involved, that may also break the validation between the app and the website

Cannot upload iOS simulator build for Facebook App review

I literally cannot upload iOS simulator build for Facebook App review.
I have an iOS universal (iPhone/iPad) video game that I need to submit to Facebook review in order to get approval for "publish_actions" permission.
I've successfully built the iOS simulator build, compressed it to a ZIP archive and then it simply doesn't get uploaded to the corresponding Facebook web site form.
What I've already tried:
I've tried to upload different versions of my app - one is 216MB
compressed, the other is 360MB. Could it be the size of the archive
that is too big?
I've tried to use different archive programs to make the ZIP
archive.
I've tried to upload it from different browsers (Safari, Chrome)
and platforms (Mac OS X, Windows 7).
No success at all.
I do the following steps:
Click the "provide a version" link
Click the "Use an Uploaded Simulator Build" button
Click the "Choose a File" button
Select the ZIP archive with the app
Then I see a spinning progress bar
And then - nothing happens.
UPDATE:
I've additionally tried the following things as advised:
Created a new empty application. Did a simulator build. And successfully uploaded it. Size of the archive was 23KB
Enabled network state logging in dev tools of Chrome, Safari, Firefox and indeed there's no sign of data transfer when uploading my application archive
UPDATE 2:
I've filed a bug to facebook
They know about this issue.
Most internet connections have much crappier upload speed than download speed. Uploading 200MB would really take a long while. How much did you wait?
Try making an empty new project and uploading a build of it to see if it goes up.
Try checking your network activity while you're waiting to see if you're really uploading anything.
File a bug # developers.facebook.com . Facebook support will help you figure out the issue much faster.
https://developers.facebook.com/bugs/

Resources