2015-10-12 67 views
1

我正在使用Cocoapods进行依赖管理,同时编写Swift 2.0应用程序,并且一些依赖项要求我使用'use_frameworks!'。用于Swift的链接器命令Cocoapods发布方案失败

我定义了我的依赖关系并运行pod安装,到目前为止所有内容都编译和构建得很好。这是pod文件。

platform :ios, '9.0' 

use_frameworks! 

target 'MyTarget' do 
    pod 'Google/Analytics', '~> 1.0' 
    pod 'KeychainSwift', '~> 3.0' 
    pod 'SwiftDate', '~> 1.2' 
end 

target 'MyTargetTests' do 

end 

当我为我的目标创建一个新的Scheme时,问题就到了。我只有一个目标,但是我想基于如果为“调试”或“发布”构建一个基于API url的配置文件。

因此,我创建了一个新的方案,从我的默认方案中复制它,并且只将生成配置从调试更改为发布。

现在,当我建立我得到这个错误:

ld: library not found for -lPods-MyTarget 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

如果我去我的项目中框架文件夹,试图建立与发行后的配置,我看到libPods,MyTarget.a文件是红色的,因此丢失。

如果我然后再次构建调试,一切正常,文件libPods-MyTarget.a不再是红色。所以我打开了我的项目构建到的文件夹。

  • 调试,iphoneios //这一个有libPods-MyTarget.a文件
  • 发布 - iphoneios //这一个不具备libPods-MyTarget.a文件

某处,不知何故发布配置,对于我的发布方案,并没有将pod框架移入它,而调试配置却没有。我无法弄清楚为什么。

问题是,如何将Pod框架链接到两个Schemes及其各自的“调试”和“发行”文件夹?

回答

1

我最终删除的CocoaPods完全跟随这名(去掉了导向环,因为它不再可用)

然后,我只是做了pod install,一切工作现在,对于我的方案。我不知道为什么,或者如何,并为此感到抱歉。但现在我可以再次构建我的应用程序。我希望这对某人有帮助。

+1

该指南消失了,但能够将椰子树干炸成核心指令。 – Alper

+0

感谢您告诉我关于指南alper的信息,但我认为您需要做的只是使用新的现有方案重新安装pod,因此pod也会为该目标建立依赖关系,然后转到Pod目标Xcode,并告诉它使用哪个配置。 –

+1

我发现有这样一个命令:pod解体。所以每次我复制一个配置我都这么做。另请参阅此问题:https://github.com/CocoaPods/CocoaPods/issues/5246 – Alper

相关问题