I'm wondering if it's possible to test iOS 6's smart app banners' app-argument URL parameter on dev builds of an iOS app. It appears the Open option in the banner only appears if the application is downloaded from the App Store.
What worked for me was to download my application from the appstore, and then overwrite it using a build from XCode. This worked and allowed me to debug the smart banner feature using my current build. This won't work from the simulator, you need to use a device.
Just to be clear, you must overwrite it. You can't delete the appstore version, and then build from XCode.
As of now, Xcode 8 and iOS 10, I have tried all the methods but Cannot Debug the smart banners URL that is being opened, as it needs the store versions of the application.
I have found a workaround of this, and have tested my application using this.
Apart from the <meta ...> tag I have also added a link button on the page that uses the scheme to open the app.
<!doctype html>
<html>
<head>
<meta name="apple-itunes-app" content="app-id=xxxx,pt=xxxxx,ct=xxxxx,app-argument=myappscheme://www.mymobilesite.com/link/detailpage?query=x">
<title>Banner Debug Sample</title>
</head>
<body>
<p>Visit App Using Scheme.</p>
</body>
</html>
With this link I can debug the Dev builds and works well.
Though this only works when the app has registered a scheme for itself, but just for testing we can register a dummy scheme say appscheme:// and replace http:// scheme with dummy scheme, test it, and then revert links from app scheme:// to http://
The following worked for me using an iOS 6 device, because it didn't work with iOS 8.
I installed the app from the AppStore and then overwrite it with a dev build using Xcode 6.
This is a hassle, but what we did is add some logging messages and submit the build for Apple review marked for manual release. When the app is approved, issue a promo code for the unreleased version. Redeem the promo and that will install the unreleased version of the app. Go to safari and hit your web page with the meta tags to display Smart App Banners. Should launch your app and pass the URL. Then look at the console for your log messages.
Related
I'm using the following meta tag to show a smart banner on the iOS safari browser to open and install the app, copied from apple guide to smartbanners:
<meta name="apple-itunes-app" content="app-id=6444793650">
this works for every app, except ours!
the app id is:6444793650
I guess since the app is fresh, apple's lazy crawlers couldn't find time to crawl it!
I am using iOS 9.3.3 and have the latest version of Facebook installed.
I have my app installed under the Ad Hoc provision. I have tested my URI scheme with plain links in safari and my app opens perfect and deep links how I want.
However when I try a link in the Facebook App it never opens my App, just loads the page in the Facebook webView. I have double checked my meta tags via https://developers.facebook.com/tools/debug/og/object/ I can see all the needed meta tags are there e.g. al:ios:url, al:ios:app_store_id, al:ios:app_name and correct URI scheme supplied.
I have tried setting the web fallback option to false:
<meta property="al:web:should_fallback" content="false" />
Now when I click the link inside the Facebook app I get an install app prompt even though I have the app installed (under Ad Hoc). Which begins to make me think Facebook thinks it's not installed as it's an Ad Hoc install and not from the app store?
If I go to the App Store it also says install, not open etc.
Can we test with Ad Hoc installs? I am going a bit mad with trial and error debugging, but obviously want to check if it should or should not work with an Ad Hoc install before I just chance it and publish to the App Store.
Has anyone had experience with this? Or is something majorly wrong perhaps.
Just to note, I have it fully working with the Android version of my App.
Welcome to the world of Facebook :). You've got it exactly right: Facebook has completely broken their own AppLinks standard on iOS, and there have been multiple open bugs about it for many months. It still works on Android currently, but that's about the only place.
The best workaround currently is to open the webview (as you are doing) and then allow the user to trigger the app deep link from within there. At Branch.io, this is one of the primary usecases for our Deepviews feature.
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
I have added the following meta info in the head portion of my test web page.
<html>
<head>
<meta property="al:ios:url" content="schemeregisteredinapp://hereGoesTheURL" />
<meta property="al:ios:app_store_id" content="12345" />
<meta property="al:ios:app_name" content="Applinks Supporting App" />
</head>
<body>
<p>Opening a link to this page in Facebook iOS app should launch my "Applinks Supporting App".
</p>
</body>
</html>
I have added the custom url scheme schemeRegisteredInApp in my iOS app's info.plist. If I type a url of the format schemeRegisteredInApp://the/rest/of/the/path in iOS Safari browser, it successful launches my app.
But if I tap on a link to the webpage containing above mentioned HTML in Facebook app or Mailbox app (both are supposed to support applinks protocol) on iOS, the page just opens in a web view inside the Facebook app. My iOS app is never launched. I can't figure out what is going wrong. Applinks simply refuses to work as advertised. This is on iOS 8. Is Applinks broken?
Add the following to your website meta data and the Facebook iOS app will open your app directly.
<meta property="al:web:should_fallback" content="false" />
If that doesn't work then you still have other issues with your meta data. Best way to debug is to go to developers.facebook.com/tools/debug/og/object and type in your url and select 'Show existing scrape information'. If there are any errors it won't work. Fix the problems and hit the 'Fetch new scrape information' button. Then kill the Facebook iOS app and relaunch it. Then the AppLink will work as expected next time you press the item in the FB feed.
I tested on iOS 7. Before I updated to the latest Facebook app, I can see a popup at the bottom of the Facebook browser which leads me to my own app. Right after I updated the Facebook app to latest version, the popup doesn't show anymore. Same doesn't work on iOS 8. Maybe a bug in newest Facebook version. Hope to see they fix it or find a workaround.
I just checked the example you provided. For me it correctly shows a popup to install your app, but when installed it doesn't recognise it as being installed.
I inspected your app's plist and it seems that you haven't registered the URLSchema there. That is needed for Applinks to check if the app is installed or not.
Can you test this with a project where you have defined the Appschema in your app's plist?
If you want that link works in optional way when it launches app or open web page if app is not installed you need to add following meta-tag:
<pre>
<meta property="fb:app_id" content="[facebook app id]" />
</pre>
It does matter whether facebook app id exists or not. It will work properly in iOS only if it is exists. However Facebook on Android will open web view first still but allow to launch app from this page.
Following meta tag must be removed:
<pre>
<meta property="al:web:should_fallback" content="..." />
</pre>
I have to test the smart app banners in an application, which is still in development, especially passing some 'app-argument' to this app.
The application exists on iTunes Connect, and his status is of course still "Prepare for Upload".
The banner is on my website's home page. But when I try to reach this page with my iPhone (Safari), the banner shows up, totally empty, and disappears after about 1 second...
Here is the banner code on my website:
<meta content="app-id=myAppId, app-argument=myScheme://123456" name="apple-itunes-app">
Is it possible to test this smart app banners before publishing the applications on the store?
The answer is sadly, no. You must first publish your app before the smart app banner will work.
But you CAN test Universal Links without a published app. You just have to have Apple crawl your website after you set it up.
https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html
As of now, Xcode 8 and iOS 10, I have tried all the methods but Cannot Debug the smart banners URL that is being opened, as it needs the store versions of the application.
I have found a workaround of this, and have tested my application using this.
Apart from the <meta ...> tag I have also added a link button on the page that uses the scheme to open the app.
<!doctype html>
<html>
<head>
<meta name="apple-itunes-app" content="app-id=xxxx,pt=xxxxx,ct=xxxxx,app-argument=myappscheme://www.mymobilesite.com/link/detailpage?query=x">
<title>Banner Debug Sample</title>
</head>
<body>
<p>Visit App Using Scheme.</p>
</body>
</html>
With this link I can debug the Dev builds and works well.
Though this only works when the app has registered a scheme for itself, but just for testing we can register a dummy scheme say appscheme:// and replace http:// scheme with dummy scheme, test it, and then revert links from app scheme:// to http://