CocoaPod规格:无法找到Model.xcdatamodeld的其他源参考

Rom*_*lin 5 ios cocoapods

我试图创建一个带有CoreData模型的容器。我遵循了使用resources和的提示reserve_path。但是当我尝试lint使用规格时pod lib lint,会出现一个我什至不明白的奇怪错误:

- 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.
Run Code Online (Sandbox Code Playgroud)

该规范基于几个子规范,这可能会使问题复杂化。到目前为止,在Internet上搜索没有任何帮助。

如果有人愿意看的话,有一个测试规范可以复制该错误。

完整的规格在这里:

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' => 'rzolin@gmail.com' }
    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
Run Code Online (Sandbox Code Playgroud)

我试图在Cocoapods中问这个问题,但是在这里被提到了

任何帮助,将不胜感激!

小智 8

我有与您相同的问题和错误消息。我想把.xcdatamodel豆荚放在我的豆荚里。这是我的解决方案:

  1. 仅在source_files中添加代码:

    s.source_files = 'MyPodDiR/**/*.{h,m,swift,xcdatamodeld}'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将您的xcdatamodel路径添加为资源:

    s.resources = 'MyPodDir/CoreData/MyPodModel*.xcdatamodeld'
    
    Run Code Online (Sandbox Code Playgroud)


小智 0

我遇到了同样的问题,通过包含SampleMessengerCocoapodFramework/Code/DataManagement/**/*您将包含所有文件(因此 Pod 尝试包含这些.xcdatamodel/xcdatamodeld文件,这就是您收到错误的地方。

coredatamodel我建议从源文件中删除。

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

并保持其余部分不变,它应该可以工作!