2017-02-10 5 views
9

CocoaPods 1.2を使用しています.2つのターゲットを持つプロジェクトがあります.1つはメインiPhoneアプリケーションで、もう1つはココアタッチフレームワークライブラリです。Cocoapodsを使用してユニバーサルフレームワークライブラリにポッドを追加する

私のiPhoneのターゲットにポッドを追加しても問題はありません。主な問題は、他の共有ライブラリのターゲットにポッドを追加できないことです。ここ

は私のポッドファイルの例です:

platform :ios, '9.0' 

target 'MyApp' do 
    use_frameworks! 
    pod 'EVReflection' 
end 

target 'MyLibrary' do 
    use_frameworks! 
    pod 'EVReflection' 
end 

のMyApp作品だけで罰金ではなく、他のターゲットへのメインアプリにポッドを追加し、これがなぜ起こるか任意のアイデア?

私は使用しようとしました抽象的なターゲット運がありません。私は脱統合して再統合しようとしただけでなく、働いていない。

この問題はユニバーサルフレームワークライブラリにポッドを追加しようとしたときにのみ発生し、他のタイプのターゲットにポッドを追加しても問題ありません。

ご協力いただければ幸いです。ここで

+0

cocoapodsはエラーをもたらしますか?あるいは、Xcodeは不平を言いましたか? –

+0

cocoapodsまたはxcodeのエラーはありません。ポッドは正常にインストールされ、xcodeは正常に動作しますが、ライブラリ内のポッドをインポートしようとすると、モジュールが見つかりません。 –

+0

私は過去にこれをやってきたと確信しています問題はありますが、私は小さなサンプルをまとめ、私が見つけたものを見ていきます。 –

答えて

7

  1. クレート新しい迅速なアプリケーションのプロジェクト私の全体の手順です。
  2. 新しいココアタッチフレームワークターゲットを作成します。 pod init
  3. のTyrこのPodfile

    # Uncomment the next line to define a global platform for your project 
    platform :ios, '9.0' 
    
    target 'SOQ' do 
        use_frameworks! 
    end 
    
    target 'SOQFW' do 
        use_frameworks! 
    end 
    
    pod 'EVReflection' 
    
  4. を実行するプロジェクトディレクトリ内

ポッド後にインストールし、両方の私の二つのターゲットSOQ(SWIFTアプリ)とSOQFW(ココアタッチフレームワーク)することができますimport EVReflectionでin * .swiftとユーザークラスEVObjectを問題なく使用できます。

サンプルコードあなたはそれを試してみることができます

import EVReflection 

class User: EVObject { 
    var id: Int = 0 
    var name: String = "" 
    var friends: [User]? = [] 
} 

です。

私の開発環境は、OS X 10.12、xode 8.2.1です

+0

私は新しいプロジェクトと2つのターゲットを作成しましたが、うまくいきました。それで、他のプロジェクトで何が間違っているのか疑問に思っていました。さらに調査した結果、ファイルインスペクタの3番目のターゲット"あなたの例の" User "クラスのウィンドウ、私はまた、その3番目のターゲットにEVReflectionポッドを追加する必要があった今、それはうまく動作します –

+0

@AhmedGalal歓迎です:) – sunus

+0

あなたのフレームワークのいずれかが動作していませんObjective-Cでは、 [!] Swiftで書かれたポッドは、フレームワークとしてのみ統合することができます。 'use_frameworks!'をあなたのPodfileまたはターゲットに追加してそれを使用するようにしてください。 SwiftyJSONライブラリ –

1

1.1.1は、私がここにサンプルプロジェクトを作成しcocoapods:https://github.com/dtweston/PodFrameworkTest

マイPodfileは、あなたの質問に掲載さと全く同じでした。

メインアプリケーションとフレームワークライブラリの両方でフレームワークをインポートして使用できました。

フレームワークで

:私はMacOSの10.12とXcode 8.2.1にもよ

class AppUser: EVObject { 
    var id: Int = 0 
    var name: String = "" 
    var friends: [LibUser]? = [] 
} 

:アプリで

public class LibUser: EVObject { 
    var id: Int = 0 
    var name: String = "" 
    var friends: [LibUser]? = [] 
} 

(あなたはこれもフレームワークのLibUserクラスを参照見ることができます) 。私はcocoapods 1.2.0を使っていますし、Cocoapods 1.2でもうまくいきました。0-rc1

あなたのセットアップと私の違いはなんですか?あなたのアプリケーションとフレームワークを含むプロジェクトのInfoを見ると、Cocoapodsの設定ファイルは正しく設定されていますか?

+0

ありがとう、あなたのサンプルはうまくいきます、私は私の問題が実際に3つのターゲットを持っていて、2番目のターゲットがファイルインスペクタから3番目のターゲットを選択していたという事実と関係があることを発見しました "あなたの努力のおかげでEVReflectionポッドを3番目のターゲットにインポートしていなくても、両方のターゲットにポッドを追加する必要があることを知っていませんでした。皆さんの間で恩恵を分けることができたらいいのに、私は彼がそれを以前に投稿したので、私は答えを上にマークします –

関連する問題