use of unresolved identifier FIRDynamicLinkComponents - ios

I am trying to create a firebase dynamic link, but I get error use of unresolved identifier FIRDynamicLinkComponents. The frameworks I import in this viewcontroller are: Firebase and UIKit.
FIRbaseDynamicLinks.framework screenshot attached below.
What have I tried I tried?
pod repo remove master
pod setup
pod install
Pod version: 1.5.2
Xcode Version 8.3.3
Swift 3
Terminal log when I run pod install
Analyzing dependencies
Downloading dependencies
Using Firebase (3.9.0)
Using FirebaseAnalytics (3.5.1)
Using FirebaseAuth (3.0.6)
Using FirebaseCore (3.4.4)
Using FirebaseDatabase (3.1.0)
Using FirebaseDynamicLinks (1.3.1)
Using FirebaseInstanceID (1.0.9)
Using FirebaseStorage (1.0.4)
Using FrameAccessor (1.3.2)
Using GTMSessionFetcher (1.1.15)
Using GoogleInterchangeUtilities (1.2.2)
Using GoogleSymbolUtilities (1.1.2)
Using GoogleToolboxForMac (2.1.4)
Generating Pods project
Integrating client project
Sending stats

In Swift, the names are slightly different! To be more Swift-y, we alias the names for Swift without the "FIR" prefix. So FIRDynamicLinkComponents becomes DynamicLinkComponents. This can be a bit confusing at time, though hopefully more readable overall!
To make life a little easier, we've now split our reference docs into Swift and Objective-C versions, and generally have Swift and Objective-C tabs for all snippets in our guides.

Import that pod file in Bridge header file of your project.

Related

Cocoapods - FirebaseAnalytics only installed when using FirebaseCore

So, this question is not about how to fix something, but about how it is working this way.
I want to use FirebaseMessage in my app for push notifications, which have a dependency FirebaseCore. I started just adding FirebaseMessage to my Podfile
pod 'Firebase/Messaging'
I got installed:
Installing Firebase (5.4.1)
Installing FirebaseCore (5.0.6)
Installing FirebaseInstanceID (3.1.1)
Installing FirebaseMessaging (3.0.3)
Installing GoogleToolboxForMac (2.1.4)
Installing Protobuf (3.6.0)
Okey, problem here is that I get a warning when building the project, because FirebaseAnalytics is missing. No problem, I can add:
pod 'Firebase/Messaging'
pod 'Firebase/Core'
and get:
Installing Firebase (5.4.1)
Installing FirebaseAnalytics (5.0.1)
Installing FirebaseCore (5.0.6)
Installing FirebaseInstanceID (3.1.1)
Installing FirebaseMessaging (3.0.3)
Installing GoogleToolboxForMac (2.1.4)
Installing Protobuf (3.6.0)
Installing nanopb (0.3.8)
...and I get nanopb and FirebaseAnalytics extra.
Why is this happening? Looking at the podspecs, FirebaseCore has no dependencies related to FirebaseAnalytics:
https://github.com/CocoaPods/Specs/blob/master/Specs/8/b/d/FirebaseCore/5.0.6/FirebaseCore.podspec.json
I would like to find what tells cocoapods to install the FirebaseAnalytics pod, and why it only happens when I specifically install FirebaseCore.
Firebase/Core is the Core subspec of the Firebase pod. See details in the Firebase podspec.
While the FirebaseCore pod does not depend on FirebaseAnalytics, the Core subspec of the Firebase pod does.
It is unfortunate that "Core" is overloaded in Firebase terminology, but would tricky to change at this point without breaking a lot of apps.

How to solve Use of unresolved identifier 'SetOptions'?

I have updated Firestore to follows. Now, I can't use it anymore. I removed, reinstalled several times. But there is no change. I am losing my mind. The issue is:
"Use of unresolved identifier 'SetOptions'".
db.collection("").document("").setData([ "p1answered":false, "p1OutofTime": false ], options: SetOptions.merge())
Bolts (1.9.0)
Using BoringSSL (10.0.2)
Using FBSDKCoreKit (4.33.0)
Using FBSDKLoginKit (4.33.0)
Using Firebase (5.0.1)
Using FirebaseAnalytics (5.0.0)
Using FirebaseAuth (5.0.0)
Using FirebaseCore (5.0.1)
Using FirebaseFirestore (0.12.1)
Using FirebaseInstanceID (3.0.0)
Using FirebaseUI (5.0.0)
Using GTMOAuth2 (1.1.6)
Using GTMSessionFetcher (1.1.15)
Using Google-Mobile-Ads-SDK (7.31.0)
Using GoogleSignIn (4.1.2)
Using GoogleToolboxForMac (2.1.4)
Using Protobuf (3.5.0)
Using SwiftySound (1.0.0)
Using TwitterCore (3.1.0)
Using TwitterKit (3.3.0)
Using gRPC (1.12.0)
Using gRPC-Core (1.12.0)
Using gRPC-ProtoRPC (1.12.0)
Using gRPC-RxLibrary (1.12.0)
Using leveldb-library (1.20)
Using nanopb (0.3.8)
//Pod File
Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'Tahmin Et' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for My App
pod 'SwiftySound'
pod 'FirebaseUI/Google'
pod 'FirebaseUI/Facebook'
pod 'Google-Mobile-Ads-SDK'
pod 'FirebaseUI/Twitter'
pod 'FirebaseCore'
pod 'FirebaseAuth'
pod 'FirebaseFirestore'
end
Your code is okay, you just need to import FirebaseFirestore in your class.
Edit: After discussion
pod 'FirebaseFirestore' is also not correct. It should be pod 'Firebase/Firestore'. Have a look at Firebase getting started guide choose iOS tab under Set up your development environment.
Edit: 2
In latest documentation it is like:
db.collection("cities").document("BJ").setData([ "capital": true ], merge: true)

Cocoapods 'libcrypto.a and libssl.a' conflict

Using MJRefresh (3.1.12)
Installing NIMSDK (4.0.0)
Using Reachability (3.1.1)
Using SDWebImage (3.8.2)
Using SSZipArchive (1.8.1)
Using SVProgressHud (2.0.4)
Using SnapKit (3.0.0)
Using SwiftyJSON (3.1.4)
Using TZImagePickerController (1.7.9)
Using Toast (3.1.0)
Using Zip (0.6.0)
[!] The 'Pods-GXTax' target has libraries with conflicting names: libcrypto.a and libssl.a
When I use cocopods shows the error shown. Does anyone know how to resolve this issue?
Find pod cache directory like this:
pod cache list | grep NIMSDK
Output will be like the following:
NIMSDK:
Spec: /Users/username/Library/Caches/CocoaPods/Pods/Specs/Release/NIMSDK/4.2.podspec.json
Pod: /Users/username/Library/Caches/CocoaPods/Pods/Release/NIMSDK/4.2.0-b6a8f
Go to the Pod directory and find libcrypto.a and libssl.a
Delete conflicting files libcrypto.a and libssl.a
Rerun pod install

Infinite loop viewDidAppear on launch [duplicate]

I am getting EXC_BAD_ACCESS after including 'Firebase/Auth' in Podfile. This happens without adding any line of firebase code. I am using swift3 on xcode 8 and the resultant pods are -
Installing Firebase (3.8.0)
Installing FirebaseAnalytics (3.5.1)
Installing FirebaseAuth (3.0.6)
Installing FirebaseCore (3.4.4)
Installing FirebaseInstanceID (1.0.8)
Using GTMOAuth2 (1.1.4)
Using GTMSessionFetcher (1.1.7)
Using GoogleAppUtilities (1.1.2)
Installing GoogleInterchangeUtilities (1.2.2)
Using GoogleSignIn (4.0.1)
Using GoogleSymbolUtilities (1.1.2)
Installing GoogleToolboxForMac 2.1.0 (was 2.1.0)
Using Localize-Swift (1.6)
Using ProtocolBuffers-Swift (3.0.6)
Using QorumLogs (0.9)
The error comes in Thread 1 in [UIViewController(FIRAScreenClassName) fira_viewDidAppear:]:
This happens only if the pod target is itself a framework which is embedded in an app eventually.
I do have Google analytics as well. Is it because ARC is not enabled? How do I do that on xcode-8?
Any other options to try?
There appears to be a problem in the latest Firebase/Core (3.8.0) release. Even #IBDesignable was crashing with a recursive call to the method signature you mentioned.
You have a couple of options:
In Info.plist (app), set FirebaseAutomaticScreenReportingEnabled to NO (bool). This solved the problem for my running application, but IBDesignable resources caused this error on build:
file:///path/to/project/Base.lproj/Main.storyboard: error: IB Designables: Failed to render and update auto layout status for UIViewController (svZ-78-1Mn): The agent crashed
You may want to temporarily downgrade to 3.7.1, for example,
pod 'Firebase/Core', '~> 3.7.1'
pod 'Firebase/Auth'
pod 'Firebase/Database'
The rest of the dependencies should take care of themselves when you run pod update.
I made a silly mistake. Never turned on Google under Authentication -> Sign in methods on Firebase
I am suspecting that the Podfile is not correct. I got into similar problem by adding Firebase dependency into a framework and I ran into the problem like this
objc[12345]: Class FIRAAppEnvironmentUtil is implemented in both
/Users/...Build/Products/Debug-iphonesimulator/SomeFramework.framework/SomeFramework
(0x105ef7fc8) and /Users/.../CurrentProject.app/CurrentProject
(0x105945108). One of the two will be used. Which one is undefined.
As mentioned in this post, you might have duplicate dependencies in different targets which could lead to weird bug like this. Adding Firebase pod into the main target and removing the Firebase pod from the framework fixed the problem for me.

Google Analytics Pod installs too many dependencies

I've just included the Google Analytics Pod as described in their iOS developer guide with:
pod 'Google/Analytics'
When running
pod install
it installs the following dependencies:
Installing FirebaseAnalytics (3.2.0)
Installing FirebaseInstanceID (1.0.6)
Installing Google (3.0.3)
Installing GoogleAnalytics (3.14.0)
Installing GoogleInterchangeUtilities (1.2.1)
Installing GoogleSymbolUtilities (1.1.1)
Installing GoogleUtilities (1.3.1)
Since I don't use Firebase, I would like to get rid of the FirebaseAnalytics and FirebaseInstanceID (as well as all pods that are not needed by the framework itself).
Installing unused dependencies only bloats up my app size. I would like to only install the absolute minimum amount of pods to get GoogleAnalytics running.
Any ideas on how to kick the unused Pods out?
As seen in this answer, you can use:
pod 'GoogleAnalytics'
…to avoid installing the dependencies. Note that you'll need to change your Objective-C imports in your bridging header file; I needed at least:
#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIFields.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>

Resources