-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firebase dynamic link fails fingerprint match in certain locale/language combinations #233
Comments
Can you share more details? Under what conditions did the dynamic links not work? |
It not work in some devices with setting language vietnamese. |
Can you provide more details as why it didn't work? Did it open the app normally? Or did it open the app but fetching didn't work? Please provide some debug logs to help us debug better. Thanks |
It is debug logs
|
Step by step
|
Thanks for the helpful details! |
It doesn't look like this is a known issue yet, I'll file a new one. To clarify, this issue only exists when the phone's language setting is set to Vietnamese, and only on certain devices? |
I do not think that the language problems. I check in 10 devices then 4 devices receive dynamic link "jp.minst.MinOP://google/link/?dismiss=1&is_weak_match=1" , in which have device phone's language setting is set to Vietnamese and English. Link my app expected to receive: jp.minst.minop://google/link/?utm_campaign=tes&deep_link_id=http%3A%2F%2Fgoogle%2Ecom%3Futm%5Fsource%3D3333&utm_medium=dynamic%5Flink&utm_source=3333 Step by step
Why are the steps 3 and 5 different? In step 5 I using function
In step 3 I using function
|
@nhuomtv Let me explain what is going on here. Link "MyAppSchema://google/link/?dismiss=1&is_weak_match=1" is expected to be received by your App. This link is "dismiss" link that is used to notify the App that FDL SDK is working properly, FDL SDK tried to fetch pending dynamic link, and FDL SDK did not found pending dynamic link for this App/Device combination. You can understand this link as a "completion handler". This link will be sent to App only after first App launch. This link will not be sent on subsequent launches of the App. To handle this link follow this example code: FIRDynamicLink *dynamicLink =
[[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
if (dynamicLink) {
// we got FDL dynamic link
if (dynamicLink.url) {
[self processWithDynamicLink:url];
} else {
// dynamic link does not have URL, did not found pending (deferred) dynamic link, or another error occurred.
// normally you would ignore this
// some developers will hold App on launch or "Loading..." screen until they got link or
// confirmation that link is not available. Here is the place to dismiss launch screen and get user
// to generic onboarding flow.
}
return YES;
} else {
// we got some other link, for example Facebook login, Google login or other link according to
// functionality of your App. Handle these links separately.
NSLog(@"Unrecognized incoming link: %@", url);
} Sorry for this confusion, I have plans to add better and explicit API for FDL iOS SDK. Another question: do you expect to receive valid dynamic link but did not received any? Let me know and we can figure out this. |
I have a feature that is using this service, and my customer wants to fix this bug. Can you share for me plan to fix this bug? |
Please try these steps to help narrow down the issue:
Let me know how it worked. |
Q1. Switch iPhone language to English. Try tapping on Firebase Dynamic Link (FDL), install App from Xcode, launch App. Do you see the link? I checked in some devices below it is result:
Q2. I checked in Cellular and different WIfi 4 it is same result with step 1. |
I have same issue. iOS11 too, / lan = korean. Is there solution about this ? without downgrade Firebase sdk. |
@bitoshub Does downgrading Firebase SDK helps you resolve this issue? @nhuomtv There should be no dependency between FDL performance and specific iOS version. There may be influence of device language, that's why I asked to switch device locale/language to English to be sure this is not a factor here. Something to keep in mind:
|
I've got the same issue too. (iPhone 7 / iOS10.3.3) (FirebaseDynamicLinks 2.1.0) |
I have same problem. iphone 5s and 6s plus, language is set english. (FirebaseDynamicLinks (2.1.0)) |
Apologies, I inadvertently closed this issue. Re-opening as it's not resolved yet. |
Thank you for your reports. It looks that we have bug related to some locales. We are working on a fix for the issue. |
Hey, I am having the same issue with the link "://google/link/?dismiss=1&is_weak_match=1" on fire base dynamic link iOS sdk, any progress on this issue? |
@AvivElkayam as a temporary solution i use
everything works well in this version |
navigator.language: en-US I have never seen a linked being matched on this device. Tried both wifi and cellular. Always getting the dismiss link. |
@antonholmquist Please try with latest FDL SDK 2.3.1, part of Firebase SDK 4.8.0. We added new matching method "copy unique match" that does not depends on locale. |
Tried it and it still doesn't work. I actually can't seem to get it to match under any circumstances. Changed region, tried wifi+cellular, tried development and production account, tried simulator and device. Won't match. On wifi I'm getting the dismiss link, and on cellular I'm now getting |
@antonholmquist Do you see checkbox on App Preview page as shown on screenshot here https://firebase.google.com/docs/dynamic-links/link-previews ? |
Okay, it works for me now. The last problem I had was due to "Open the deep link in your iOS App" wasn't checked so I wasn't seeing the preview page. The preview page is required for matching to work, right? Thanks a lot for your help. |
The App preview page required for "copy unique match" to work. Fingerprint based match will work without the App preview page. Now that "copy unique match" is publicly shipped, I will look in more details at locale issues with fingerprint based match. |
Okay. The "copy unique match" with app preview always seems to work. I have now tried without the app preview page and it only seems to work when I change my region to US. See my results below. Default Region: Sweden (fingerprinting doesn't work, always getting dismiss link) After changing region to United States: (fingerprinting now seems to work) Diagnostics: |
@antonholmquist Just to confirm that
while
? I have to bring internal UI/WKWebView logic back to FDL SDK to handle this. Maybe this would be best solution going forward. |
@OleksiyA Yes, confirmed. I wonder, is the language and region settings really that significant for fingerprint matching? Wouldn't it be possible to just leave that out of the equation? |
Reason why we trying to account for all factors when calculating fingerprint, is because main factor in fingerprint match is IP address. And there can be quite a bit of devices under the same IP. We use additional factors like screen resolution, iOS version, locale to ensure we got correct match. Copy unique match is different story as we can achieve robust match in privacy aware way. For comparison fingerprint not that robust (as this thread confirms) and fingerprint match not that privacy aware as users have no control over theirs IP address (short of using Tor). Now that we got really good repro case, I will try to get fix in next FDL iOS SDK release. Optimistic estimate is 16 January. |
Thanks for the info. I understand you are using as many factors as possible. I just think that region+locale combination will very often be identical for identical IP's, so it's not worth the tradeoff when matching can fail completely. Thank you for looking into this. |
happened to me in iOS 11.2.1 , downgrade to 4.0.4 and its return to works , try in en and heb. |
Fix being submitted now. Public release expected January 16 in Firebase Dynamic Links SDK version 2.3.2. |
Fixed in Firebase 4.8.1 and FirebaseDynamicLinks 2.3.2 |
Now, I update Firebase and FirebaseDynamicLinks to last version, but still receive ://google/link/?dismiss=1&is_weak_match=1. I tried change region and network. please help me. thanks! |
Step by step
|
@jieatgstdev It seems to be fixed for me now. I noted that the framework SDK zip is still on v4.8.0 though so I had to get v.4.8.1 through CocoaPods. |
@jieatgstdev please add necessary debugging information as mentioned in the above comment as well as your Podfile.lock contents. Otherwise, we cannot help you. |
I can confirm, that it seems to be fixed for me as well |
According to this - "You can bypass the app preview page by specifying the dynamic link parameter efr=1. Note that without the app preview page, Dynamic Links cannot be received as unique matches on iOS.". |
@Michael-Kr Firebase Dynamic links recently shipped "copy unique match". This require AppPreview page to be enabled (efr absent or efr=0). This match 100% guarantees that user who tapped on link is the same user who launching the App. This GitHub issue is about unreliable fingerprint match. This match is quite precise, but this match can't guarantee 100%. If you still having issue after updating Firebase Dynamic Links SDK, please open Firebase bug/support request. |
@paulb777 I have an error when I add firebase dynamic links to my project, My app receive notification through firebase but when I add dynamic links my app doesn't get the notifications and It crash suddenly, I don't know why, the new versions of firebase core and dynamics links fixed this error for iOS 11? (Firebase 4.8.1 and FirebaseDynamicLinks 2.3.2) |
@OleksiyA On clicking the the dynamic link it opens my app and it deep links correctly one time. The second time it gives me the BS dismiss=1 weak=1 link that is unuseful to me. Can I just get the full URL from that so that deep linking will work the 2nd time? I understand that in some instances you would only want to deep link once, like to pick up a deferred link, but it is a DEEP link which I want to work every time I do it. It works totally fine if the app is already open! I want the full link instead of that weak sauce on successive cold launches. Can I get that? Is it stored? Can I match it up? |
Hey all, Please don't add +1 comments without any additional debugging information, especially when there are specifically-outlined information snippets mentioned in previous comments that are required for effectively debugging your issues. If you're continuing to struggle with dynamic links after upgrading to the latest version, please open a new issue with all the appropriate diagnostic information and we'll try to help. |
I tested ios 4.1.0 in 10 devices ios, three device receive dynamic link "MyAppSchema://google/link/?dismiss=1&is_weak_match=1". Please check new release firebase dynamic link service. May 2017 i tested with 10 device above it work normaly. Now three device dynamic link not work.
The text was updated successfully, but these errors were encountered: