FIRApp configure fails w/ "Configure Durable Deep Link fails" - ios

Just started w/ Firebase and the first call of the first app fails -- yeah!
[FIRApp configure] throws an exception: "Configure Durable Deep Link fails". There's a GoogleService-info.plist but affect no entry for deep links. Tried toggling a few of the IS_* fields but no luck.
Is this something to be setup on the Dashboard? Are the Pod/Frameworks in github somewhere?

there's a duplicate question from #mskobe
by messing around w/ the PodFile I narrowed it down to removing:
pod 'Firebase/Invites'
not sure if it's an order or combination of other pods/operations.

I just encountered this error! It probably has something to do with your GoogleServices-info.plist file missing an important entry (probably API_KEY or CLIENT_ID).
You can most likely fix this by just re-downloading the GoogleServices-info.plist file again. Go to the Firebase console, select your project, click the little gear icon, select "Project settings" then for your iOS app, download the plist file again.
Delete the old one from Xcode, drag the new one in, and you should be good to go.

Related

Could not configure Firebase InstanceID

hi I'm trying to include firebase in my app and followed the documentation, when I'm trying to do google sign in, Could not configure Firebase InstanceID error occurs .please advice how to overcome this error
There are two things to check (and hopefully, one will fix it for you):
Make sure your BundleIdentifier is exactly the same in your Firebase project as it is in your Xcode, i.e. com.[yourcompany].[yourappname]
Make sure you got the latest GoogleService-Info.plist file. Go to Firebase Console -> Settings -> Your Application - there will be a blue button to the right that lets you download new configuration file
That solved it for me.
Bug Details
As of version 3.13.0, there appears to be a bug in the Firebase/Core SDK.
I added a symbolic breakpoint at -[FIRInstanceID(FIRApp) configureInstanceIDWithOptions:app:] and stepped though the assembly.
It appears that FIRApp.configure() is ignoring the IS_GCM_ENABLED flag in the GoogleServices-Info.plist and tries to configure GCM regardless of the flag's state. In my case, because my project does not use GCM, the app would crash because there was no GCM_SENDER_ID in the plist.
Workaround
Add a dummy value (i.e. 123456789012) for GCM_SENDER_ID within the GoogleService-Info.plist file. This will allow the application to configure successfully.
You have to add your project which is created on
https://developers.google.com/mobile/add?platform=ios or fire base console into your Firebase dashboard.
Now you can download GoogleService-Info.plist from Firebase and import into your project.
I setup Firebase in code using FIROptions. In my case, I was missing gcmSenderID, fixing it then it works
Firebase DevRel here. This should be an error, unless you enabled gcm, you shouldn't go through instanceid setup. Filed internally.
For now, the workaround is manually changing "IS_GCM_ENABLED" to "NO" in your "GoogleService-Info.plist" file
I was getting this error as I didn't have my GoogleService-Info.plist in my Test folder as well. ( if you are using TDD)
As of the latest Firebase Core 3.16.0 - I seem to need to include it in my main project as well as copying a version into my Test Root.
This also happens when you shift your google SDK integration from one account to another and don't edit the API keys on application side.Make sure when you shift from one google account to another, you re-visit all the SDK guides again like FCM, Google Sign-in etc and make sure you are using new API keys (client_id, URI Scheme) in application.

Switching Firebases in a Swift project

I accidentally added the wrong Firebase (let's call it OLD) to my Swift project, so today I went through the process of adding the correct one (NEW) instead. I deleted the old plist config file and added the new one, but when I run the app, I get an error:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Provided bucket: OLD.appspot.com does not match bucket specified in FIRApp configuration: NEW.appspot.com'
In the GoogleService-Info.plist file, the STORAGE_BUCKET field correctly is NEW.appspot.com, and OLD.appspot.com doesn't show up anywhere. So how can I resolve this?
I have had this problem while dealing with two iOS accounts so I would expect the answer to be similar.
The primary reason is that the old user has been cached to your device. This means that each time you login with the newer one is errors due to expecting the old user which is set up on the previous url. Frustratingly deleting the app, cleaning the app, calling pod update, logging in on the new version and calling logout etc don't seem to have any affect on the problem.
This seems to occur when the user has logged and then a new version with a different url is loaded over the top.
The only way I managed to fix this was to reset the app to its previous settings (put back the OLD firebase url and also the OLD.plist google services file). Load up the app and then logout of the app, this should remove the cached user settings. Now when you load up with the new settings it should not log into the previous user (depending on your auto login app settings) and should allow you to successfully log into the new account.
While doing this remember to download the new .plist file and also make sure the correct bundleID and firebase url are entered.
NOTE: If you are experiencing this problem on the simulator I think you can reset the content and settings. This is found in
Simulator -> Reset Contents and Settings...
Hopefully this helps
I was able to fix this via checking my GoogleService-Info.plist.
If you've used the .plist file multiple times, make sure you've added the right one to your project.
You can always go back to your Firebase console.
Click on the settings icon next to Overview.
Click on Project Settings, choose the app you'd like to download the .plist file for.
Doing this will solve any issue...

Unable to upload build in iTunes when using Google Plus through Pods [duplicate]

After spending some time googling, something tells me that the issue is new.
We had a fully functional project supporting iOS7-8. Of course it was multiple times successfully submitted to AppStore.
We use pods, lots of tracking and monitoring, like GA and Instabug.
Now we decided to submit a version of the app built on Xcode 7 on iOS 9 to TestFlight.
We disabled bitcode, since many pods, like Flurry and other prebuilt libraries does not include it.
The build was successful, after the submission to iTunesConnect we get this:
We had same for GoogleAppIndexing library (in pods too), but we removed it, just to make it work. Now - Instabug. It is going too far, so I am trying to understand what is going on in iOS 9 and what are the changes that made a fully working project to start throwing such errors.
Any thoughts and ideas are welcomed! Please share your experience, and if I missed something, I will gladly share my steps.
I encountered the same problem today with the same exact error message when trying to submit our app (using Xcode 7 beta 5) but instead of the instabug.bundle bit, it was for me TencentOpenApi_IOS_Bundle.bundle.
I solved the problem by finding the named bundle in the project then - just as the error message suggests - edited the Info.plist that is in the bundle by removing the CFBundleExecutable key. The CFBundlePackageType key was already set to BNDL so I didn't touch it.
After these changes I did Product > Clean and then had no problem submitting the app to the App store.
Encountered this with AviarySDK on Xcode 7 GM, while submitting to the App Store.
First I'd check to see whether you're on the latest version of your library - the vendor may have fixed this already. If you are still facing this problem however, as Sleiman describes you need to remove the CFBundleExecutable key from the plist file for the offending library.
Cmd + Shift + O and type "Info.plist", you can then find the appropriate file:
Once editing the plist, you may be seeing descriptive names (instead of the CFBundleExecutable and other keys. I couldn't edit this file in an external editor, so I had to switch to view raw keys/values by right-clicking on the list:
You can now see the CFBundleExecutable key (which has a description of "Executable file") which you can delete.
For AviarySDK I did this twice, once for each Info.plist seen in the above image, and was then able to successfully submit.
I solve this problem as follows:
We have to remove all the "Executable files" of the following packages:
GooglePlus.bundle
GPPCommonSharedResources.bundle
GPPShareboxSharedResources.bundle
Be sure that "Bundle type code" is equal BNDL
Important: Do not edit anything in the info.plist the main project.
Attached screens as they should be his "info.plist" listed above each package.
Here's what worked for me
Apple-Shift-F, search for CFBundleExecutable
Click each one except "PODS" or your main target
Delete it (delete key)
If the build is submitted through Less than(<) Xcode 7.0 then it will be submitted and also
I have solved it by following way for Xcode 7:
Searched for info.plist in the projects Project Navigator as like following image:
Now opened these info.plist files one by one and deleted the BundleExecutable key EXCEPT the target's info.plist
Now cleaned the project and achieved and It is submitted with No issue.
I had the same issue in Google Maps Library i removed CFBundleExecutable key inside GMSCoreResources.bundle (Info.plist) which is SDK's info.plist clean project and upload to appstore.
Happy Programming.
Just check your Build Settings => Enable Bitcode, and set it NO
In my case I just Drag and Drop The SDK In folder include info.plist file which is not in use. That's create the issue for me. So find the unused info.plist file and delete it from the Source code.
One additional note: sometimes if you have additional targets there will be target properties that may also include the key (in the "Info" section), so make sure to check those and remove it from there also. I discovered this with one of the bundles I was trying to include. I deleted the info from the plist, but kept getting the error.
If you're seeing this error from a library installed via CocoaPods, try a pod update <OFFENDING POD NAME>
That solved the problem for me.
I just added word "BNDL" to appropriate place in plist "Bundle creator OS Type code".

Can't download GoogleService-Info.plist file

I'm trying to setup Google Analytics for my new iOS app, when following the instructions here.
It instructs me to click the "Get A Configuration File" button, but that button just sends me to another page that has a spinning, nothing ever happens. I already have a property setup in Analytics for web and a view setup for mobile.
Can anyone share the GoogleService-Info.plist file with me so I can attempt to manually fill in the details of the file and add it to my project?
It happened with me also. If you close everything and follow that link it worked for me next time. You can try to do that. Below is the link of sample plist file, of course I replaced tracking id, bundle id and app id to strings from original values. Hope it helps.
Sample Google Plist file
Generally in iOS
1) Create your project in Firebase console https://console.firebase.google.com
Click add project and follow steps.
2) Now open this link to get GoogleService-Info.plist file
https://developers.google.com/mobile/add
-->Click Get Started
-->Select your project
Ex: CloudFirestoreSwift
--> Now select domain Ex: iOS
-->Now add app bundle id then GoogleService-Info.plist file will be generate, download it and complete the steps if required.
NOTE: Please don't change file name. It's must be GoogleService-Info.plist
If you already generated GoogleService-Info.plist file. Now select your project and go project settings.
--> Go General tab, you can find GoogleService-Info.plist file here download it.
Steps for getting configuration if your first time login to google developer account.
1. Open google developer console.
2. Login to developer console.
3. Create project with valid name.
4. Enable google analytics.
5. Then get the configuration file.
The download link is not always immediately visible and you have to scroll up to get it, I happen to press next before downloading and I missed the opportunity to download the file.
I prefer the automatically generated file as I am lazy (aren't we all)
So, follow these steps
Go to https://developers.google.com/analytics/devguides/collection/ios/v3/
Scroll down to Get a configuration file
When prompted for the app name and bundle Id, just use the drop down menu and you'll find your previously created app details there.
Proceed to the next screen Continue to: Choose and Configure Services
Select your service, note that your previously selected ones will have a green arrow (Analytics in the case below)
Select Generate configuration file
You'll be given an opportunity to download the file again.
Voila!
You need to login on https://console.developers.google.com create your first application, then go back to https://developers.google.com/mobile/add the website will now work correctly.
Installing Ignore X-Frame headers plugin on Chrome made this bug vanish
Same here, I got following invalid json file:
)]}'
{"status":401,"message":"Invalid authuser parameter"}
and that is resolved by clearing cookies on google.com on your browser.
Thanks to Sanjana I decided to look at Google's web code and found they have an X-Frame error.
So the url you can visit is https://accounts.google.com/ServiceLogin?service=cloudconsole&osid=1&passiv…collection/ios/v3/app?configured%253Dtrue&hl=en#add-config&cntlbl=Continue

Unexpected CFBundleExecutable key

After spending some time googling, something tells me that the issue is new.
We had a fully functional project supporting iOS7-8. Of course it was multiple times successfully submitted to AppStore.
We use pods, lots of tracking and monitoring, like GA and Instabug.
Now we decided to submit a version of the app built on Xcode 7 on iOS 9 to TestFlight.
We disabled bitcode, since many pods, like Flurry and other prebuilt libraries does not include it.
The build was successful, after the submission to iTunesConnect we get this:
We had same for GoogleAppIndexing library (in pods too), but we removed it, just to make it work. Now - Instabug. It is going too far, so I am trying to understand what is going on in iOS 9 and what are the changes that made a fully working project to start throwing such errors.
Any thoughts and ideas are welcomed! Please share your experience, and if I missed something, I will gladly share my steps.
I encountered the same problem today with the same exact error message when trying to submit our app (using Xcode 7 beta 5) but instead of the instabug.bundle bit, it was for me TencentOpenApi_IOS_Bundle.bundle.
I solved the problem by finding the named bundle in the project then - just as the error message suggests - edited the Info.plist that is in the bundle by removing the CFBundleExecutable key. The CFBundlePackageType key was already set to BNDL so I didn't touch it.
After these changes I did Product > Clean and then had no problem submitting the app to the App store.
Encountered this with AviarySDK on Xcode 7 GM, while submitting to the App Store.
First I'd check to see whether you're on the latest version of your library - the vendor may have fixed this already. If you are still facing this problem however, as Sleiman describes you need to remove the CFBundleExecutable key from the plist file for the offending library.
Cmd + Shift + O and type "Info.plist", you can then find the appropriate file:
Once editing the plist, you may be seeing descriptive names (instead of the CFBundleExecutable and other keys. I couldn't edit this file in an external editor, so I had to switch to view raw keys/values by right-clicking on the list:
You can now see the CFBundleExecutable key (which has a description of "Executable file") which you can delete.
For AviarySDK I did this twice, once for each Info.plist seen in the above image, and was then able to successfully submit.
I solve this problem as follows:
We have to remove all the "Executable files" of the following packages:
GooglePlus.bundle
GPPCommonSharedResources.bundle
GPPShareboxSharedResources.bundle
Be sure that "Bundle type code" is equal BNDL
Important: Do not edit anything in the info.plist the main project.
Attached screens as they should be his "info.plist" listed above each package.
Here's what worked for me
Apple-Shift-F, search for CFBundleExecutable
Click each one except "PODS" or your main target
Delete it (delete key)
If the build is submitted through Less than(<) Xcode 7.0 then it will be submitted and also
I have solved it by following way for Xcode 7:
Searched for info.plist in the projects Project Navigator as like following image:
Now opened these info.plist files one by one and deleted the BundleExecutable key EXCEPT the target's info.plist
Now cleaned the project and achieved and It is submitted with No issue.
I had the same issue in Google Maps Library i removed CFBundleExecutable key inside GMSCoreResources.bundle (Info.plist) which is SDK's info.plist clean project and upload to appstore.
Happy Programming.
Just check your Build Settings => Enable Bitcode, and set it NO
In my case I just Drag and Drop The SDK In folder include info.plist file which is not in use. That's create the issue for me. So find the unused info.plist file and delete it from the Source code.
One additional note: sometimes if you have additional targets there will be target properties that may also include the key (in the "Info" section), so make sure to check those and remove it from there also. I discovered this with one of the bundles I was trying to include. I deleted the info from the plist, but kept getting the error.
If you're seeing this error from a library installed via CocoaPods, try a pod update <OFFENDING POD NAME>
That solved the problem for me.
I just added word "BNDL" to appropriate place in plist "Bundle creator OS Type code".

Resources