CocoaPods Bridging Header file not found - swift

New developer here, and I'm currently building an app in swift. We are using cocoapods, but after running pod install, we get an error in the objective-c bridging header saying that the file cannot be found, but for any and every file in our bridging header. For example, we use DateTools. We pod install it, in the bridging header we put:
#import <DateTools/DateTools.h>
but then, upon running, it errors, saying that 'Datetools/Datetools.h' file not found. I've already looked through a lot of other similar posts (like this, this, or this), but none have solved the issue. Any help would be greatly appreciated!

When using the use_frameworks! instruction in Cocoapods, the bridging header is not required for importing Objective-C pods in Swift.
Simply set your desired pods into your podfile:
#Uncomment this line to define a global platform for your project
platform :ios, '9.0'
#Uncomment this line if you're using Swift
use_frameworks!
target 'YourProject' do
#Swift Pods
pod 'Alamofire'
pod 'ActiveLabel'
#ObjC Pods
pod 'IDMPhotoBrowser'
pod 'Firebase'
#This stuff is to set the SWIFT_VERSION
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '2.3'
end
end
end
end
Run pod install. Run pod update (should not be necessary, but for some reason I'm getting updates almost every time, even after clean install). Close Xcode and reopen using the white xcworkspace file.
import Alamofire
import ActiveLabel
import IDMPhotoBrowser
import Firebase
Done.

Related

How to fix cocoapod .modulemap file not found

When I try to build my project, I get a compile time error saying that a "Module map file" for my pod cannot be found and that I am missing a "SwiftShimes" module.
This is weird because all my modulemap files are where they should be when I install my pods.
I am using Xcode 10.2 and Cocoapods 1.6.1.
I have tried the following ->
deintegrating cocoapods from my project
cleaning the project
deleted ModuleCache and DerivedData
restarting my computer
This is the type of error I am getting ->
Module map file '/Users/kaunamohammed/Library/Developer/Xcode/DerivedData/OutNow-gxdxvzwmnijmrlajtbtyclkhrgqs/Build/Products/Debug-iphoneos/CodableFirebase/CodableFirebase.modulemap' not found
I expect my project to build properly but this is not the case and I am not sure what else to do.
This is what my Podfile looks like
platform :ios, '10.0'
workspace 'OutNow'
target 'OutNow' do
use_modular_headers!
#Pods for OutNow
pod 'Instabug'
pod 'SwiftMessages'
pod 'CodableFirebase'
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'Firebase/Firestore'
pod 'Firebase/Messaging'
pod 'Firebase/DynamicLinks'
pod 'MarqueeLabel/Swift'
pod 'RxSwift', '4.4.2'
pod 'RxCocoa', '4.4.2'
pod 'Kingfisher', '5.3.1'
pod 'InstantSearchClient', '6.0'
pod 'CoordinatorLibrary', '1.0.5'
pod 'UIScrollView-InfiniteScroll', '1.1.0'
target 'OutNowTests' do
inherit! :search_paths
# Pods for testing
end
end
In case it helps anyone else, I was able to solve this issue a different way. I was accidentally opening up my .xcproject instead of my .xcworkspace. When I opened the correct file, the error went away.
I fixed this problem myself. I can tell you what I did. Not sure which steps did it exactly, but below are all steps:
Copy the contents of your Podfile somewhere safe
Run: pod cache clean --all
Remove "Podfile"-file from the dir.
Xcode: Product > Clean Build Folder
Run: pod init. A new "Podfile"-file is added to the dir
Start adding parts of your original Podfile to this file
Run: pod install
Try to build your project again
In my case, I think the row use_frameworks! in the "Podfile" did the trick.
Hope this help you guys out!
I had this issue only when I wanted to make an archive. On the other hand, debug worked fine. After a while I noticed that min iOS version was different between my Target, Project and Podfile min iOS version. After syncing them all to same value (iOS 11) Xcode offered me Validate Project Settings - Update to recommended settings option which I accepted and I was able to archive my project.
I spent a whole day trying to figure out how to solve this issue. I was facing issue in my project on M1 machine.
I enabled "Open using Rosetta" option in Xcode and worked for me.
Here is how you do that:
Open Finder --> Applications --> Right click "Xcode" --> Get Info --> check "Open using Rosetta"
I solve this issue by removing OTHER_SWIFT_FLAGS custom flag in Swift Compiler - Custom Flags
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_ROOT}/modulePath/moduleName.modulemap\"";
I faced this same issue but with Fastlane using gym build_app.
I ensured that min iOS version was synched between my Target, Project, and Podfile as mentioned by Josip B. This allowed me to archive my app using XCode but it still failed using Fastlane.
After lots of searching, it was able to resolve my issue by ensuring the IPHONEOS_DEPLOYMENT_TARGET version for each of my installed Pods inherited the version from my Podfile using this Podfile post-install script:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
Reference this post: https://stackoverflow.com/a/63489366/10211406
In case you are building on command line with xcodebuild, make sure you are using
xcodebuild -workspace ...
instead of just xcodebuild or
xcodebuild -project ...
I had this issue too, I'm not very familiar with XCode, but I opened the .xcodeworkspace file and then clicked build, which was successful!
It´ s a bit of a hack but try adding this in your podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
if (target.name&.eql?('FBReactNativeSpec'))
target.build_phases.each do |build_phase|
if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs'))
target.build_phases.move(build_phase, 0)
end
end
end
end
make sure you add it to your bridge file, and Try to add this at the end of your podfile:
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end

Linker Issue Xcode Cocoapods

Installed three pods but for some reason can't get it to work
I tried reinstalling, updating, deintegrating but nothing does it.
I get the following errors. Tried creating the folders manually but the Linker Error remains always
Podfile:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'Clima' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Clima
pod 'SwiftyJSON'
pod 'Alamofire'
pod 'SVProgressHUD'
end
The frameworks aren't being built. Just open {Yourproject}.xcworkspace generated after adding cocoapods instead of {Yourproject}.xcodeproj - that should help.

Firebase won't work

i don't know if someone have the same problem at the moment, but i'm trying to import Firebase in my app but it only shows "No such module for Firebase". Could anyone please help me?
This is the error i get every time.
EDIT: (Sorry for the noobie errors), this is the code in the Podfile:
target 'CosplaCentral' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for CosplaCentral
target 'CosplaCentralTests' do
inherit! :search_paths
# Pods for testing
end
target 'CosplaCentralUITests' do
inherit! :search_paths
# Pods for testing
pod 'Firebase'
end
end
Update your pod file with the code below, then in Terminal direct to your project file and do pod install (make sure Xcode is closed when doing so) and then load up your project again then retype import Firebase
platform :ios, '8.0'
target 'CosplaCentral' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for LT Sounds
pod 'Firebase'
pod 'Firebase/Auth'
end

Issue installing pod written in Swift with CocoaPods

I'm trying to import the XLPagerTabStrip podfile to my project but I keep getting the error of:
Analyzing dependencies
Downloading dependencies
Using Stripe (6.0.1)
Using XLPagerTabStrip (4.0.1)
[!] Pods written in Swift can only be integrated as frameworks;
add `use_frameworks!` to your Podfile or target to opt into using it.
The Swift Pod being used is: XLPagerTabStrip`
Could you help me fix this issue? Here is my podfile:
# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'
pod 'Stripe'
pod 'XLPagerTabStrip'
target 'Flokk' do
end
target 'FlokkTests' do
end
add use_frameworks! to the end of your Podfile like it tells you to

Cocoapods pod file install not working "Unable to find a specification for `RealmSwift (~> 0.97)`" swift

I'm attempting to install Realm for swift, expect terminal keeps giving me this error: Unable to find a specification for RealmSwift (~> 0.97). My pod file has been laid out exactly as they recommend. This is my pod file:
target 'AppName' do
use_frameworks!
pod 'RealmSwift', '~> 0.97'
end
target 'AppName Tests' do
use_frameworks!
pod 'RealmSwift', '~> 0.97'
end
target 'AppName UITests' do
end
target 'AppName Keyboatd' do
end
target 'AppName Keyboard' do
end
I just tried it with Realm Objective-C and it worked fine for me. That's strange.
It's possible that since the version is actually called '0.97.0', maybe it's necessary to include that extra '.0'.
Alternatively, is it completely necessary to include the version specifier in there? You can just leave it off, and you'll still get the latest version of Realm (0.97.1 was released a few days ago!)