Cocoapods警告-CocoaPods未设置项目的基本配置,因为您的项目已具有自定义配置集


330

pod install项目的基础上执行a之后,出现以下错误:

CocoaPods未设置项目的基本配置,因为您的项目已具有自定义配置集。为了使CocoaPods集成完全正常工作,请将目标的基本配置设置为BluePlaquesLondonFrameworkPods/Target Support Files/Pods/Pods.debug.xcconfig或将其包含Pods/Target Support Files/Pods/Pods.debug.xcconfig在您的构建配置中。

这听起来像是一个愚蠢的问题,但是如何为目标设置基本配置?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile是导致此问题的Podfile。

如果您想知道项目的外观,则iOS 8分支上的http://github.com/seanoshea/BluePlaquesLondon是有问题的Podfile。


2
这有点题外话,但是;我只想警告您有关iOS-KML-Framework的信息。它使用TBXML的1.5版,这有点bug。如果您的Feed中出现格式错误的XML,则您的应用将崩溃。您可能想为iOS-KML-Framework创建一个私有的fork,在其中您可以从podspec中删除“ 1.5”,而仅使用TBXML的HEAD。这似乎解决了很多问题。
churowa 2014年

请更新标题,以包含更多实际警告。例如:“ CocoaPods未设置配置警告”。
戴维·詹姆斯

更新了标题@DavidJames。如果您觉得有点罗word,很高兴再次对其进行更改。
seanoshea 2015年

4
现在它是我在stackoverflow上看到的最长的标题之一。
克拉斯

github.com/CocoaPods/CocoaPods/issues/2633有一个很好的解决方法-将所有配置都设置为None,然后运行“ pod install”
David Airapetyan

Answers:


583

我遇到了同样的问题,但是在Xcode 6.1.1中-解决该问题的方法是将None与Pods相关的两个目标的配置文件设置更改为,然后pod install再次运行。

通过选择项目(而非目标),然后选择“信息”选项卡,可以找到配置文件设置。


144
通过选择项目(而非目标)然后选择“信息”选项卡,可以找到此设置。
Grav 2014年

34
它有助于进行更改,然后退出xcode,运行pod install,然后重新打开。在此期间不要保持Xcode打开。
塞巴斯蒂安·罗斯

1
这为我解决了。我的配置指向一个旧的xcconfig名称,该名称发生了变化,因为我在Podfile中添加了两个显式目标(一个用于测试的主要项目),导致生成了具有不同名称的新配置文件。
2015年

10
对于那些和我一样担心的人,None将其设置为会破坏东西pod install
马修

4
xcode 10中的此设置在哪里?遍历所有选项卡,找不到它
JenonD

166

不要修补,重置。

一步步

  1. 显示项目导航器
  2. 选择项目
  3. 选择 Info
  4. 在“ 配置”中,一次选择一个(调试,ApplicationUnitTest,Release等),然后为所述配置中的每个目标将配置设置为“ 无”
  5. 确保“ 基于配置文件”读取每个配置的“ 0个配置集”或“ 无配置集 ” 。这就是症结所在。 0配置集
  6. 退出 Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

一旦pod install一步一步7地实现了它的魔力,您就可以使用自定义配置并更改您的配置。


10
这应该是可以接受的答案,以前对我来说都不是显而易见的。
Evgeniy Kleban 2015年

Pods正如其他答案中所建议的那样,使用配置至少不能解决我的问题:构建设置已经与Pods.debug&匹配Pods.release,这就是问题所在。是什么做的是0配置设置每个配置。答案不尽相同。
SwiftArchitect

这也对我有用。仅需注意,您必须从目标更改为项目才能查看配置。我搜索了很长时间,直到偶然发现了下拉菜单。
marty331'2016-4-28

如果可以的话,我将投票一百次。在将4个开发人员分支合并到具有自定义配置文件的iOS应用程序中的3个扩展并合并了4个开发人员分支之后,经过30小时的Jenkins构建过程,在可可豆荚中的check manifest.lock脚本上进行了轰炸,最终解决了该问题。(还有很多其他事情,但这是最终的解决方法)。:干杯:
Augie

“ [!]无法确定以下Pod的Swift版本:”
理查德(Richard)

138

进入XCode并打开项目设置,在“信息”选项卡下,您将看到“配置”,可以在其中设置调试和发布的配置文件。您显然已经将它们设置为某些自定义配置,并且CocoaPods希望/需要您使用Pods配置。

这是一个屏幕截图


7
请注意,如果您实际上需要出于实际目的使用自定义配置,则这不能解决问题。看到这个未解决的问题
funroll

1
Xcode 6中没有发生任何更改使此答案不正确
夸克2015年

另一个问题,但这为我解决了我的问题。在UI测试中使用可可豆荚,这东西挽救了我的生命!谢谢。
Akshit Zaveri

70

遇到同样的问题。它可以在模拟器上构建,但不能在我的设备上构建。没有任何答案可以为我解决这个问题。这是我拼凑出的一些答案:

  1. 将我的pods文件更改为使用特定目标:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. 跑荚安装

  3. 这给出了一个错误: [!] 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.
  4. 转到项目设置,然后单击信息选项卡。无法找到配置文件时将出现错误。将其设置为“无”以进行调试和发布。
  5. 再次运行pod install
  6. 清洁并建造。这可行。

1
在步骤4和5之间,我总是关闭xcode。在pod安装过程中运行xcode时出现问题。
雷·亨特

自己在创建自定义方案时遇到了这种情况。上面的代码也可以在Xcode 7中使用。我建议@srayhunter在安装过程中关闭Xcode的建议。
subv3rsion 2015年

1
我希望我可以投票一次以上。这让我无时无刻不在。
比尔·伯吉斯

16

您还应该确保在的根中没有容器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.alibPods-app.a从目标相关性,进行清洁,然后再运行pod install一次。


10

添加一些自定义构建配置后,我才遇到此问题。我可以在下面看到:

Pods (target) > Target Support Files > Pods

它实际上已经创建了xcconfig与新的构建配置匹配的新文件,但是由于某种原因,我无法在我的应用程序的项目目标中选择这些文件。

对我来说固定的是安装和使用cocoapods-deintegrate

gem install cocoapods-deintegrate

然后运行:

pod deintegrate

其次是:

pod install

2
这对我有帮助。
克里希南,2016年

7

产生问题的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

这对我来说效果很好。我已经按照接受的答案设置了Cocoapods配置,但是仍然看到警告。那么,为什么在没有的时候起作用link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']呢?
churowa 2014年

6

如果您在现有项目中添加了自定义构建配置,Cocoapods将会对此抱怨。

Cocoapods将Pods/Target Support Files/<build_target>按照命名模式在目录下自动创建xcconfig文件Pods-<build_target>.<build_config>.xcconfig

只需确保手动将这些文件添加到Xcode中的项目中即可(在Pods目录下,但不在Pods项目中!)。包含这些文件后,在Xcode中选择您的项目,转到“信息”标签,然后展开自定义配置。为您的自定义配置下的每个目标选择适当的xcconfig文件。


4

安装Pod时出现相同的错误。我尝试了所有操作(重新安装Pod,更新所有gems等),然后发现解决方案适用于我的情况。由于更改目标名称而出现问题。在这种情况下,解决方案很简单:

  1. 单击产品->方案->管理方案...
  2. 在列表上单击目标,然后在窗口底部用“-”号将其删除。
  3. 单击“ +”将目标添加回列表。选择正确的目标和名称。

毕竟,一切应该正常。


3
  1. 将relevent xcconfig文件添加到您的项目中。Cocoapods将创建它们,但是您不能在Xcode中设置它们,直到它们在项目中。
    • 您可能要将它们添加到其他Pod xcconfig文件所在的Pods组中。右键单击并添加文件。
    • 在您的项目文件夹中搜索xcconfig文件或查找Pods/Target Support Files/[TARGET_NAME]/(我为每个目标配置了不同的cocoapods(扩展名和主项目,这可能与您的情况略有不同))
  2. 在主项目的信息中转到项目配置
  3. 为每个目标和配置设置适当的Pod配置。
  4. pod install 再次,您应该不会看到任何错误。

3

我将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

2

如果您使用的是自定义配置,则可以按照警告中的建议进行操作,并将Pod配置包含在配置文件中

     #include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"

这不会停止警告,但会允许您使用私有配置(CocoaPods项目的警告中存在打开的错误) https://github.com/CocoaPods/CocoaPods/issues/2633


2
感谢您添加不会牺牲您当前项目设置的答案。
丹·伦纳德

1

因此对我而言,问题是由于在进行Swift 3更新之前更改了上述xcconfig文件名。

某些内容不同步,因此Cocoapods用旧的命名文件创建了“ Recovered References”文件夹部分,并将其链接。

为了解决这个问题,我:

  1. 从Xcode和文件系统中删除了'Recovered References'文件夹和包含旧的.xcconfig文件
  2. 退出Xcode

  3. 运行Pod安装

从那以后,一切都为我处理,警告消失了。


0

我可以通过以下方式在XCode 6上构建此问题所涉及的项目:

  • 从项目浏览器中选择项目
  • 选择项目而不是目标
  • 转到信息标签
  • 从组合框中为相应的配置选择Pods。((调试/发布))配置文件。

希望这会帮助某人。


0

这发生在我身上,因为我已经有一个Pod配置。我是iOS开发的新手,正在搜索安装Alamofire + SwiftyJSON的说明,最终无意间安装了库。对我来说,有效的方法是:在“ Pods”项目中的“ Target Support Files”文件夹中,我选择了两个正确的.xcconfig文件,并将它们拖到我的应用程序项目的“ Pods”文件夹中。这样就可以在基本配置上选择正确的配置文件。

但是,如果我再次运行“ pod install”,则警告将更改为以前的.xcconfig文件。我尝试从主项目中删除文件和旧框架,但是当我再次运行上一个命令时,给了我同样的警告,并在我的应用程序项目的“ Pods”文件夹下创建了文件“ Pods.framework”。我忽略了它,尽管有两个框架,它似乎运行正常。我不知道这是否正确,如果有解决方案,它将受到欢迎。


这并不能真正回答问题。如果您有其他问题,可以点击提问进行提问。一旦您有足够的声誉,您还可以悬赏以吸引更多对此问题的关注。
Petro Korienev 2015年

感谢您的解释Petro。我只是想分享对我有用的结果(带有警告,但仍然),但是将来我会更加小心。
Pablo

0

我有错误:

差异:/../Podfile.lock:无此类文件或目录差异:/Manifest.lock:无此类文件或目录错误:沙箱与Podfile.lock不同步。

我第一次从bitbucket提取请求。我清理了项目并尝试了所有操作(pod安装,pod更新等),但以上答案均对我没有帮助。然后我只是检查我安装Pod的路径,并对其进行更正并再次安装,它就可以了。确保在存在.xcodeproj或.xcworkspace(如果已经存在)的位置之前给出路径。可能有人从中受益。


-2

最简单的解决方案(多次出现此问题之后):

  1. 从您的项目库中删除Podfile和Podfile.lock(将Podfile保存在某个位置,以便您轻松粘贴到新的Podfile)
  2. 运行“ pod init”
  3. 根据需要编辑“ Podfile”(添加您正在使用的Pod)
  4. 运行“ pod install”

这将重新创建所有内容,并且始终可以在数分钟内完成工作(无需花费时间来对“错误”进行反向工程)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.