cocoapods:资源不会复制到 mainBundle
Posted
技术标签:
【中文标题】cocoapods:资源不会复制到 mainBundle【英文标题】:cocoapods: The resources are not copied to mainBundle 【发布时间】:2014-04-18 12:57:07 【问题描述】:我正在为资源而苦苦挣扎。我希望能够在我的 pod 中放置一个 nib
。其中一个类使用这个nib
。
这是 podspec:
Pod::Spec.new do |s|
s.name = "MyCBD_BSManagedDocument"
s.requires_arc = true
s.osx.platform = :osx, '10.7'
s.subspec 'MyCBD_BSManagedDocument' do |ss|
ss.source_files = 'Classes/MyCBD_BSManagedDocument/**/*.h,m'
end
s.subspec 'Auxiliary classes' do |ss|
ss.subspec 'MyCBDLockManager' do |sss|
sss.source_files = 'Classes/Auxiliary classes/MyCBDLockManager/**/*.h,m'
sss.resource_bundle = 'MyCBDLockManager' => 'Classes/Auxiliary classes/MyCBDLockManager/MyCBDLockManager.xib'
end
ss.subspec 'MyCBDSafeguardManager' do |sss|
sss.source_files = 'Classes/Auxiliary classes/MyCBDSafeguardManager/**/*.h,m'
end
end
end
很奇怪,在我的玩具项目中测试 pod,它可以工作(我可以检查 nib
是否在 mainBundle
中),但在我的实际项目中,笔尖不在 mainBundle 中,我有错误
-[MyCBDLockManager loadWindow]: failed to load window nib file 'MyCBDLockManager'.
关于如何在可可豆荚中包含资源有什么建议吗?
【问题讨论】:
【参考方案1】:由于某种原因,缺少构建阶段中的一个阶段。不过,我不知道为什么。
所以,我不得不用pod install
再次添加这个阶段。
【讨论】:
我遇到了同样的问题,pod install
没有解决这个问题。直到我注意到所有必需的构建阶段都存在于测试目标中。问题是自从 Cocoa Pods 1.0 以来发生了一些变化。核心问题是现在需要指定明确的真实目标,否则它将选择第一个(在我的情况下,它以某种方式是测试目标)。更多详情见blog.cocoapods.org/CocoaPods-1.0-Migration-Guide【参考方案2】:
如果缺少该阶段,您应该尝试再次运行 pod install
并确保您正在打开生成的 xcworkspace
。此外,您只需要 resources
而不是 resource_bundles
来获得像这样的单个 xib
。
【讨论】:
感谢您的回答。我实际上又做了一次pod install
,但它不起作用。
您可以自己重新制作构建阶段,如屏幕截图所示。
是的,我就是这么做的。但我仍然想知道为什么它不在这里!
您可以关注these instructions,然后再关注pod install
。以上是关于cocoapods:资源不会复制到 mainBundle的主要内容,如果未能解决你的问题,请参考以下文章
设置 UIAppearance 不会影响 cocoapod UI 组件