My dynamic link from Firebase to TestFlight app recently stopped working.
Link:
{firebase_domain.page.link}/?link={my_site}/?type=password-reset&token={jwt}&ibi={apple_bunle_id}&isi={apple_ID}
Open in Firefox focus. All other options - from embed to separate site to click, or gmail, or safari lead to AppStore by apple_ID of app - and it’s empty, because it’s TestFlight.
The problem is that I receive a malformed link from firebase as:
{apple_bunle_id}://google/link?deep_link_id={my_site}%2F%3Ftype%3Dpassword-reset<=DDL_LONG&lid=temp_link_id&utm_medium=dynamic_link&utm_source=firebase
So instead of parsed token I receive nothing.
It was working recently, and works on Android.
Link works on Expo GO if you replace {firebase_domain.page.link} with local expo url. (Universal link probably)
{firebase_domain.page.link}/apple-app-site-association set up properly
{my_site} and {firebase_domain.page.link} added to as associatedDomains without formatting
My iOS config from app.json
"ios": {
"bundleIdentifier": {apple_bunle_id},
"supportsTablet": false,
"googleServicesFile": "./GoogleService-Info.plist",
"buildNumber": "47.9",
"associatedDomains": ["applinks:{my_site}", "applinks:{firebase_domain.page.link}", "applinks:{my_site2}"]
}
My Linking prefixes config:
prefixes: ['{universal_link_name}', Linking.makeUrl({firebase_domain.page.link}), Linking.makeUrl({apple_bunle_id})],
Related
i am trying to set up deeplinks for my ionic 4 ios app, i followed these steps to accomplish the given task:
i uploaded an apple site association file to the web version of the app, i used the actual bundle id and app id prefix from Certificates, Identifiers & Profiles page on apple.com
i verified the website url using https://branch.io/resources/aasa-validator, i got 5/5 green results
i also enabled associated domains in both xcode and on apple.com dev space for the application
inside the code in the app components i used the following code :
const subDeepLinks = this.deeplinks.route({
'/verify/:code': VerifyPage,
'/reset-password/:token': ResetPasswordPage,
}).subscribe((match: any) => {
this.zone.run(() => this.router.navigate([match.$link.path]));
}
});
And here is the list of the deeplink variables from package.json
"ionic-plugin-deeplinks": {
"URL_SCHEME": "<my-domain-name>",
"DEEPLINK_SCHEME": "https",
"DEEPLINK_HOST": "<my-domain-name>"
}
I test this using iPhone simulator, i created a contact with a url that is supposed to lead to the app. But when i click on it i get redirected to the web version of the app.
Any help is appreciated, thanks!
well, it turned out aasa worked. i used my gf's iphone installed the app and checked. so nevermind
I am developing an app in ionic 3 for android and ios platform. For deeplinking, I am using cordova firebase dynamic link plugin.
This is working fine for android platform. But in the ios platform, though it is not throwing any error, it is not working.
My current ionic code.
this.platform.ready()
.then(() => {
return this.firebaseDynamicLinks.onDynamicLink();
}).then((dynamicLink:any) => {
console.log(dynamicLink); // always gives {matchType: "weak", deepLink:""} in ios
}).catch((error: any) => {
console.log(error);
});
The android part working fine. But in ios, the deeplink is always coming as empty.
my manually created dynamic url
https://xxxx.app.goo.gl/?link=<encoded url to mysite>&apn=<android bundle id>&ibi=<ios bundle id>
The provided link is returning HTTP 200 status when opening in the browser.
Testing steps (in ios):
In my iphone (ios9) I have placed this dynamic link in notepad
Then by clicking on the dynamic link the app opens.
In the console, I get
{matchType: "weak", deepLink:""}
Our Ionic 2 mobile app was rejected by apple because of the following reason:
We noticed that the user is taken to Safari to sign in or register for an account, which provides a poor user experience.
Please revise your app to enable users to sign in or register for an account in the app.
The Auth0 Lock provides the user with a sign up button that we configured through the signUpLink option of the Lock. This button opens a registration page in the system browser (Safari) outside of the application, which apparently isn't acceptable for Apple.
Before we upgraded to the latest version of Ionic 2 (Ionic 2 beta 11), the lock would open the link in the InAppBrowser, which is acceptable for Apple. Because of the difference in Ionic 2 version, I imagine this could be an Ionic issue.
I made sure I had the Cordova InAppBrowser plugin installed. It's present in my config.xml as <plugin name="cordova-plugin-inappbrowser" spec="~1.6.1" /> and when I open the .xcproject file in XCode, the plugin is present in the Plugins folder. I have also tested using the InAppBrowser manually using open('https://www.google.com/, '_blank'); which opened the InAppBrowser as it should.
Neither the code regarding the Auth0 Lock, nor the URL to the registration page changed.
Auth0 Lock version: 10.6 (have also tried on 10.11, didn't solve the issue)
Ionic version: 2.1.0
OS: iOS
What could've changed since the Ionic 2 beta 11 that would affect opening the link in the InAppBrowser?
I have come up with a dirty temporary workaround by adding an onclick attribute to the button that opens the link in the window.open function:
this.lock.on('show', () => {
let parent: Element = undefined;
let intervalIndex = 0;
let interval = setInterval(() => {
parent = document.getElementsByClassName('auth0-lock-tabs')[0];
if (parent) {
let item = parent.children.item(1).children.item(0);
item.setAttribute('onclick', `window.open('${AppSettings.registrationUrl}', '_blank'); return false;`);
item.removeAttribute('href');
clearInterval(interval);
}
if (intervalIndex == 20)
clearInterval(interval);
intervalIndex++;
}, 500);
});
With this modification, the sign up link opens in the InAppBrowser and therefore doesn't violate Apple's terms anymore.
Note: this is not a good answer to this problem and is not a guaranteed fix as there is a delay on configuring this onclick attribute on the button.
I'm using the Intel XDK to build my Cordova app. I have an HTML/Javascript app that plays embedded Vimeo videos fine in web browsers.
When I build with Cordova CLI 5.1.1 things work fine as well for the iOS and Android apps.
When I build using Cordova CLI 5.4.1 or Cordova CLI 6.2.0 the Android app continues to play back Vimeo videos without issue, however for the iOS build the playback does not happen. The video area is still taking up the same amount of space, but displays a plain transparent/empty area with nothing visible in front of the background.
I started a topic here on the Vimeo forums without response.
https://vimeo.com/forums/help/topic:283713
In another thread, they responded briefly saying Vimeo does not support inline playback on mobile.
Any ideas on what might be a fix for this?
Okay, this issue was caused by the Whitelist changes to either the Intel XDK, or new versions of Cordova.
In the Intel XDK, under Projects -> Build Settings -> Whitelist > Navigation () I added *.vimeo.com
This caused the XDK file to update, in the following way:
"project": {
"buildConfigurations": {
"iOS": {
"appAccess_": {
"mode": "whitelist",
"network": [
"*"
],
"intents": [],
"navigation": [
"*.vimeo.com"
]
}
}
}
}
After this change, embedded Vimeo videos played fine in iOS app builds using Cordova 6.2.0
Note, the Network Request () entry under Whitelist was set to '*', not sure if that was relevant.
I tried to implement universal links in my application, but it's not working. I uploaded the apple-app-site-association file to my server, i can access it.
(MIME type: application/json)
Here is the content of the apple-app-site-association file:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "L7LAMSGWAK.com.example.app",
"paths": [
"*"
]
} ]
}
}
I turned on the Associated domains in my application, and i added these domains:
applinks:example.com
applinks:demo.example.com
(i uploaded the apple-app-site-association file to the demo.example.com domain too)
In the AppDelegate.m file i wrote this:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler {
NSURL* openedUrl = userActivity.webpageURL;
NSString* urlString = [openedUrl.absoluteString lowercaseString];
return YES;
}
And i set a breakpoint into this method to check if its called, but its never called. If i click on for example this link: https://demo.example.com/asd its just open the safari, but i never see the banner to open the link in my application. I really dont know whats wrong.
Try to delete and reinstall the app. iOS processes associated domain details and attempts to read the apple-app-site-association file at app install. It worth trying it with a real device (instead of the Simulator) and check device logs (Xcode > Window > Devices and select your device). If you see anything like ### Rejecting URL 'https://demo.example.com/apple-app-site-association' for auth method 'NSURLAuthenticationMethodServerTrust': -6754/0xFFFFE59E kAuthenticationErr, then probably your site's certificate is not good enough for iOS or there is some other issue with downloading your association file.
Kind of a late answer, but I had the same problem when I was trying to implement universal links. The solution for me was to test using a real device.
The Apple documentation lists that it's possible to test on a simulator, but with my own experience, it hasn't been possible.
You can test universal links in Simulator or on a device. Source - Apple
I also tried using Branch.io and they state that it's not possible to test using a simulator.
You should also verify that you're using a device that's running iOS >= 9.2