Cocoapods警告 – CocoaPods没有设置你的项目的基本configuration,因为你的项目已经有一个自定义的configuration集
在我的项目底部执行pod install
后,出现以下错误:
CocoaPods没有设置你的项目的基本configuration,因为你的项目已经有一个自定义的configuration集。 为了使CocoaPods集成可以工作,请将目标
BluePlaquesLondonFramework
的基本configuration设置为Pods/Target Support Files/Pods/Pods.debug.xcconfig
或者包含Pods/Target Support Files/Pods/Pods.debug.xcconfig
在你的构buildconfiguration。
这可能听起来像一个愚蠢的问题,但我如何设置目标的基本configuration?
https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile是导致此问题的Podfile。
http://github.com/seanoshea/BluePlaquesLondon在iOS 8分支上是有问题的Podfile,如果你想知道该项目是什么样子的话。
我遇到了同样的问题,但是在Xcode 6.1.1中 – 对于我来说,修改了两个与pod install
相关的目标的configuration文件设置为None
,然后再次运行pod install
。
configuration文件设置是通过select项目(不是目标),然后select信息选项卡find的。
进入XCode并打开您的项目设置,在Info选项卡下,您将看到“Configurations”,您可以在其中为Debug和Release设置configuration文件。 你显然已经将这些设置为一些自定义configuration,CocoaPods希望/需要你使用Podsconfiguration。
不要修补,重置。
一步步
- 显示项目导航器
- select项目
- select
Info
- 在“ configuration”中 ,逐个select一个(Debug,ApplicationUnitTest,Release等),对于所述configuration中的每个目标,将configuration设置为None 。
- 确保根据configuration文件读取0 Configurations Set或No Configurations Set for each configuration。 这是关键。
- 退出 Xcode
-
rm -rf Pods/ Podfile.lock ; pod install
一旦允许在步骤7
进行pod install
来实现这一点,您可以使用自定义configuration并更改configuration。
跑到同样的问题。 它将build立在模拟器上,但不在我的设备上。 没有任何答案可以解决这个问题。 以下是我在一起拼凑一些答案:
-
更改我的豆荚文件以使用特定的目标:
target :MyProject do pod 'AWSCognitoSync' pod 'Facebook-iOS-SDK' end
-
冉荚安装
- 这给出了一个错误:
[!] 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.
[!] 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.
- 转到项目设置,然后单击信息选项卡。 在找不到configuration文件的地方会出现错误。 将其设置为“无”用于debugging和发布。
- 再次运行pod安装
- 清理和build立。 这工作。
你还应该确保你在Podfile
的根目录下没有任何豆荚,你应该定义所有在这样的目标中使用的豆荚:
def shared_pods pod 'ReactiveCocoa', '~> 2.5' end target 'app' do shared_pods pod 'RestKit' end target 'tests' do shared_pods pod 'OCMock' end
您还可能需要从目标依赖项中删除libPods.a
和libPods-app.a
,执行clean,然后再次运行pod install
。
添加一些自定义生成configuration后,我刚刚遇到了这个问题。 我可以看到:
Pods (target) > Target Support Files > Pods
它实际上已经创build了与新的构buildconfiguration相匹配的新的xcconfig
文件,但由于某些原因,我无法在我的应用的项目目标中select这些文件。
对我来说固定的是安装和使用cocoapods-deintegrate :
gem install cocoapods-deintegrate
然后运行:
pod deintegrate
其次是:
pod install
生成问题的podfile中的行是:link_with ['BluePlaquesLondon','BluePlaquesLondonFramework']。
只要做到这一点:link_with ['BluePlaquesLondon']或这(工作在我的情况,希望它会在你的:-)):
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
如果您将自定义的构buildconfiguration添加到您的现有项目,Cocoapods将会抱怨。
Cocoapods会自动在命名模式Pods-<build_target>.<build_config>.xcconfig
的目录Pods/Target Support Files/<build_target>
下创buildxcconfig文件。
只要确保手动将这些文件添加到Xcode中的项目(在Pods目录下,但不在Pods项目中!)。 一旦包含这些文件,请在Xcode中select您的项目,进入“信息”选项卡,然后展开您的自定义configuration。 在您的自定义configuration下为每个目标select适当的xcconfig文件。
我在安装pod时遇到同样的错误。 我试了一切(重新安装荚,更新所有的gem等),我发现解决scheme在我的情况下工作。 由于改变目标的名字而出现问题。 在这种情况下解决scheme很简单:
- 点击产品 – >scheme – >pipe理scheme…
- 点击列表上的目标,并使用窗口底部的“ – ”号删除它。
- 点击“+”将目标添加回列表。 select正确的目标和名称。
毕竟一切都应该起作用。
- 将相关的xcconfig文件添加到您的项目中。 Cocoapods已经创build了它们,但是直到它们在项目中,才能在Xcode中设置它们。
- 您可能希望将它们添加到其他豆荚xcconfig文件所在的豆荚组中。 右键单击并添加文件。
- search项目文件夹中的xcconfig文件,或在
Pods/Target Support Files/[TARGET_NAME]/
(我为每个目标configuration了不同的cocoapods(扩展和主项目,在您的情况下可能略有不同)
- 转到主项目信息中的项目configuration
- 为每个目标和configuration设置适当的吊舱configuration。
- 再次
pod install
,您应该看到没有错误。
我在目标外的Podfile中移动了Pod。 文件从这个变化:
# 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
对此:
# 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
如果您使用自定义configuration,您可以按照警告中的build议,并在configuration文件中包含Podconfiguration
#include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"
这不会停止警告,但将允许您使用您的私人configuration(CocoaPods项目警告有一个开放的错误) https://github.com/CocoaPods/CocoaPods/issues/2633
我能够通过以下方式在XCode 6上构build此问题所触及的项目:
- 从Project Navigator中selectProject
- select项目而不是目标
- 去信息选项卡
- (debugging/释放)configuration文件从组合文件从各自的configuration的组合文件。
希望这会帮助别人。
这发生在我身上,因为我已经有了Podconfiguration。 我是iOS开发新手,正在search安装Alamofire + SwiftyJSON的指令,最终导致无意中安装了多个库。 对我来说,工作原理是:在“Pods”项目的“目标支持文件”文件夹中,我select了两个正确的.xcconfig文件,并将它们拖到我的应用程序项目的“Pods”文件夹中。 这使得能够在基本configuration上select正确的configuration文件。
但是,如果再次运行“pod install”,则警告将更改为以前的.xcconfig文件。 我尝试从主项目中删除文件和旧框架,但是当我再次运行上一个命令时,给了我相同的警告,并在我的应用程序项目的“Pods”文件夹下创build了文件“Pods.framework”。 我忽略了它,尽pipe有两个框架,但似乎运行正常。 我不知道这是否正确,如果存在解决scheme,这将是受欢迎的。
所以对我来说,这个问题是由于前面提到的xcconfig文件名在Swift 3更新发生之前被更改的。
有些东西不同步,所以Cocoapods创build了一个“恢复的引用”文件夹部分与旧的命名文件,并链接到他们。
为了解决这个问题,我:
- 从Xcode和文件系统中删除了“恢复的引用”文件夹和包含旧的.xcconfig文件
-
退出Xcode
-
运行pod安装
在那之后,一切都为我处理,警告消失了。
最简单的解决scheme(多次发生此问题之后):
- 从您的项目库中删除Podfile&Podfile.lock(将Podfile保存在某处,以便您可以轻松地粘贴到新的Podfile)
- 运行“pod init”
- 编辑“Podfile”到您的意愿(添加您使用的豆荚)
- 运行“pod安装”
这将重新创build一切,并在几分钟内始终工作(不花时间来逆向工程的“错误”)。