Issue with Firebase dynamic links - ios

We are trying to use dynamic links for deep linking. The link is behaving normally.
However, on click, it is not hitting the userActivity restorationHandler method in the app.
We have followed all the steps mentioned in the document, and the output of diagnostics is below
---- Firebase Dynamic Links diagnostic output start
version 12.1.1, model iPhone Current date 2018-12-13 05:08:44 +0000 Device locale en-IN (raw en_IN), timezone Asia/Kolkata Specified custom URL scheme is dev.XXX.xxx and Info.plist contains such scheme in CFBundleURLTypes key. AppID Prefix: XXXX, Team ID: XXXX, AppId Prefix equal to Team ID: YES performDiagnostic completed successfully! No errors found.
---- Firebase Dynamic Links diagnostic output end --------
Firebase Dynamic Links framework version 3.3.0 System information: OS
iOS, OS
There is a warning in the dynamic link console regarding app ID prefix.
iOS app ‘com.xxx.ios’ lacks App ID Prefix. UniversalLinks is not enabled for the app.
We have cross checked our team ID and it seems to be fine.
Could someone please help us resolve this?

I had the same issue.
So, I asked Firebase team, got answers and fixed the problem.
Here is the solution.
Looks like you’ve encountered an issue while debugging your Firebase
Dynamic Link. Just to share, when adding an iOS app to a Firebase
project, an OAuth client ID is automatically generated for it in it’s
associated Cloud project. Deleting the app doesn't remove its
corresponding client IDs, which can cause issues for the dynamic link.
Here are the steps to change or delete the package name/bundle ID for
the client IDs:
Access the project on the Cloud console
Go to APIs and Services > Credentials
Identify the client ID with the conflicting package name/bundle ID in the name (ex: [Android/iOS] client for
(auto created by Google Service)
Edit the package name/bundle ID and save changes or delete the OAuth client ID

Related

Firebase dynamic link always goes to ios app store even if app installed

I have a dynamic link that is working fine on Android however I can't get the App Store redirect behaviour working correctly on iOS.
If I set up the dynamic link to go to a url (not the app store) if the app is not installed it works as expected and opens the app. This is the dynamic link:
https://go.xxxxx.app/?link=https://member.xxxxx.app&apn=app.xxxxx.xxxxx&isi=1573527302&ibi=app.xxxxx.xxxxx&ifl=https://member.xxxxx.app&efr=1
However if I set it to go to the app store if the app is not installed it ALWAYS goes to the app store, even if the app is installed.
https://go.xxxxx.app/?link=https://member.xxxxx.app&apn=app.xxxxx.xxxxx&isi=1573527302&ibi=app.xxxxx.xxxxx&efr=1
I am obviously doing something wrong or misunderstand the relationship between deep links and dynamic links. "go" is my dynamic link subdomain and "member" is my deep link subdomain.
I realise there are several other questions on this but none of the answers helped me.
Other info
I am using a physical iPhone 8 with iOS 15.4.1
This is my deeplink which works fine if I click the url on my device:
https://member.xxxxx.app
I have an app association file set up here:
https://member.xxxxx.app/.well-known/apple-app-site-association
I also set it here as I wasn't sure whether to set it up for the dynamic link as well:
https://go.xxxxx.app/.well-known/apple-app-site-association
I have the following Associated Domain set up in Xcode:
applinks:member.xxxxx.app
Note that I have not added the associated domain applinks:go.xxxxx.app as this just seemed to make the dynamic link be treated like a deeplink.
I have the capability associated domains turned on in my Apple Developer identifier.
My app is published to the app store but not the latest version of the app with the associated domain member.xxxxx.app.
I have added my app and team id to Firebase on the ios app.
I have "Associated Domains Development" turned on in the developer settings of my iPhone.
I added FirebaseDynamicLinksCustomDomains in my info.plist as mentioned here:
https://firebase.google.com/docs/dynamic-links/custom-domains#set_up_a_custom_domain_in_the
It appears I needed to add applinks:go.xxxxx.app to the Associated domains as well. I can't test from the App Store if the link parameter works I guess I will have to wait until I release to the store.
So the dynamic link is also a deep link that contains another deep link.
Kind of confusing. If anyone can add some more info or explanation that would be great.
I will leave the question here for now as it may help people.
I have the following Associated Domain set up in Xcode: applinks:member.xxxxx.app Note that I have not added the associated domain applinks:go.xxxxx.app as this just seemed to make the dynamic link be treated like a deeplink.
Edit:
To get the dynamic link working in iOS see my answer here:
Firebase short dynamic link not working in iOS (being treated as a deeplink)

How to get a Tracking_ID in Google Analytics for iOS apps for Google Tag Manager usage?

I've set up my account in Google Analytics, Google Tag Manager and have already installed firebase/analytics and GoogleTagManager to my project...
The problem is when I go the admin section and click on the default property created for my app I have no Tracking_ID on property settings menu,
the property is set as app + web I've tried to set a new property as App it then gives me only a .plist and no Tracking_ID for managing the events on Google Tag Manager...
Is google tag manager a tool meant to be used only for web now?
Because I installed it on iOS but it seems GA doesn't provide Tracking_ID for mobile tracking and without Tracking_ID I just can't use GTM...
Any help on this matter would be highly appreciated,
Thank you all in advance)
GA App properties were sunsetted and are now app+web properties.
In GA for the Property you created, you also need to add a data stream. App+Web Properties use a Measurement ID, not a Tracking ID.
When you add an app data stream, Analytics creates a corresponding
Firebase project and app data stream, and automatically links the
Firebase project to your property if your project and property are not
already linked. Currently, you cannot link to an existing Firebase
project from Analytics.
Enter the iOS bundle ID or Android package name, the app name, and for
iOS, the App Store ID, then click Register app.
Analytics will progress through the steps of creating a Google Cloud
project, a Firebase project, linking the Firebase project to
Analytics, and creating the app stream. Click Next.
Follow the instructions to download the config file for your app. Click Next.
Follow the instructions to add the Firebase SDK to your app. Click Next.
Run your app to verify installation of the SDK and that the app is communicating with Google servers. Click Finish.
Alternatively, click Skip this step if you want to complete app setup
at a later time. Click Next.
Ref: https://support.google.com/analytics/answer/9304153
GTM also has two new tags in it - GA App+Web Configuration tag & GA App+Web Event.

Using Firebase Dynamic Links for dev bundle id on iOS

For my iOS app, the dev project has a different bundle id than the prod app.
Because the dev app isn't published, and therefore has no Store ID, the Dynamic Links SDK returns an error:
Your project does not own Dynamic Links domain
Is there any way to use test the Firebase Dynamic Links SDK with my dev bundle ID?
You have to enable the Dynamic Link first through Firebase Console for you to create Dynamic Links programmatically. See this link for more info.

iOS IDFA: Firebase and Google Adwords Universal App Campaign Setup

I am doing a UAC to promote my iOS app. Read through Google's documentation and still can't really understand how/when to use IDFA.
What I have done:
- Added Firebase to my pod and did basic setup, so first_open events are
tracked
- Linked Firebase to Adwords
- Setup UAC to count first_open as conversion
And my question is, what additional setup is required?
- Do I need IDFA enabled to have Adwords recognize first_open events properly?
- So I shall install the GoogleIDFASupport pod?
- Then I use advertisingIdentifier of the ASIdentifierManager class to get the IDFA string? Then what? How do I get Adwords and Firebase to know a first_open is associated with a particular IDFA?
If IDFA is not needed, how does Google know if a first_open event is a new installation resulting from UAC, instead of an existing user upgrading or reinstalling the app directly from App Store?
Thanks for all the help, first day into this and it's all very confusing.
The steps are:
Add Firebase to pod, launch in simulator, check in the Firebase
dashboard that first_open event is showing
Link Firebase to Adwords (has to be under same google account)
Setup UAC to count first_open as conversion.
[important] Make sure you have app id (123456789) added in in Firebase project settings.
Done
I was having this same issue.
I found this thread to be very informative and will possibly help some... but not me:
https://support.google.com/google-ads/thread/13548280?hl=en
It was an incomplete app profile in the Firebase settings.
The gear next to "Project Overview" > General > Your apps > iOS apps
I was missing App Store ID (in your apps store URL) and Team ID (in your Apple Developer Membership Details).
Once those were filled out I returned to GoogleAds and found that I could now import all my iOS events (Conversions > Plus menu...).

anypic facebook login error

so, i followed the guidelines that is introduced on anypic github page.
1. I put my pplication ID and client key in appdelegate.m
2. I made my app named 'app1'on both facebook and parse.
3. I put my facebook app ID in info.plist
4. i also wrote the URL scheme in info.plist
5. I put my facebook app id and secret key in my parse account .
6.i also followed all the other changes including cloud code, js and etc.
7. I also submitted my anypic's bundle identifier to facebook dashboard.
(which was com.parse.anypic)
However when i run the app on my simulator, whenever i press the facebook button , the safari takes me to a web page saying 'the settings made by the developer is not proper to login(?)' well i'm not sure what this sentence actually means in english because i use different language on my virtual machine. Anyways if anyone knows anything about this problem please give me an answer..
Please check that you have made the Facebook app available to Public in your App Settings page.
Also You need to insert your platform details, for which platform you are developing your app and your development machine's keyhash. Make sure the key which you are using to debug your app is same whose keyhash value you enter on Facebook developer console.

Resources