在我的项目基础上执行 pod install
后,我收到以下错误:
CocoaPods没有设置项目的基本配置,因为您的项目已经有自定义配置集 . 为了使CocoaPods集成完全可用,请将目标BluePlaquesLondonFramework的基本配置设置为Pods / 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 .
17 回答
我将Podfile中的pod从目标移到了外面 . 文件更改:
对此:
我能够通过以下方式在XCode 6上构建此问题所触及的项目:
从Project Navigator中选择Project
选择Project而不是Target
转到“信息”标签
选择Pods . (调试/释放)组合框中的配置文件用于相应的配置 .
希望这会对某人有所帮助 .
进入XCode并打开项目设置,在Info选项卡下,您将看到“Configurations”,您可以在其中为Debug和Release设置配置文件 . 你显然已经将这些设置为一些自定义配置,CocoaPods希望/需要你使用Pods配置 .
如果您为现有项目添加了自定义构建配置,Cocoapods会抱怨它 .
Cocoapods将根据命名模式
Pods-<build_target>.<build_config>.xcconfig
在目录Pods/Target Support Files/<build_target>
下自动创建xcconfig文件 .只需确保在Xcode中手动将这些文件添加到项目中(在Pods目录下,但不在Pods项目中!) . 包含这些文件后,在Xcode中选择项目,转到“信息”选项卡,然后展开自定义配置 . 为自定义配置下的每个目标选择适当的xcconfig文件 .
podfile中产生问题的行是:link_with ['BluePlaquesLondon','BluePlaquesLondonFramework'] .
只需要这个:link_with ['BluePlaquesLondon']或者这个(在我的情况下工作,希望它会在你的:-)):
您还应该确保
Podfile
的根目录中没有pod,您应该定义在许多目标中使用的所有pod:您还可能需要从目标依赖项中删除
libPods.a
和libPods-app.a
,执行清理,然后再次运行pod install
.如果您使用的是自定义配置,则可以按照警告中的建议进行操作,并在配置文件中包含Pod配置
这不会停止警告,但会允许你使用你的私人配置(CocoaPods项目的警告有一个开放的bug)https://github.com/CocoaPods/CocoaPods/issues/2633
最简单的解决方案(多次出现此问题后):
从项目库中删除Podfile和Podfile.lock(将Podfile保存到某处,以便您可以轻松粘贴到新的Podfile)
运行'pod init'
根据您的意愿编辑'Podfile'(添加您正在使用的广告连播)
运行'pod install'
这将重新创建所有内容并在几分钟内完成工作(不花时间对“bug”进行逆向工程) .
将相关的xcconfig文件添加到项目中 . Cocoapods会创建它们但你不能在它们进入项目之前在Xcode中设置它们 .
您可能希望将它们添加到其他pod xcconfig文件所在的Pods组 . 右键单击并添加文件 .
在项目文件夹中搜索xcconfig文件或查看
Pods/Target Support Files/[TARGET_NAME]/
(我为每个目标配置了不同的cocoapods(扩展和主项目,在您的情况下可能略有不同)转到主项目信息中的项目配置
为每个目标和配置设置适当的pod配置 .
pod install
再次,您应该看到没有错误 .我有错误:
diff:/../Podfile.lock:没有这样的文件或目录diff:/Manifest.lock:没有这样的文件或目录错误:沙箱与Podfile.lock不同步 .
我第一次从bitbucket请求了 . 我清理了我的项目并尝试了所有内容(pod安装,pod更新等),但上述答案都不适合我 . 然后我只检查我安装pod的路径并更正它并重新安装,它只是工作 . 确保在.xcodeproj或.xcworkspace(如果已经存在)之前提供路径 . 也许有人会从中受益 .
陷入同样的问题 . 它将 Build 在模拟器上但不在我的设备上 . 没有一个答案能解决这个问题 . 这是我做的拼接一些答案在一起:
Ran pod安装
这给出了一个错误:
[!] 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
MyProjectto
Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfigor include the
Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfigin your build configuration.
转到项目设置,然后单击信息选项卡 . 如果找不到配置文件,将会出现错误 . 将其设置为"None"以进行调试和释放 .
再次运行pod install
清洁和建造 . 这很有效 .
所以对我来说,问题是由于在Swift 3更新发生之前更改了前面提到的xcconfig文件名 .
有些东西不同步,所以Cocoapods用旧的命名文件创建了一个“Recovered References”文件夹部分,并链接到它们 .
要解决这个问题,我:
从Xcode和文件系统中删除了'Recovered References'文件夹和包含旧的.xcconfig文件
退出Xcode
运行pod安装
在那之后,一切都被我处理了,警告也没了 .
我遇到了同样的问题,但在Xcode 6.1.1中 - 为我修复的是将两个Pods相关目标的配置文件设置更改为
None
,然后再次运行pod install
.通过选择项目(而不是目标),然后选择“信息”选项卡,可以找到配置文件设置 .
这发生在我身上,因为我已经有了Pod配置 . 我是iOS开发的新手,正在搜索安装Alamofire SwiftyJSON的说明,最后不经意间不止一次安装了这些库 . 对我来说,有用的是:在“Pods”项目中的“Target Support Files”文件夹中,我选择了两个正确的.xcconfig文件并将它们拖到我的app项目的“Pods”文件夹中 . 这样就可以在基本配置上选择正确的配置文件 .
但是,如果我再次运行“pod install”,警告将更改为之前的.xcconfig文件 . 我尝试从主项目中删除文件和旧框架,但是当我再次运行上一个命令时,给了我相同的警告,并在我的应用程序项目的“Pods”文件夹下创建了文件“Pods.framework” . 我忽略了它,它似乎运行正常,尽管有两个框架 . 我不知道它是否正确,如果有解决方案,它会受到欢迎 .
pod安装时我遇到了同样的错误 . 我尝试了一切(重新安装pod,更新所有宝石等),我发现解决方案在我的情况下工作 . 由于更改了目标的名称,因此存在问题 . 在这种情况下解决方案很简单:
点击产品 - >方案 - >管理方案......
单击列表中的目标并使用窗口底部的"-"符号将其删除 .
单击"+"将目标添加回列表 . 选择正确的目标和名称 .
毕竟一切都应该有效 .
不要修补,重置 .
Step-by-step
显示项目导航器
选择项目
选择
Info
在 Configurations 中,一次选择一个,一次一个(Debug,ApplicationUnitTest,Release等),对于所述配置中的每个目标,将配置设置为 None .
确保基于配置文件读取 0 Configurations Set 或 No Configurations Set 以进行 each 配置 . 这就是症结所在 .
Quit Xcode
rm -rf Pods/ Podfile.lock ; pod install
一旦你允许
pod install
在步骤7
中做到这一点,你就可以使用自定义配置并更改配置 .我在添加一些自定义构建配置后遇到了这个问题 . 我可以看到:
它实际上创建了与新构建配置匹配的新
xcconfig
文件但由于某种原因我无法在我的应用程序的项目目标中选择这些文件 .为我修复的是安装和使用cocoapods-deintegrate:
然后运行:
其次是: