2017-08-24 447 views
3

我想创建一个与CoreData模型内的pod。我已按照提示使用resourcesreserve_path。但是,当我尝试lint规范与pod lib lint有这个奇怪的错误,我甚至不明白:CocoaPod spec:无法找到Model.xcdatamodeld的其他来源参考

- ERROR | [iOS] unknown: Encountered an unknown error (Unable to find other source ref for /Users/rzolin/Projects/ArmorText/iOS-Pod-Test/SampleMessengerCocoapodFramework/SampleMessengerCocoapodFramework/Code/DataManagement/Model/Model.xcdatamodeld/Model.xcdatamodel/contents for target SampleMessengerCocoapodFramework.) during validation. 

该规范是基于几个subspecs,这可能有点复杂的问题。到目前为止,在互联网上搜索没有产生任何帮助。

有一个test spec复制错误,如果有人愿意看看。

完整的规范是在这里:

Pod::Spec.new do |s| 
    s.name    = 'SampleMessengerCocoapodFramework' 
    s.version   = '0.2.0' 
    s.summary   = 'some desc' 

    s.description  = <<-DESC 
    some desc 
    DESC 

    s.homepage   = 'http://www.example.com' 
    s.license   = { :type => 'MIT', :file => 'LICENSE' } 
    s.author   = { 'rzolin' => '[email protected]' } 
    s.source   = { :git => 'https://github.com/rzolin/SampleMessengerCocoapodFramework.git', :tag => s.version.to_s } 

    # Platform setup 
    s.requires_arc = true 
    s.ios.deployment_target = '8.0' 

    s.default_subspec = 'Core' 

    ### Subspecs 
    s.subspec 'Core' do |cs| 
     cs.dependency 'SampleMessengerCocoapodFramework/DataManagement' 
     cs.dependency 'SampleMessengerCocoapodFramework/Networking' 
    end 

    s.subspec 'DataManagement' do |ds| 
    ds.source_files = 'SampleMessengerCocoapodFramework/Code/DataManagement.h', 'SampleMessengerCocoapodFramework/Code/DataManagement/**/*' 
     ds.resources = [ 'SampleMessengerCocoapodFramework/Code/DataManagement/Model/Model.xcdatamodeld', 'SampleMessengerCocoapodFramework/Code/DataManagement/Model/Model.xcdatamodeld/*.xcdatamodel' ] 
     ds.preserve_paths = 'SampleMessengerCocoapodFramework/Code/DataManagement/Model/Model.xcdatamodeld' 
    end 

    s.subspec 'Networking' do |ns| 
    ns.source_files = 'SampleMessengerCocoapodFramework/Code/Networking.h', 'SampleMessengerCocoapodFramework/Code/Networking/**/*.{h,m,swift}' 
    end 

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

    # s.public_header_files = 'Pod/Classes/**/*.h' 
    # s.frameworks = 'UIKit', 'MapKit' 
    # s.dependency 'AFNetworking', '~> 2.3' 
end 

我试着问的CocoaPods的question,但在这里

提到任何帮助,将不胜感激!

+0

做你管理找到解决这个问题的办法? – Mateusz

回答

0

我有同样的问题,通过包括SampleMessengerCocoapodFramework/Code/DataManagement/**/*要包括所有文件(这样荚尝试包括.xcdatamodel/xcdatamodeld文件,这就是你的错误。

我建议从源头文件coredatamodel

s.source_files = 'SampleMessengerCocoapodFramework/Code/DataManagement/**/*.{h,m}'

并保留其余部分是,它应该工作!

2

我有同样的问题和错误消息你。 我想在我的pod中拥有.xcdatamodel。 这里是我的解决方案:

  1. 只添加您的代码在SOURCE_FILES:

    s.source_files = 'MyPodDiR/**/*.{h,m,swift,xcdatamodeld}' 
    
  2. 添加您xcdatamodel路径作为资源:

    s.resources = 'MyPodDir/CoreData/MyPodModel*.xcdatamodeld'