Dynamic Links crashes with il2cpp on Android due to Proguard stripping
See original GitHub issuePlatforms and SDKs
Unity editor version: 2019.1.11 f1 Firebase Unity SDK version: 6.2.0 Firebase plugins in use (Auth, Database, etc.): Auth, DynamicLinks Additional SDKs you are using (Facebook, AdMob, etc.): GoogleSignIn (Github link) Facebook, AdMob Platform you are using the Unity editor on (Mac, Windows, or Linux): Windows Platform you are targeting (iOS, Android, and/or desktop): Android
Context: I’m using Firebase Dynamic Links Unity SDK to create dynamic referral links in my game. The script I wrote generates a long dynamic link from a DynamicLinkComponents instance.
Code:
DynamicLinkComponents dynamicLink = new DynamicLinkComponents(
new Uri("https://flareupdigital.com/?invitedby=" + referralID),
"https://flareupdigital.page.link"
);
Debug.Log(dynamicLink.LongDynamicLink); // Works fine with "Mono", Throws exception with "il2cpp"
Issue: When compiled with “il2cpp” scripting backend, dynamic link generation fails in device with the following error:
ApplicationException: internal::IsInitialized() at Firebase.DynamicLinks.FirebaseDynamicLinks.GetLongLinkInternal(Firebase.DynamicLinks.DynamicLinkComponentsInternal components)
(Full stack here - log.txt)
Important Notes: The script WORKS FINE in our devices (Google Pixel 2 XL, OnePlus 7, etc.) if compiled with the “Mono” scripting backend in Unity.
Additional References: This issue has been discussed before, but there was no solution posted or the solution does not work:
- Suggested “Force Resolve” in the PlayServiceResolver, but that did not work for me
- No solution posted
Issue Analytics
- State:
- Created 4 years ago
- Reactions:2
- Comments:22 (4 by maintainers)
Top GitHub Comments
Hey guys,
we found a way to resolve the issue! The problem was that proguard stripped out some dynamic link libraries (and also some google internal stuff).
ALL of the following proguard lines are REQUIRED to get it working: -keep,includedescriptorclasses public class com.google.firebase.dynamiclinks* { *; }
-keep class com.google.firebase** { *; } -keep class com.google.firebase.appinvite** { *; } -keep class com.google.firebase.dynamiclinks** { *; } -keep class com.google.firebase.dynamiclinks.FirebaseDynamicLinks** { *; } -keep class com.google.android.gms.internal** { *; } -keep class com.google.android.gms** { *; }
Is this still happening to you guys with the latest SDK, ex.
9.2.0
? Please comment and upvote if this is still relevant to you.I think we might be able to do something for this in the editor tool. That is, adding proguard lines automatically.
I will change this to a FR since we never support this functionality before.