2017-08-24 3 views
3

CoreDataモデルを含むポッドを作成しようとしています。私はresourcesreserve_pathを使用するためのヒントに従ってきました。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のカップル、に基づいています。私はpod lib lintlint仕様にしようとする。しかし、私も理解していない、この奇妙なエラーがあります。インターネット上での検索はこれまでのところ何の助けにもなりませんでした。

誰かが見てみたい場合は、エラーを複製するtest specがあります。

フルスペックはここにある:私はCocoapodsでquestionを依頼しようとしたが、任意の助けをいただければ幸いここ

呼ばれていました

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 

+0

はあなたが管理しなかった は、ここに私のソリューションです。この問題の解決策を見つける? – Mateusz

答えて

0

私はあなたがすべてのファイルを含めているSampleMessengerCocoapodFramework/Code/DataManagement/**/*含むことによって、同じ問題を持っていた(ので、ポッドが.xcdatamodel/xcdatamodeldファイルをインクルードしようとするとエラーが出たところだ。

私はソースファイルからcoredatamodelを削除示唆しています。 s.source_files = 'SampleMessengerCocoapodFramework/Code/DataManagement/**/*.{h,m}'

すなわち

され、それが動作するはずとして、残りをキープ!

2

私は同じ問題とエラーメッセージを持っていました 君は。 私は.xcdatamodelを私のポッドに入れたいと思っていました。

  1. はSOURCE_FILESにのみ、あなたのコードを追加します:

    s.source_files = 'MyPodDiR/**/*.{h,m,swift,xcdatamodeld}' 
    
  2. が資源としてあなたxcdatamodelのパスを追加します。

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