【问题标题】:CocoaPod spec: Unable to find other source ref for Model.xcdatamodeldCocoaPod 规范:无法找到 Model.xcdatamodeld 的其他源引用
【发布时间】:2017-08-24 12:46:46
【问题描述】:

我正在尝试创建一个内部带有 CoreData 模型的 pod。我已经按照提示使用resourcesreserve_path。但是,当我尝试使用 pod lib lint 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.

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

如果有人愿意看一看,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' => '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

我曾尝试在 Cocoapods 中询问 question,但在这里被提及

任何帮助将不胜感激!

【问题讨论】:

  • 你找到解决这个问题的方法了吗?

标签: ios cocoapods


【解决方案1】:

我遇到了和你一样的问题和错误信息。 我想在我的 pod 中有 .xcdatamodel。 这是我的解决方案:

  1. 仅在 source_files 中添加您的代码:

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

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

【讨论】:

    【解决方案2】:

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

    我建议从源文件中删除coredatamodel

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

    其余部分保持原样,它应该可以工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 2020-07-05
      • 2019-04-11
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      相关资源
      最近更新 更多