Firebase iOS is not opening my app from Safari - ios

I tested the dynamic links Firebase. Configured everything in the project, the implementation did exactly like the Google documentation and created links on the console. When I test in Safari it does not open the application.
Thank you

iOS 9+
Due to the limitations on the iOS platform, Firebase Dynamic Links must rely on Apple's Universal Link system to open the app directly from a link when it is installed. One of the constraints placed on Universal Links is that the app-open behavior is only triggered from a user's click and not by a redirect or copy/paste into Safari.
We have found it very challenging to test Universal Links in the simulator and pretty much always use a real device for this type of thing. Basic steps: install app > SMS link to your test device > click link > observe app open.
iOS 8 and prior
iOS versions prior to 9 handle opening the app from a Dynamic Link through Safari, so if the app is not opening when you copy/paste the link into Safari then some setup is incomplete. Please review your Firebase project for information and confirm that your bundle IDs/custom schemes match on the project page, in your link, and in your app; be sure that the bundle ID is listed in URL Types in your Xcode project setup along with any custom scheme you wish to use.
Other Info
Here is a link to a prior answer that may be helpful as well.
Firebase dynamic link not opening the app iOS

Related

Firebase Universal links disabled and not working (iOS)

I am trying to get Firebase Dynamic links that I have integrated on my ios app to open. Following the youtube tutorial (https://www.youtube.com/watch?v=KLBjAg6HvG0) I have downloaded my app onto my phone from Xcode. When I try to open up the link I automatically get redirected into safari browser and I'm presented with this image.
https://imgur.com/a/e6AJMhj
The tutorial runs threw several things that could be the reason for my link not opening up my app
Make sure to have the correct URL in the Associated Domain Setting which I do. https://imgur.com/a/lJExtjU
Check and make sure that you have the correct App ID prefix entered in the console which is true because Xcode verifies that. https://imgur.com/a/LVytoni
Universal link for the domain was disabled because I opened it in Safari and I have to now long press on the link and open it in the app. Now heres the problem.
In mail app, imessages app, and notes app all dont have an option to "Open in .
Mail (https://imgur.com/a/Pz81IqN), iMessages (https://imgur.com/a/2ykChUM), and Notes app (https://imgur.com/a/lwoejEH).
Even referencing these guides I am unable to solve my problem (Universal Links iOS) (Universal Links not working on iOS10)
Check to make sure the apple-app-association file in created which it is and it shows that #2's image.
I have exhausted all options and googling for answers is now getting me nowhere. I need help on how to get my Universal Link working again.
It helps if applinks is not spelled "applink" in the Info.plist associated domains.

Universal links not working in iOS 12.2 , 12.3

I recently implemented universal links in iOS. It works fine in iOS version 12.1 and below but fails to redirect back to the app in iOS 12.2 and 12.3.
Issue in 12.2 and higher:
The browser doesn’t redirects back to the app but I do get a banner(with an ‘OPEN’ button) in the browser to open the content in the app.
Even when I copy the link in Notes and long press it, it shows me the option to open the link in my app.
I read in some article that there is a possibility that universal links get disabled and by choosing the option to ‘Open in {myApp}’ re-enables it. But this is not the case.
Despite trying the above method, universal links still doesn’t works the way it should.
Pre-Checks:
AASA link is verified through Branch.io validator
Applink is registered in entitlements.plist file
Proper handling of redirected url is performed (Note that I do get a banner in the browser to open the url in my app and upon clicking
on it, the app functions as it needs to)
Is there any change from 12.2 that I am missing?
I went through the release notes and was unable to find anything about universal links.
Any help is appreciated.

Universal link doesn't open the app on iOS

I have an app with MagicLink authentication implemented using universal links. The app and the server are configured to handle universal links following Apple’s documentation (https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
The link successfully launches the app from Apple Mail + Safari. However when I try to open it from GoogleMail + Chrome, it redirect to the AppStore.
It is important to notice that the app isn’t on the AppStore yet and I’m trying to sort out the issue before publishing it.
I can reproduce the issue on the iPhone 6s with iOS 10
This is a known issue with a number of apps. Universal Links do not work in many situations, with the Gmail app being one of them. See a more detailed list here.
To work around this limitation, your Universal Link URL needs to lead to a page with a button/link on it the user can activate. At Branch.io, we offer a Deepviews feature for this purpose. You'll need to build something similar.

Firebase dynamic link not opening the app iOS

I have developed & installed an iOS app locally on my device.
And have set custom scheme in the info.plist as mydlink
Set associated domains as weel: applinks:<myapp>.app.goo.gl
Created dynamic link on firebase as:
https://<myapp>.app.goo.gl/?link=http://<mysite.com>/&ibi=<app bundle id>&ius=mydlink&ifl=https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id%3D<app store id>%26mt%3D8&pt=<app store id>
When I open or click on dynamic link, it opens app page in the "App Store" app and not opening app itself though its installed.
What am I missing here?
sometimes we make a mistake in Associated Domains entitlements. There have to be no spaces
applinks:mydomain.page.link
If you are on iOS 9, universal links will be used. Universal links don't work in a lot of cases, like:
If you use a simulator
If you try to open the link directly in safari on a device (typing it into the address field in the browser)
I spent a lot of time trying this and could never get it to work on a simulator in a reliable way. What I end up doing is emailing the link to me and opening it from Inbox. Then it works every time!
I had an issue using iOS 14, running on device in debug mode.
Link has always redirected me to the AppStore app not to my app.
The solution was to enable "Associated Domains Development" on iPhone Settings>Developer>Associated Domains Development
(found it here: https://stackoverflow.com/a/63939770/6689321 ).
I'm sorry for the late reply - I hope your issue has been resolved and that this is helpful to others who may be experiencing the same problem.
There could actually be one or more issues here for iOS 9+; Dynamic Links relies on Apple's Universal Links to open the app on iOS 9+ and these suggestions are aimed at resolving issues with Universal Links and Firebase and have nothing to do with the SDK directly.
Verify that the assoc file is correct at https://app_id.app.goo.gl/apple-app-site-association - it should look similar to https://maps.app.goo.gl/apple-app-site-association but with only one element in "details."
As pointed out by another answer, verify that your team ID is properly set in the Firebase console.
If you've long-pressed the link and then clicked "Open in Safari" or you have clicked the "goo.gl>" button on the status bar of your app after the app opens via a Universal Link, then iOS defaults to opening Universal Links in Safari. This can be fixed by pulling down on the paged opened in Safari and clicking "Open in App" (or similar) on the smart banner.
The "ibi" parameter is not involved in opening the app in a post-install click on iOS 9+, but is in prior versions when the "ius" param is not set.
Regarding iOS 8, can you try running the app and then clicking a link after the app is installed? On versions prior to iOS 9, you can test by copy/pasting the link into safari.
https://firebase.google.com/docs/dynamic-links/ios
Just in case there is still someone out there having this issue, please note the following
Dynamic links now opens on simulator, please copy your link and paste on safari in your emulator.
Chrome and safari opens dynamic differently, safari uses only universal linking while chrome uses both url scheme and universal linking to open dynamic link. Ultimately you should try to get dynamic linking opening via universal link in your app.
If your dynamic link routes to App Store instead of opening your app. there is an issue with your universal link. You can temporarily test using chrome.
To set up opening dynamic link via universal link, please check the following
Ensure your Team id is correctly set In firebase console, get your team id from your membership detail in https://developer.apple.com
Ensure your domain is listed in your associated domain as shown below, no space between the domain
Ensure Associated domain is turned on in your apple developer account
if you are using a custom domain, ensure you add it to the info.plist as shown below.
I make a mistake that not setup Associated Domains for DEBUG, so make sure you setup Associated Domains all both DEBUG & RELEASE
I experienced same problem. Interestingly if you open the dynamic link in Chrome, app starts directly and successfully. But in Safari always it tries to open AppStore although the app is installed. I have no idea why Safari doesn't work in this case.
If none of the above workarounds work for you, please check if you have added activitycontinuation in associated domains or not.
Firebase dynamic links were not working for us (on iOS9 where they use universal links) due to a problem in Firebase's assumptions during setup. Here's how we fixed the problem on our app:
Firebase asks for your "Team ID" when adding your iOS app to Firebase Console Project Settings, and it assumes that your unique app ID will be in the format TeamID.com.foo.bar
However, in our case, that was NOT our unique app ID. When I looked at our provisioning profile (on developer.apple.com I found our provisioning profile and clicked "edit"), I saw that our unique app ID was actually SomethingElse.com.foo.bar
I had to go into Firebase Console and enter that "SomethingElse" in the spot where it asked for Team ID, even though that was NOT our team ID. Once I made that change, Firebase Dynamic Links started working correctly.
It appears Firebase is making an assumption that your unique app ID will always start with your Team ID, which is apparently not always the case.
Note that changing your Team ID can take a significant amount of time to take effect. You can see that the change has happened by checking the appropriate link for your app_id (https://app_id.app.goo.gl/apple-app-site-association).
After integrating Firebase Dynamic links, the sample link started working immediately on a device with iOS 8. For iOS 9 devices Universal links mechanism is used, as mentioned by other answers. This means Apple needs to update the entitlement data used to verify deep link dual authentication. This may take 48 hours, according to Apple's App Search API Validation Tool.
There are more Universal links troubleshooting tips here.
Experienced the same problem.
The solution for me was to use the
Identifiers -> App IDs -> 'my.app.ID' -> Prefix
You can find it on: https://developer.apple.com/account/ios/identifier/bundle
Instead of the 'DevelopmentTeam' number from the .pbxproj which I used and add it to the Team ID for my iOS app in the Firebase console.
And don't forget to download and add a new .plist to the project.
i had same issue with latest flutter sdk and firebase dynamic links plugin.
Tried all solutions the only fix was to manually insert com.apple.developer.associated-domains key to ios/Runner/Running.entitlements file
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:abc.page.link</string>
</array>
I have great news.
I always hear that it's IMPOSSIBLE to test a dynamic link on simulator.
But now WE CAN test firebase dynamic link on simulator
https://stackoverflow.com/a/56385506/6273003
When link is open in safari, It shows a "open (project name)"button. If this button is pressed for 2-3 second, It asks for opening that into different apps for first time.It also shows your app name. If you select your app, It opens your app. After doing that if you again open this link and press button in safari, it always work fine.
This fixed the problem for me.
After completing the setup in Firebase and in the Xcode project.
Add below code inside SceneDelegate instead AppDelegate.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
if let incomingURL = userActivity.webpageURL {
print("Incoming URL is \(incomingURL)")
let linkHandled = DynamicLinks.dynamicLinks().handleUniversalLink(incomingURL) { (dynamicLink, error) in
guard error == nil else{
print("Found an error! \(error!.localizedDescription)")
return
}
if let dynamicLink = dynamicLink {
self.handleIncomingDynamicLink(dynamicLink)
}
}
}
Set on your Xcode project the correct form to declare Associated Domain, you must to include applinks:
Make sure you have a Team Id set in the firebase console for you app. (you will then need to download and import the .plist file).
This fixed the problem for me.
We had a similar problem. The issue in our case was that the software that generated the emails with the links generated a new link that had a 304-redirect to our deep link. This did not work in Safari (but in Chrome).
Check that your deep link is actually the first link opened when you click the link in the email.
i had same case and it fixed with after defined ios app on deeplink url;
Dynamic Links -> choose your link -> Edit
make sure that you have defined ios app;
I had the problem, that the AASA file was different at the locations
[domain]/.well-known/apple-app-site-association
[domain]/apple-app-site-association
The validator from branch always checks the file on the non well known path. It was confusing because it always said it was all fine even though is was not.
For Firebase, check your hosting and search in the public dir for a .well-known folder. In my case, I could just delete it, run firebase deploy --only hosting and let Firebase generate all AASA files for me.
https://branch.io/resources/aasa-validator/
If you are sure all your dynamic links config in xcode is correct, link is good, but it still opens Appstore you can try this trick:
Copy the link and paste it into the notes app
Long press on the link in notes to see context menu
If you see button "Open in YourAppName" - try pressing it.
please check associated domains as well: applinks:.app.goo.gl is correct or not? and Dynamic link is easily work on iOS Simulater , I don't get any issues.

Link to App Store app developer page with iOS 6?

Is there a way, in iOS 6, to link from an app to a specific developer's page on the App Store app? By that I mean a list showing all the apps by the developer.
There are various ways to link to the store (I am using the Appmosys as the example here) that produce various results:
http://itunes.apple.com/us/artist/appmosys/id331687329 - The link copied from desktop iTunes, opens up the iTunes app on an iOS 6 device, with the developer's page. If you tap on one of their apps, it goes to that app on the App Store app.
http://itunes.com/apps/appmosys - Opens the iTunes app (via Safari) but presents this error message: "Cannot connect to iTunes store".
itms://itunes.com/apps/appmosys - Goes straight to the iTunes app, but same error as above.
itms-apps://itunes.com/apps/appmosys - Opens the App Store app, but also presents the same error (screenshot here: https://dl.dropbox.com/u/6920023/iphone-screenshot.PNG ).
Is there actually a way to do this in iOS 6?
Bonus points if you can answer the question and know if the link you provide also works with the affiliate program, http://www.apple.com/itunes/affiliates/. I've already looked at the Link Maker on this page, http://www.apple.com/itunes/link/, but can only produce the standard iTunes link.
Part B / even more bonus points
You can link straight to the Reviews tab in the App Store app for an app, but can you also now link straight to the new Related tab?
i have a solution for iOS 5:
itms-apps://itunes.com/apps/appmosys/id331687329
and one for iOS 6:
itms-apps://itunes.apple.com/artist/appmosys/id331687329
if you use itms-apps:// URLs instead of http:// it will open the app store app on the device, which is less confusing to the user, then going through safari.
Unfortunately i didn't found any single URL that works on iOS 5 and iOS 6. So the Apple Q&A Documentation is not valid anymore for iOS 6 :-(
UPDATE: i just realized that my iOS 5 solution works also on iOS 6 on the iPad, but not on the iPhone with iOS 6. it's getting weirder and weirder....
UPDATE 2:
apple just annonced the appstore.com urls so now you can link to Electronic Arts Developer Page with http://appstore.com/ElectronicArts
i just tested it and it works for iPad from iOS 5.1 to 6.0 and iPhone from 4.3 to 6.0
so now the Apple Q&A Documentation is valid!
I have a universal app and I needed to open up my developer page, and display the correct apps depending whether the user is using an iPhone, iPod or iPad. The only way I could get this to work correctly was by using the iTunes link maker http://itunes.apple.com/linkmaker/ results but replaced https: with itms-apps:
The link like http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=426623392
will be work on any iOS devices and any browsers in Internet also.
The customer will be NOT confused because it is standard link of Apple and developers using it.
Change just your id. So, it will be http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewArtist?id=XXXXXXXX where XXXXXXXX is your developer id.
This link you can find also in iTunes App on your desktop by copy the link from button "More Apps by YYYYYYY" on page of any of yours App. There YYYYYYY is your developer name. Like on this page https://itunes.apple.com/be/app/visual-html-editor-eye-lite/id472624198?mt=8
If you prefer to have a CUSTOMIZED "MORE APPS BY US" page inside your app (not exit to AppStore or Safari), then have a look at what I created here (there is downloadable working project):
http://xcodenoobies.blogspot.com/2014/06/how-to-create-dynamic-more-apps-page.html
The beauty of this is the data is retrieved from iTunes AppStore everytime you open the page in your app, and that you can customize it however you like.
Cheers.
http://itunes.apple.com/artist/id331687329.
I get to this link by using iTunes on Mac. Search for the company name, click on any app that is made by the company, look for "More iPhone Apps by XXXXX", click on it, then you'll see all apps by this company, right click on the company name and copy link, and you'll get this link. This link will work with iOS 6.
I have no problems mit links created with http://itunes.apple.com/linkmaker/
It generates only https links.

Resources