2017-07-13 13 views
0

私は、2つのSwiftプロジェクトがあるワークスペースを設定しました.1つは開発しているフレームワーク、もう1つはフレームワークのデモアプリケーションです。Xcodeワークスペース - フレームワークプロジェクトポッドからのインポートが見つかりません

Podfileは次のようになります。

platform :ios, '9.0' 
workspace 'foo.xcworkspace' 

target 'framework' do 
    project 'framework.xcodeproj' 
end 

target :'demo' do 
    project 'demo/demo.xcodeproj' 
    pod 'framework', :path => 'framework.podspec' 
end 

.podspecファイルは次のようになります。

Pod::Spec.new do |s| 
    s.name   = 'framework' 
    s.authors  = { "foo author" } 
    s.version  = '0.1.0' 
    s.summary  = 'foo summary.' 
    s.homepage  = 'foo homepage' 
    s.platform  = :ios, '9.0' 
    s.license  = { 
     :type => "Proprietary", 
     :file => "LICENSE" 
    } 
    s.source  = { 
     :git => 'https://url.to/foo.git', 
     :tag => s.version.to_s 
    } 
    s.source_files = 'framework/framework/**/*.{swift,h,m}' 
    s.requires_arc = true 
    s.weak_framework = "XCTest" 
    s.pod_target_xcconfig = { 
     'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"', 
    } 
end 

pod installを実行した後、Xcodeの/ AppCodeはまだフレームワークプロジェクトからクラスを見ることができません。私は適切にデモアプリケーションのプロジェクトは、フレームワークのプロジェクトからクラスを参照してください持ってしなければならない何

Error:(13, 21) use of undeclared type 'FooClass'

:私はデモアプリケーションでクラスに手動インポートを追加してコンパイルしようとするのであれば、それはで失敗します生成されたポッド?

+0

objcブリッジヘッダーファイル内で.hファイルをインポートしましたか? (あなたのポッドが目的にある場合は) – cloudcal

+0

接続が正しく行われる前にビルドを一度実行する必要がある場合もあります。 – Thomas

+0

ポッドはスイフトにあります。 – BadmintonCat

答えて

0

デモターゲットでinherit! :search_pathsを試してください これは、自分のポッドのコピーを取得しないことを意味しますが、ヘッダファイルを介して存在することがわかります。テストされていないが、ショット

+0

はまだ動作していません。 – BadmintonCat

+0

FYI:[Pods/Development Pods/fooframework]にチェックを入れると、そのフォルダは空です。私は何かがあるはずだと思いますか? – BadmintonCat

0

おそらく価値が

platform :ios, '9.0' 
workspace 'foo.xcworkspace' 

target :framework do 
    project 'framework.xcodeproj' 
end 

target :demo do 
    inherit! :search_paths 
    project 'demo/demo.xcodeproj' 
    pod 'framework', :path => 'framework.podspec' 
end 

あなたはCocoapodをインストールする場合は、もはやあなたのプロジェクトを開く.xcodeprojのファイルを使用しますが、同じフォルダ内に新しく作成された.workspaceません。

+0

はい、プロジェクトではなくワークスペースを開きます。しかし、それは問題の原因ではありません。 – BadmintonCat

0

私は最終的にこの問題を解決:

  1. は分を確認してください。

    プラットフォーム:

    spec.dependency:IOS、'10 .0'

  2. podspecファイル、例えばに任意のサードパーティ製のポッドを追加iOS版がPodfile、例えばに定義されている必要use_frameworks!なしpod installをやって 'Alamofire'、 '〜> 4.5' spec.dependency '蛇'、 '〜> 1.0'

  3. もしそれが台無しにいくつかのものは、(この答えが表示されます。 ld: framework not found Pods)。そこで、私はこれらの無効なPod xconfigを手に入れて削除してから、きれいでポッドにインストールしなければなりません。

その後はすべて動作します。

関連する問題