在Custom Cocoapods中使用Storyboard和Image资源

时间:2015-06-05 03:56:18

标签: ios iphone xcode cocoapods

我试图使用可可豆荚模块化大型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)

知道我可能缺少什么吗?

1 个答案:

答案 0 :(得分:4)

我有同样的问题,我解决了。

在.podspec中,您需要的唯一资源标记是:

s.resources = "MMA_Piece/**/*.{png,jpeg,jpg,storyboard,xib,xcassets}"

现在你可能会问:"当然我已经尝试了这个但它没有用?为什么现在应该有效?"

好吧,让我告诉你:D

确保您希望包含在自定义CocoaPod中的每个资源都位于底层项目目录中。在我的情况下(MMA_Piece项目),这是以下文件夹(选定的文件夹):

enter image description here

完成!如果您使用' pod install'在另一个项目中使用pod。你的资源就像这样:

enter image description here

重要提示:如果您想在其他项目中使用该资源,请说" MainProject",您将始终需要指定该捆绑包!或者" MainProject"无法找到资源!

希望这会帮助你!