2017-01-02 6 views
2

私は自分のポッドをいくつかのリソースファイルで作成しています。私のアプリではココアポッドバンドルは利用できません

Pod::Spec.new do |s| 
s.name   = 'MyName' 
s.version  = '0.0.1' 
s.license  = { :type => 'MIT' } 
s.homepage  = 'not important' 
s.authors  = { 
    # authors 
} 
s.summary  = '…' 

# Source Info 
s.source  = { 
    # .. my sources 
} 
s.source_files = ['Sources/*.swift'] 

s.resource_bundle = {'MyNameBundle' => ['*.{storyboard,xib,png,jsbundle,meta}']} 

s.ios.deployment_target = '9.0' 

s.requires_arc = true 

エンド

ポッドがpod installにインストールされていると私はリソースファイルがMyName/Resources/で利用可能であることを見ることができます。これは、基本的にはこのように定義されます。ここまでは順調ですね。

Pods.pbxcodeprojには、2つの新しいターゲットがあることがわかります:MyNameMyNameBundle-Bundleです。

 NSBundle.allBundles().forEach { 
      print("bundle identifier: \($0.bundleIdentifier) - path \($0.bundlePath)") 
     } 

そして、それは表示されません。

しかし、事は、私はすべての利用可能なバンドルを一覧表示しようとすると、です。

私には何が欠けていますか?

答えて

0

これは答えですが、実際の動作を説明することはできません。誰かが何か考えがあるなら、私に知らせてください。

この投稿は、私を助けたくさんhttps://stackoverflow.com/a/35903720/1427775

は、だから私のポッドでは、私は正しいNSBundle

let refreshBundle = NSBundle(forClass: MyEmptyClass.self) 
    let bundleURL = newBundle.resourceURL?.URLByAppendingPathComponent("MyBundle.bundle") 

    let bundle = NSBundle(URL: bundleURL!)! 

をロードするために使用することができるように、空の迅速なクラスを追加しなければならなかったことはないようですすべてのNSBundleが起動時にロードされ、このコードは必要なバンドルのロードをトリガーします。

関連する問題