I'm not an ios developer and am trying to add Firebase to my Flutter project. I followed the firebase guideline of adding an ios project. I first moved the GoogleService-Info.plist into Runner/Runner in Xcode. Thereafter I executed $pod init and added pod 'Firebase Core' into the Podfile. As described in the setup guide I executed pod install thereafter. This command already shows the following error messages:
[!] Automatically assigning platform ios with version 8.0 on target Runner because no platform was specified. Please specify a
platform for this target in your Podfile. See
https://guides.cocoapods.org/syntax/podfile.html#platform.
[!] CocoaPods did not set the base configuration of your project
because your project already has a custom config set. In order for
CocoaPods integration to work at all, please either set the base
configurations of the target Runner to Pods/Target Support
Files/Pods-Runner/Pods-Runner.debug.xcconfig or include the
Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig in
your build configuration (Flutter/Debug.xcconfig).
[!] CocoaPods did not set the base configuration of your project
because your project already has a custom config set. In order for
CocoaPods integration to work at all, please either set the base
configurations of the target Runner to Pods/Target Support
Files/Pods-Runner/Pods-Runner.release.xcconfig or include the
Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig
in your build configuration (Flutter/Release.xcconfig).
[!] CocoaPods did not set the base configuration of your project
because your project already has a custom config set. In order for
CocoaPods integration to work at all, please either set the base
configurations of the target Runner to Pods/Target Support
Files/Pods-Runner/Pods-Runner.profile.xcconfig or include the
Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig
in your build configuration (Flutter/Release.xcconfig).
When I now try to run my app the debug concol outputs these errors:
=== BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
diff: /Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
It seems as if some files are missing even though they are inside the ios project folder.
After some research, I found out that it's not necessary to run these pod comments. It's only required to move the google-services file into the iOS project.
follow the three simple step.
flutter terminal,
1. cd ios
2. pod init
3. pod install
after than, flutter run.
I have two swift projects, application and library, where library is a dependency of application. I have a Podfile configured as so;
workspace 'myworkspace'
platform :ios, '9.0'
use_frameworks!
target :library do
project 'library/library.xcproject'
pod 'GCDWebServer', '~> 3.0'
target :application do
project 'application/application.xcproject'
end
end
After running pod install successfully, I open myworkspace in Xcode, and find application as the currently selected scheme. Immediately building results in failure, due to;
No such module 'library'
To solve this I need to change the current scheme to library, build, then switch the scheme back to application and it will successfully build.
Questions;
Is this expected, or a bug in xcode and/or CocoaPods, or have I configured something incorrectly?
Does this mean I need to separately build library anytime library source changes occur to reflect those changes in application builds?
Xcode 7.3, CocoaPods 1.0.1, repo
Try do the followings:
1.Open the 'xxx.xcworkspace' file to run your project. Do not open 'xxx.xcodeproj' to run your project again.
2.Product->Clean->Run
3.Add all the pod targets to 'Linked Frameworks and Libraries' in Project -> General
I have an iOS/OS X Xcode projects, where I'm using CocoaPods, and I can't seem to figure out how to add my own project configurations (In addition to Debug and Release) without completely blowing up the build.
In the project, I have a number of targets, for apps on both platforms and its app extensions. The Xcode workspace of course also has the Pods project.
Because the project builds targets for iOS and Mac, I use CocoaPods "targets" to group their pods together. My Podfile looks something like this:
source 'https://github.com/CocoaPods/Specs.git'
target :iOS do
platform :ios, '7.1'
link_with 'iOS', 'NozbeToday', 'NozbeShare', 'NozbeWatch'
# pods...
end
target :Mac do
platform :osx, '10.9'
link_with 'Mac'
# pods...
end
Now here's where I have a problem. So far I've had only the default "Debug" and "Release" configurations in my project. I wanted to change them and add some new ones for different provisioning profile/bundle ID combination.
… and I'm stuck. I can't figure out how to do this.
First sign of the problem was a warning pod install spewed out for every target/configuration combination:
[!] CocoaPods did not set the base configuration of your project
because your project already has a custom config set. In order for
CocoaPods integration to work at all, please either set the base
configurations of the target NozbeToday to Pods/Target Support
Files/Pods-iOS/Pods-iOS.dev debug.xcconfig or include the
Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig in
your build configuration.
I couldn't figure out what it means and how to fix this. Either way, the project wouldn't build — in the best case scenario I would get a linker error saying that it can't find Pods-something.a…
OK, so half-way through writing this question I figured it out myself (yay rubber ducking). Here's the solution for next generations:
Essentially, you have to add an explicit dependency on the Pods target to your application scheme.
The way you do it, is: edit your application scheme, go to the Build section, and add the Pods target above your application target. You should see something like this:
And it will just work.
As for the CocoaPods warnings on pod install, you need to use the xcconfig files generated by CP for each of your Xcode configurations. The way you do it is:
find the .xcconfig files in Pods/Target Support Files
drag and drop them to "Pods" group in your Xcode project (add reference only. Don't copy to target or add to the build)
Click on the project in project navigator, and select the project itself (not one of targets). Go to Info, and under Configurations set the right .xcconfigs to each configuration and target in the "Based on Configuration file" column.
You'll also need something like this in your Podfile to let CocoaPods know which of your Xcode configurations are "debug" (unoptimized), which are "release":
project '1Nozbe', {
'iOS 1 Dev Debug' => :debug,
'iOS 2 Dev AdHoc' => :release,
'iOS 3 Release Debug' => :debug,
'iOS 4 Release AdHoc' => :release,
'iOS 5 Release AppStore' => :release,
}
Not exactly related to CocoaPods, but if you happen to have some other (sub-project) dependencies other than CP, you'll also need to do two things:
add explicit dependencies on the sub-project target (like on the screenshot above)
rename/add configurations in your sub-project so that they are the same as your main project. (Otherwise, Xcode just doesn't know which configuration to use with your sub-project)
Add this line in your config file, just like import a header file:
#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"
NOTE: it's #include, not #import
Another solution without the need to add explict dependencies to any schema nor draging and dropping stuff:
How to add custom project configurations to Xcode when using CocoaPods
Usually when you add custom configurations to your xcode project (other than Debug and Release) the thing you should do is run pod install. This will fix/remake the changes that cocoapods usually do.
How to get ride of CocoaPods did not set the base configuration of your project because... warning
On the Configurations settings under Info tab, on project level, you need to set the base configuration to use (generated when running pod install)
And dont forget to tell cocoapods what config it should use, in other words map your condfigurations with pods configurations, otherwise your compile time might dramatically increase
What fixed it for me was:
Adding the includes to the custom config files,
Adding the project config dependencies in the pod file (use the names that you see under info -> configurations and
Then re-running pod install.
Here is the include for the config file (SupportingFiles->Config->ConfigFiles)
#include "Pods/Target Support Files/Pods-ProjectName/Pods-ProjectName.release prod.xcconfig"
Links that helped me:
Great Tutorial on setting up configs with Cocoapods
Project documentation Cocoapods
UPDATED
After I execute a pod install at the base of my project, I get the following error:
CocoaPods did not set the base configuration of your project because because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target BluePlaquesLondonFramework to Pods/Target Support Files/Pods/Pods.debug.xcconfig or include the Pods/Target Support Files/Pods/Pods.debug.xcconfig in your build configuration.
This probably sounds like a silly question, but how do I set the base configuration for a target?
https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile is the Podfile which is causing this issue.
http://github.com/seanoshea/BluePlaquesLondon on the iOS 8 branch is the Podfile in question if you're curious to see what the project looks like.
I had the same problem, but in Xcode 6.1.1 - what fixed it for me was to change the configuration file setting to None for the two Pods-related targets, then run pod install again.
The configuration file setting is found by selecting the project (not the target) and then the Info tab.
Don't tinker, Reset.
Step-by-step
Show Project Navigator
Select Project
Select Info
In Configurations, select each one, one at a time (Debug, ApplicationUnitTest, Release, etc.), and for each target within said configuration, set configuration to None.
Make certain that Based on Configuration File reads 0 Configurations Set or No Configurations Set for each configuration. That is the crux.
Quit Xcode
rm -rf Pods/ Podfile.lock ; pod install
Once you have allowed pod install in step 7 to do its magic, you may be able to use a custom config and change your configurations.
Go into XCode and open your project settings and under the Info tab, you will see "Configurations" where you can set a configuration file for both Debug and Release. You apparently have already set these to some custom config and CocoaPods wants/needs you to use the Pods config.
Ran into the same problem. It would build on the simulator but not on my device. None of the answers solved this for me. Here's what I did piecing some answers together:
Changed my pods file to use a specific target:
target :MyProject do
pod 'AWSCognitoSync'
pod 'Facebook-iOS-SDK'
end
Ran pod install
That gives an error:
[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `MyProject` to `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` or include the `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` in your build configuration.
Go Project settings and click on Info tab. There will be an error where it cannot find the Configuration file. Set it to "None" for Debug and Release.
Run pod install yet again
Clean and build. This works.
I fixed my issue after a careful reading of the error message:
[!] CocoaPods did not set the base configuration of your project
because your project already has a custom config set. In order for
CocoaPods integration to work at all, please either set the base
configurations of the target Runner to Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig or include the Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig in your build
configuration (Flutter/Release.xcconfig).
Solution
Open Xcode and change the Runner Info Base Configurations to the
related Pods-Runner.profile.xconfig.
Quit Xcode
Terminal: From the ios project folder run pod deintegrate
Verify pods are removed
Project has been deintegrated. No traces of CocoaPods left in project.
Note: The workspace referencing the Pods project still remains.
Terminal: From the ios project folder run pod install
(from this original - BAD)
(to this GOOD settings)
Notes
I have not been able to resolve the issue using the second
suggestion of including the xconfig file inside of the
Flutter/Release.xcconfig configuration file as mentioned in the
error message.
You should also make sure that you have no pods in the root of Podfile, you should define all the pods that are used in many targets like that:
def shared_pods
pod 'ReactiveCocoa', '~> 2.5'
end
target 'app' do
shared_pods
pod 'RestKit'
end
target 'tests' do
shared_pods
pod 'OCMock'
end
You also might need to delete libPods.a and libPods-app.a from the target dependencies, perform a clean and then run pod install again.
For those coming from the Flutter world, this is a misleading error message suggesting an unnecessary action, and the correct course is to ignore the error and use the flutter cli (not pod), as discussed in https://github.com/flutter/flutter/issues/73845:
gatzsche says a better message would be:
In Flutter pod install should not called manually. To run pod install
execute the following commands flutter clean, flutter pub get and
flutter build ios.
jmagman notes:
As you point out, the error message is suggesting an action that isn't necessary. The flutter command suppresses that message from pod. You ran pod directly, which isn't a recommended workflow. We don't have any control of error messages coming from CocoaPods, and the flutter command line tool already suppresses the confusing message.
I just ran into this issue after adding some custom build configurations. I could see under:
Pods (target) > Target Support Files > Pods
that it had actually created the new xcconfig files that matched the new build configurations but for some reason I could not select these in the project target of my app.
What fixed it for me was to install and use cocoapods-deintegrate:
gem install cocoapods-deintegrate
and then run:
pod deintegrate
followed by:
pod install
In case you are using custom config you can follow the suggestion in the warning and include the Pod config in your config file
#include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"
This will NOT stop the warnings but will allow you to use your private config (there is an open bug on the warning with CocoaPods project)
https://github.com/CocoaPods/CocoaPods/issues/2633
If you added a custom build configuration to your existing project, Cocoapods will complain about it.
Cocoapods will automatically create xcconfig files under the directory Pods/Target Support Files/<build_target> following the naming pattern Pods-<build_target>.<build_config>.xcconfig.
Just make sure to manually add those files to your project in Xcode (under the Pods directory, but not inside the Pods project!). Once those files are included select your project in Xcode, go to the "Info" tab, and expand your custom configuration. Select the appropriate xcconfig file for each target under your custom configuration.
The line in the podfile that is generating a problem is : link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].
Just make this : link_with ['BluePlaquesLondon'] or this (worked in my case, hope it will in yours :-)) :
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
xcodeproj 'BluePlaquesLondon.xcodeproj'
inhibit_all_warnings!
link_with ['BluePlaquesLondon']
def import_pods
pod 'TTTAttributedLabel', '~> 1.10.1'
pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.9'
pod 'Google-Maps-iOS-SDK'
pod 'IntentKit'
pod 'HCViews'
pod 'SVProgressHUD', :head
pod 'iRate'
pod 'iOS-KML-Framework', :git => 'https://github.com/FLCLjp/iOS-KML-Framework.git'
end
import_pods
target "BluePlaquesLondonFramework" do
import_pods
pod 'Kiwi'
end
I had the same error while pod install. I tried everything (reinstall pod, update all gems, etc.) and I found solution worked in my case. There was problem because of changing target's name. In this case solution is simple:
Click Product -> Scheme -> Manage Schemes...
Click on your target on the list and delete it with "-" sign on bottom of window.
Click "+" to add target back to list. Choose correct target and name.
After all everything should works.
I moved pods in Podfile outside from the target. File changes from this:
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!
target 'MyProject' do
pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'
end
To this:
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!
pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'
target 'MyProject' do
end
Add the relevent xcconfig files to your project. Cocoapods will have created them but you can't set them in Xcode until they are in the project.
You probably want to add them to the Pods group where the other pods xcconfig files are. Right click and add files.
Search for xcconfig files in your project folder or look in Pods/Target Support Files/[TARGET_NAME]/ (I have different cocoapods configured for each target (extension and main project this may be slightly different in your case)
Go to project configurations in the Info of your main project
For each target and configuration set the appropriate pods configuration.
pod install again and you should see no errors.
So for me, the problem was due to the aforementioned xcconfig files names being changed before the Swift 3 update took place.
Something was out of sync, so Cocoapods created a 'Recovered References' folder section with the old named files, and linked to them.
To fix this, I:
Removed the 'Recovered References' folder and the containing old
.xcconfig files from Xcode and file system
Quit Xcode
Run pod install
Everything was handled for me after then, and the warnings were gone.
I was able to build the project touched by this issue on XCode 6 by:
selecting Project from the Project Navigator
choosing Project instead of Target
going to Info tab
choosing Pods.(debug/release) Configuration Files from the combobox for the respective Configurations.
Hope this will help someone.
This happened to me because I already had a Pod configuration. I'm new on iOS development, was searching instructions to install Alamofire + SwiftyJSON and ended up installing the libraries more than once, inadvertently. To me, what worked was: on the folder "Target Support Files" in "Pods" project, I selected the two correct .xcconfig files and dragged them to the "Pods" folder of my app project. This enabled the selection of the correct config files on the base configuration.
But then, if I run "pod install" again, the warning will change to the previous .xcconfig file. I try to delete the files and the old framework from the main project but when i ran the previous command once more, gave me the same warning, and created the file "Pods.framework" under the "Pods" folder of my app project. I ignored it, and it seems to be running ok, despite the two frameworks. I don't know if it's right, and a solution, if exists, it would be welcomed.
I had error:
diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock.
I just checked the path where I was installing the pod and corrected it and installed again,It just worked.
Make sure give the path just before where .xcodeproj or .xcworkspace (if it is already there) exists.
Sorry my previous answer was unclear. This was just one of many errors i've got while trying to set up Cloud Firestore, so this answer is specific for that situation. In order to solve this error and make firebase work, eventually, you have to follow all of the steps from this page: https://firebase.flutter.dev/docs/firestore/overview/ . If you are having problems with generating the 'firebase_options.dart' file, then you need to follow the steps on this page: https://firebase.google.com/docs/cli#mac-linux-auto-script . The last step is optional, but it reduces build time, and I really don't know how or why, but it made some of other errors also disappear... Step 4. Improve iOS & macOS build times, from this page https://firebase.flutter.dev/docs/firestore/overview/. And off course, don't forget to add dependencies in pubspec.yaml: https://pub.dev/packages/firebase_core/install . There is also a great comment here about using Firebase.initializeApp() : https://stackoverflow.com/a/63492262/17626190
Seems a good ole system restart and probably more importantly it seems I had to reinstall cocoa pods even though the CLI seemed to be in perfectly working condition and had been working for many days before today.
Reinstalled CocoaPods 🤷
sudo gem install cocoapods
It doesn't seem this was the fix for anyone else, but I figured I should post it since this was driving me nuts, and hopefully it helps at least one other person.
This is the messages I got after running pod install or pod update:
[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `Runner` to `Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig` or include the `Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig` in your build configuration (`Flutter/Debug.xcconfig`).
[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `Runner` to `Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig` or include the `Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig` in your build configuration (`Flutter/Release.xcconfig`).
[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `Runner` to `Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig` or include the `Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig` in your build configuration (`Flutter/Release.xcconfig`).
This is what I did to solve the issue:
Add Schemes to Podfile under project 'Runner'
project 'Runner', {
'Debug' => :debug,
'Debug-staging' => :debug,
'Profile' => :release,
'Profile-staging' => :release,
'Release' => :release,
'Release-staging' => :release,
}
Go to ios/Flutter/Debug.xcconfig and include
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig"
Go to ios/Flutter/Release.xcconfig and include
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig"
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig"
flutter clean
Delete podfile.lock
Pub get
pod install
Just follow the Android Studio instructions.
This is the error output:
"[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `Runner` to `Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig` or include the `Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig` in your build configuration (`Flutter/Release.xcconfig`)."
In android studio IDE go to IOS folder/Flutter and open the file Release.xconfig
Then just past this line:
Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig
Delete podfile.lock and try to rebuild in Xcode. Worked for me.
The simplest solution for this (after having this issue multiple times):
Delete Podfile & Podfile.lock from your project library (save Podfile somewhere so you could easily paste to new Podfile)
run 'pod init'
Edit the 'Podfile' to your will (add pods you are using)
run 'pod install'
This would recreate everything and works always in minutes (not spending time to reverse engineer the "bug").
So everytime we run a pod update, the pods project gets regenerated. Whatever build settings we manually set in the pods project is reset.
I'm wondering if theres anyway to set some build settings of the targets in the pods project after the pod project is generated by a pod update?
Any help is appreciated.
After a few hours of twiddling with cocoapods and reading documentation, I have come up with the following solution:
In your podspec file, there is an option to specify the xcconfig to be generated, set the following:
s.xcconfig = {'TEST_AFTER_BUILD' => 'YES', 'GCC_GENERATE_TEST_COVERAGE_FILES' => 'YES'}
In my case i needed to generate coverage files from the pods project.
This will in turn be generated in the xcconfig file after the pod update and hence be included in the pods project.
Pod is design to automatically set those build settings so that you don't have to,
If you are talking about the build setting in your own project, normally cocoaPods will not touch those settings.