Issue with Cocoapod, macOS High Sierra and Firebase dependencies - ios

Here is my issue, I recently updated to macOS High Sierra and Xcode 9.1.
I also installed cocoa pods. Then, I have a project, an IOS app which uses Firebase realtime database and Firebase storage.
So, I follow the guide provided by Firebase step by step but I always end with this issue when I try to build my project :
GTMSessionFetcher.framework: No such file or directory
or
GoogleToolboxForMac.framework : No such file or directory
I already read several similar posts on stackOverflow and I try different solutions provided but nothing works...
I tried :
Clean the project
Open .xworkspace
Uninstall/Reinstall pods
Delete Derived Data
Close/Open workspace
Restart Mac
Here is my pod file :
# Uncomment the next line to define a global platform for your project
platform :ios, '11.1'
target 'Jack\'n\'Ferdi' do
use_frameworks!
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/Storage'
end
Pods are installed without errors when I launch pod install into the command line. I also try pod update. I am kind of desperate...
Update
When I create a new project from scratch and add those pods, it works perfectly ! The initial project is not from scratch. I got it from Github.

Related

Swift app downloaded from source control doesn't run on my machine, runs on coworkers

The bounty expires in 3 days. Answers to this question are eligible for a +50 reputation bounty.
Oscar A Garcia wants to draw more attention to this question.
A coworker and I are taking over an iOS app hosted on GitLab. This app utilizes cocoapods, and the Pods directory is included in the repo. My understanding is we should be able to pull the repo and run it on Xcode without issues.
My coworker is able to download the app from source control and run it on his machine. Mine is getting errors such as "Cannot find type 'AnimationView' in scope". He is running an M1 MacBook, I'm running an intel-based MacBook air. I'm opening the workspace file that was generated by CocoaPods, not xcodepro.
Here's a list of things I've tried:
Regenerating the pods via the command line by running pod reintegrate, then pod update, opening Xcode and cleaning the build folder, and then running again.
Changing the minimum iOS deployment target on Xcode to the highest deployment target of the pods in my podfile.
Changing the architectures on the app build settings to i386 and x86_64 rather than the default.
Clicking "Update to recommended settings" when Pods throws a warning.
None of these seem to work, I'm at a loss at this point. Since it runs on my coworker's machine I'm assuming there must be something wrong with how my app is detecting the libraries or how it's compiling.
Here's my podfile:
# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'
target 'projectname' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for projectname
pod 'Purchases'
pod 'Firebase/Analytics'
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'Firebase/Firestore'
pod 'Firebase/Auth'
pod 'SwiftyJSON'
pod 'CleanyModal'
pod 'MagicTimer'
pod 'lottie-ios'
pod 'FBSDKCoreKit'
end
I suspect the problem is not related to pods.
The reason for this is if you start a fresh iOS Xcode project, called emptyproj, and then close the iOS project in Xcode, you can then go to that project directory and place in a Podfile into that directory with your above contents but with the name projectname replaced with emptyproj, you can then do
pod install
and then once it has created emptyproj.xcworksapce open it in Xcode.
You will notice that there is no symbol called AnimationView. There is only LottieAnimationView.
So the missing symbol must be in the actual app on GitLab, not the pod dependencies.
What I suggest is to look at any build phases in the build of the project to see if any scripts that are architecture-specific get run.
Another debugging strategy is to get your co-worker onto your machine and do the setup herself on your machine, which might succeed (an unmentioned step) or fail (stronger evidence that it is a machine or architecture related matter).
This looks like you have different version of lootie , ask your coworker to check version he is currently using
for this you can use command:
pod outdated
When you run pod outdated, CocoaPods will list all pods that have newer versions that the ones listed in the Podfile.lock
then
use pod with specyfic version like this:
pod 'lottie-ios', '3.5.0'
instead of:
pod 'lottie-ios'
If you didn't add version when you run 'pod install' you will get newest available version.
and AnimationView is part of lottie liblary.
After adding version number run 'pod install'.
In such a case you can ask for the Podfile.lock of your co-worker and can check for the already installed specific version of the relevant pod, and if there any mismatch with there installed version with yours, update your pod file by adding that version and then pod install. and also if you guys don't need to work with latest version of the pods it is always better to use pod with versions.

No such module 'Firebase' error in Xcode 11.0 beta 5

I have been looking up on every website that had a similar/identical to this specific issue for Xcode of earlier version errors and I have tried everything and nothing has worked. I have cleaned and then tried to build the project but that hasn't worked.
The terminal shows that the firebase pod has been successfully installed but when try to import firebase the xcode says there is no such module Firebase
Then I tried to use adding the framework manually but when I try to build then Xcode says framework not found firebasecore .
I am stuck there ..what can I do next?
Comment all pods in pod file, then install only
pod 'Firebase/Analytics'
pod 'Firebase/Messaging'
For firebase notifications, because some time xcode do not install frameworks of pod files.
Open your pod file from project directory and add this
pod 'Firebase/Core'
then go to terminal and install pod again
pod install
after that make sure you build your project (⌘+B) before use.
Make sure you are opening .xcworkspace file from project directory.

Xcode 10 iOS firebase firestore SDK -- multiple command produce gRPCCertificates.bundle error in Firebase

I am getting multiple command produce gRPCCertificates.bundle
Multiple commands produce '...iphoneos/gRPCCertificates.bundle':
1)
Target 'gRPC-C++-gRPCCertificates' has create directory command with
output '.../iphoneos/gRPCCertificates.bundle'
2) Target
'FirebaseFirestore-gRPCCertificates' has create directory command with
output '....iphoneos/gRPCCertificates.bundle'
Here is my Podfile:
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
target 'FireCheck' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for FireCheck
pod 'Firebase/Core'
pod 'Firebase/Firestore'
end
I have already tried clean, deleting derived data, deintegrating and reintegrating pods, nothing works
I am using Xcode 10.
It only happens when I do build and achieve ... normal run/debug works
It also only happens in macOS 10.14 (18A391) not in previous version of the macOS (High Sierra)
More information I have added here
https://github.com/firebase/firebase-ios-sdk/issues/2102
Run pod update
The issue is now fixed with the release of version 0.0.5 of gRPC-C++.
More details at https://github.com/firebase/firebase-ios-sdk/issues/2102
While waiting for an update on the Github project, you can temporarily use the previous version of Firestore.
pod 'Firebase/Firestore', '5.12.0'
For anyone that didn't use CocoaPods to install RNFirebase and is getting this error, navigating to the Build Phases -> Copy Build Resources in Xcode and removing the duplicate gRPCCertificates.bundle file manually worked for me.

Swift: Can't import Frameworks in Xcode, running into error: 'no such a moudle' (installed using cocoapods)

Its frustrating seeing this error every time i use cocoa-pods. The only thing that works with cocoa-pods is 'Firebase SDK' but when i install any other framework such as JSQMessages or Eureka forms or any other framework i got an error 'No such a module" ... Its not the first time I work with these frameworks I did before and it was working correctly in fact I still got my previous projects installed with JSQMesgs, eurka..etc and its working fine till now. For the new projects it doesn't work/import in xcode anymore it is frustrating that I can't run it with this error ... not sure if its xcode or the cocopods .. I have tried instaling using terminal then uninstall and reinstall again with cocoapods application. I cleaned my build, change deployment target several times, and nothing worked so please if any one could share the same problems faced or advice me on how to avoid them or any alternatives to cocoapods.
deployment target 10.3 my xcode version 8.3.3 swift 3 macOS Sierra 10.12.5
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'FinalProject' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for FinalProject
pod 'Firebase/Core'
pod 'Firebase'
pod 'FirebaseAuth'
pod 'FirebaseDatabase'
pod 'FirebaseStorage'
pod 'ProgressHUD'
pod 'JSQMessagesViewController'
pod 'Eureka'
pod 'Former'
pod 'SwiftForms'
end
Please help.
Build the project.
The Xcode editor doesn't recognize modules coming from the Pods until after they've been built for the first time.
If that doesn't work for you, please share a screen shot of the issue, or even better, a reproducible example.
I had the same problem trying to work with SwiftyStoreKit.
I finally manage to solve my problem and hope that sharing the solution will help someone.
I tried everything was suggested until I realised that I was loading the pod in the wrong target, (in the pod file itself.)
After I repaired the pod file, run again pod install, and, voila, the xcode recognised the pod.

Parse SDK / CocoaPods

I have an objective C iOS app using the Parse SDK.
In the process of moving this app from Parse.com to a self hosted Parse-Server, I need to update the Parse SDK to the latest version. For this update I decided to go with CocoaPods.
This is the first time I touch CocoaPods (after reading and hearing so much good about it).
I found my way, following what I could read here and also based on a few CocoaPods tutorial I quickly viewed.
Having my project "ready", when buiding it I get this error:
#import <ParseUI/ParseUI.h> -----> File not found.
Obviously things have changed place. And I tried a couple of unsuccessful solutions.
So here is my question:
How do I need to change the settings of my project, now that I am using CocoaPods?
In order to use Cocoapods with parse and Parse UI you need to do the following steps:
Create a new file and name it Podfile. This file should be located on your IOS project root folder.
The Podfile should contain at least the following structure if you want to use parse IOS SDK and ParseUI
platform :ios, '8.0'
use_frameworks!
pod 'Parse'
pod 'ParseUI'
# Put more pods in here..
Notice to the platform, you may change it to the minimum version that your app can run on and the use_frameworks! will install all your pod as frameworks and this is mandatory if you like to consume Swift libraries.
Open terminal and navigate to your IOS root directory and enter pod install. This command will install all the pods and dependencies into your project.
After installing you will no longer use the IOS project file from now on you will use a new file which called workspace. The workspace will contain both your project files and the pods project/frameworks files.
Build your project, fix some error (if there are) and run it to make sure that it works as expected .
More CocoaPods commands that you need to know are:
pod update - update all your pods to the latest release or to the release that was mentioned in the Podfile
pod update update specific pod to the latest release or to the release that was mentioned in the Podfile
pod outdated - display out to date pods that are being used inside your project.

Resources