So I am creating an app that uses Firebase, Google maps SDK, Core location and loads of other little third party things going on, but is there a point where all these pods become too many? What are the negatives to having this many pods other than the obvious large project and IPA file size?
To give you an idea of how many pods I have here is my pod file list
pod 'Firebase'
pod 'Firebase/Core'
pod 'Firebase/AdMob'
pod 'Firebase/Messaging'
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'GoogleMaps'
pod 'GooglePlaces'
pod 'GooglePlacesSearchController'
pod 'CVCalendar', '~> 1.6.0'
pod 'SDWebImage', '~> 4.0'
pod 'GeoFire', :git => 'https://github.com/firebase/geofire-objc.git'
pod 'VMLocationManager', :git => 'https://github.com/varshylmobile/LocationManager.git'
pod 'BraintreeDropIn'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FBSDKLoginKit'
pod 'HFSwipeView'
pod 'fluid-slider'
pod 'paper-onboarding'
What I am asking is, are there any dangers or potential risks to having this many pods/libraries/sdks that could conflict or cause memory issues?
Related
I'm running pod install on terminal for the first time and it's been taking a very long time (longer than 20 minutes). When i ran pod install --verbose it's getting stuck on this. Not sure if it should be taking this long, any ideas on how to fix it? enter image description here
// Podfile
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
target 'UberEATS' do
pod 'GoogleMaps'
pod 'GooglePlaces'
pod 'SwiftyJSON', '~> 4.0'
pod 'Alamofire', '~> 4.7'
pod 'SDWebImage', '~> 4.0'
pod 'Fabric'
pod 'Crashlytics'
end
Delete source 'https://github.com/CocoaPods/Specs.git' from the Podfile.
Recent versions of CocoaPods use a much faster cdn as the default source location.
i have a podfile
platform :ios, '11.0'
inhibit_all_warnings!
#use_frameworks!
target 'app' do
pod 'ApiAI/Core'
pod 'Crashlytics'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Storage'
pod 'GoogleSignIn'
pod 'OneSignal', '2.5.0'
pod 'Realm'
pod 'SinchRTC'
pod 'SinchVerification'
pod 'MBProgressHUD'
pod 'MGSwipeTableCell'
pod 'NYTPhotoViewer', '1.2.0'
pod 'ProgressHUD'
pod 'RCSinchService'
pod 'Reachability'
pod 'RNCryptor-objc'
pod 'SoundManager'
pod 'ATHMultiSelectionSegmentedControl'
pod "DownPicker"
end
but i have error no such module 'DownPicker', if i uncomment the line use_frameworks! he did find this module, but give the another error
how i can fix it ? is that possible ? as far as I understand, this line is responsible for the language of writing
pod 'SoundManager'
pod 'ATHMultiSelectionSegmentedControl'
pod "DownPicker"
Note that you've used double quotes around DownPicker but single quotes for every other module. Perhaps that's the problem.
I am using Firebase in my project as well as Google sing-in.
For that I am using pod library.
pod 'SVProgressHUD'
pod 'SDWebImage'
pod 'AlamofireObjectMapper', '~> 4.0'
pod 'Google/SignIn'
pod 'IQKeyboardManagerSwift'
pod 'FBSDKLoginKit'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'Firebase/Auth'
pod 'Google/CloudMessaging'
This are my pod which I am using in project.
Now I am remove pod 'Google/CloudMessaging' then app build successfully but GGLContext.sharedInstance().configureWithError(&configureError)
giving error like below
You have enabled the CloudMessaging service in Developer Console, but it appears as though your Podfile is missing the line: 'pod "Google/CloudMessaging" or you may need to run pod update in your project directory.
If I am adding pod "Google/CloudMessaging pod and then build project XCode fail with duplicate symbols.
How can I add two and also avoid this error.
It seems you cant use GCM and FCM at the same time as FCM is the new improved GCM and you're certainly going to run into those kind of errors. You can see that question addressed in this SO post
I'm trying to install the OpenTok pod to my pod file. I have a very big project with many pods installed from the previous developers.
The pod file looks something like this:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
def common_pods
pod 'TPKeyboardAvoiding'
pod 'Fabric'
pod 'Crashlytics'
pod 'FBSDKCoreKit', '~> 4.11.0'
pod 'FBSDKLoginKit', '~> 4.11.0'
pod 'MBProgressHUD'
pod 'BMEApi', :path => 'BMEApi'
pod 'NMRangeSlider'
pod 'SDWebImage'
pod 'ASMediaFocusManager'
pod 'QBImagePickerController', '~> 3.4'
pod 'HPGrowingTextView', '~> 1.1'
pod 'HNKGooglePlacesAutocomplete', '~> 1.1'
pod 'Stripe', '~> 8.0'
end
target 'My_Target' do
common_pods
end
target 'My_Target_Appstore' do
common_pods
end
When I try to add
pod 'OpenTok'
to the "common_pods" section, I get a crash in the terminal when I try to run pod install. It says something along the lines of "Oh no, an error has occurred" asking me to write a ticket.
When I open up my project, all the pods files are messed up and Xcode can't locate any of them.
To test to see if there was something wrong with the framework, I tried installing it on a random test project and it worked perfectly
So the issue here is why won't it install properly on this project, but it will on the other project, and why does it mess up the entire pod file?
Try to add use_frameworks!
So, result pod file (name of the my test project - stackoverflow-39682480):
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
def common_pods
pod 'TPKeyboardAvoiding'
pod 'Fabric'
pod 'Crashlytics'
pod 'FBSDKCoreKit', '~> 4.11.0'
pod 'FBSDKLoginKit', '~> 4.11.0'
pod 'MBProgressHUD'
# I Do not have BMEApi lib, so i disable it of me
#pod 'BMEApi', :path => 'BMEApi'
pod 'NMRangeSlider'
pod 'SDWebImage'
pod 'ASMediaFocusManager'
pod 'QBImagePickerController', '~> 3.4'
pod 'HPGrowingTextView', '~> 1.1'
pod 'HNKGooglePlacesAutocomplete', '~> 1.1'
pod 'Stripe', '~> 8.0'
pod 'OpenTok'
end
target 'stackoverflow-39682480' do
common_pods
end
Result
The question is how to cleanly remove Test in cocoapods PodFile ?
I'ved just recently updated cocoapods 1.0.0 to my project
I ran "pod init" to generate a sample PodFile then put in my pods.
Whole bunch of error generated by the xcode test project ProjectNameTests
http://imgur.com/fUOF18i
How can I cleanly remove the tests ? Even if comment it out there is other problems like Bridging-Header.h cannot find dependent header.
In my current PodFile for 1.0.0:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'ProjectName' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for ProjectName
pod 'FBSDKCoreKit', '~> 4.9'
pod 'FBSDKLoginKit', '~> 4.9'
pod 'FBSDKShareKit', '~> 4.9'
pod 'SwiftyJSON', '~> 2.3.1'
pod 'Alamofire', '~> 3.0'
pod 'Google/Analytics', '~> 1.0.0'
pod 'Fabric'
pod 'Crashlytics'
pod 'AWSS3'
target 'ProjectNameTests' do
inherit! :search_paths
# Pods for testing
end
end
my previous PodFile, no mention for target project or test:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'FBSDKCoreKit', '~> 4.9'
pod 'FBSDKLoginKit', '~> 4.9'
pod 'FBSDKShareKit', '~> 4.9'
pod 'SwiftyJSON', '~> 2.3.1'
pod 'Alamofire', '~> 3.0'
pod 'Google/Analytics', '~> 1.0.0'
pod 'Fabric'
pod 'Crashlytics'
pod 'AWSS3'
The type of errors you'r defining are not because you have a target to the tests in your Podfile. inherit! :search_paths indicates that this target inherits the pods from the target above it.
One thing you might be getting wrong is that the "target 'ProjectName' do" is not regarding your project name but an actual target of your project.
A target can have a different name then your project.
You can also check the official migration guide Migration Guide.