加载.xib文件时,Cocoapod编译失败

时间:2014-09-17 08:24:50

标签: ios objective-c cocoapods

我把它推到了行李箱里。然后我做了#34; pod install"在我自己的项目中,所有文件都已下载(我可以在我的项目中从Pods确认)。但它没有编译,它给了我这个错误

"Unable to run command 'StripNIB ABPhotoView.nib' - this target might include its own product."

4 个答案:

答案 0 :(得分:9)

找到了解决方案。请按照以下说明:

而不是在s.source_files中添加对该文件的引用,我把它放在s.resources中,如下所示

s.resources = [" images / * .png"," classes / MyView.xib"]

有关详细信息,请https://github.com/bennyguitar/CollapseClick/issues/14

答案 1 :(得分:1)

太疯狂了!曾经有过这样的podspec字符串

的问题
  

s.resources =" Project / ** / *。{png,bundle,xib,nib}"

更改为

  

s.resource =" Project / ** / *。{png,bundle,xib,nib}"

解决了这个问题。

答案 2 :(得分:1)

似乎语法已经发展,可能是因为新的Cocoapods版本(1.0)

使用描述为here的模板创建pod时,.podspec将包含一些注释行以包含资源(如.png或.xib)

#  s.resource_bundles = {
#   'MyMarvelousComponent' => ['MyMarvelousComponent/Assets/*.png']
#  }

取消注释,将.png更改为要包含的内容,然后将文件移动到Assets /文件夹(因为,这是应该包含的文件夹)

注意Cocoapods会自动在Products / group中创建.bundle,因此如果您需要在示例项目中使用这些资源,则需要先选择正确的NSBundle

答案 3 :(得分:0)

podspec文件不正确时,我遇到了同样的问题。我的错误是我没有为.h指定.msource_files扩展名。因此,.xib个文件被添加了两次。这是一个正确的示例:

  s.source_files = 'YourTarget/Classes/**/*.{h,m}'

  s.resources = ['YourTarget/Classes/UIComponents/**/*.xib']

请参见https://guides.cocoapods.org/syntax/podspec.html#source_files