Cocoa pods和Watchkit Extension

时间:2015-04-08 15:55:37

标签: ios xcode6 cocoapods watchkit

我尝试为我的应用程序构建一个WatchKit扩展程序......

我更新了pods文件,如下所示:

platform:ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

link_with 'my-team-ios', 'My Team WatchKit Extension'

def shared_pods
    pod 'DOSingleton'
    pod 'JSONModel'
    pod 'MagicalRecord'
end

target :'My App' do
    shared_pods
    pod 'Facebook-iOS-SDK', '~> 3.23.1'
    pod 'Reveal-iOS-SDK', :configurations => ['Debug']
    ... some more pods here...
end

target :'My Team WatchKit Extension' do
    shared_pods
end

我如何安装pod并且没有出错...

但是,当我构建应用程序时,我收到此错误:

ld: framework not found Pods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这里有什么问题?

8 个答案:

答案 0 :(得分:3)

使用CocoaPods时,需要打开xcworkspace文件而不是项目文件。

答案 1 :(得分:2)

问题是当更新到cocoapods 0.36.x时,他们现在正在从每个pod库中创建Frameworks。请参阅blog post about it.

这会导致任何依赖于其他pod的pod库出现问题,以及它们在import语句中引用它们的方式,以及代码如何导入它们。 Pod进程现在将它们转换为框架,以及何时将它们导入为

#import "ThisOtherPodClass.h"

现在需要导入为

#import <ThisPodsFrameworkName/ThisOtherPodClass.h>

答案 2 :(得分:2)

有一个新版本的可可豆荚.38,旨在支持WatchKit。但是,如果要使用当前版本,请检查o确保将libPods.a添加到目标,包含的库和框架中的WatchKit扩展。其次,确保在General标签中将Pods.debug和Pods.release添加到Watchkit扩展

答案 3 :(得分:1)

https://github.com/CocoaPods/CocoaPods/issues/3382

neonichu于2015年4月15日发表评论 首先要确保OTHER_LDFLAGS不会被项目和目标中不必要的东西覆盖。

在buids设置中设置OTHER_LDFLAGS解决了我的问题。

答案 4 :(得分:1)

我正在使用 Pod 1.2.1 并遇到同样的问题,即没有这样的模块XYZ,对于遇到同样问题的人来说,我做了什么来克服它:

use_frameworks!

def shared_pods
    pod 'XYZ'
end

target 'MyApp' do
    platform :ios, '8.0'

    shared_pods

    pod 'Blah'
    pod 'blah'

end

target 'Watch Extension' do
    platform :watchos, '3.2'
    shared_pods 
end

我刚刚在每个目标下添加了平台,例如之前遗失的platform :watchos, '3.2',它解决了我的问题。

答案 5 :(得分:0)

尝试更改此行

target :'My App'target :'My Team WatchKit Extension'

并删除冒号:

target 'My App'target 'My Team WatchKit Extension'

答案 6 :(得分:0)

我为我找到了“暂时解决方案”: 切换回CocoaPods 0.35

现在一切正常,我对项目/ pod文件的任何更改(除了删除'use_frameworks!')

我认为,这不应该是最终解决方案......

通过再次升级到0.36的短暂测试引起了与以前相同的问题...

Here is a link to the GitHub Issue:

答案 7 :(得分:0)

重命名目标,使其不包含任何空格 - &gt; MyTeamWatchKitExtension既可以在podfile中也可以在General中使用 - &gt;目标。这解决了我的问题