我试图使用可可豆荚模块化大型iOS项目(在Swift中开发)。我们的想法是创建"子应用程序"完成故事板和资产,可以整合到主项目中。
我在这种情况下使用故事板时遇到了麻烦。问题类似于(我认为): https://github.com/CocoaPods/CocoaPods/issues/2597
以下是我试图转换为pod的模块的.podspec:
lastpic
这是我用来尝试使用故事板的代码
Pod::Spec.new do |spec|
spec.name = 'GlycoAppMenuModule'
spec.version = '0.0.8'
spec.license = { :type => 'MIT', :file => 'LICENSE' }
spec.homepage = 'https://google.com'
spec.platform = :ios, "8.0"
spec.authors = { 'Abdulla Contractor' => 'abdulla.contractor@gmail.com' }
spec.summary = 'Views for menu page'
spec.source = { :git => 'https://github.com/Holmusk/GlycoAppMenuModule.git', :tag => '0.0.8' }
spec.source_files = 'GlycoAppMenuModule/*'
spec.resource_bundles = {
'resources' => ['GlycoAppMenuModule/**/*.{lproj,storyboard}']}
# spec.framework = 'Foundation'
end
这是我得到的错误
let bundlePath = NSBundle(forClass: GANavigationMenuViewController.self).pathForResource("resources", ofType: "bundle")
let bundle = NSBundle(path: bundlePath!)
let storyboard: UIStoryboard = UIStoryboard(name: "Menu", bundle: bundle)
let vc = storyboard.instantiateInitialViewController() as! UIViewController
self.presentViewController(vc, animated: false, completion: nil)
知道我可能缺少什么吗?
答案 0 :(得分:4)
我有同样的问题,我解决了。
在.podspec中,您需要的唯一资源标记是:
s.resources = "MMA_Piece/**/*.{png,jpeg,jpg,storyboard,xib,xcassets}"
现在你可能会问:"当然我已经尝试了这个但它没有用?为什么现在应该有效?"
好吧,让我告诉你:D
确保您希望包含在自定义CocoaPod中的每个资源都位于底层项目目录中。在我的情况下(MMA_Piece项目),这是以下文件夹(选定的文件夹):
完成!如果您使用' pod install'在另一个项目中使用pod。你的资源就像这样:
重要提示:如果您想在其他项目中使用该资源,请说" MainProject",您将始终需要指定该捆绑包!或者" MainProject"无法找到资源!
希望这会帮助你!