https://www.jianshu.com/p/d146db167bf3
個々のモジュールにパッケージ化する際の開発プロジェクトは、しばしば遭遇するより便利なプロジェクト管理など、状況フレームワーク、あまりにも複雑な伝統的なパッケージ化の方法、トラブル時に繰り返しテストをたくさんだと思います。
ここでの方法とワークスペースについての記録は、プロジェクトに依存した方法を管理します。図はまた、記載漏れ申し訳ありません持っている図のコードワードに応じて、2日前から切り捨てられます。
1.新しいワークスペースを作成します。
1.1 Xcodeの - >ファイル - >新規 - 次ページ>ワークスペースTestフォルダと場所
2. TestProjectとFrameworkProjectを作成します。
2.1 Xcodeの - >ファイル - >新規 - >プロジェクトは、Testフォルダにもあります
2つのプロジェクトワークスペースを追加するためのXcode 2.2
3. FrameworkProjectにターゲットを追加
3.1 FrameworkProject - >ターゲット - > [+]
ココアタッチフレームワークを選択
TestFW、アプリケーションに埋め込む選択することではない最初の名前付き
あなたは以下を参照することができますフレームワークターゲットを追加しました
4.フレームワークTestProjectに追加
4.1 TestProject - >ターゲット - >一般 - >組み込みバイナリ - > [+]
製品は、単に与えられた出生ターゲットが出て列挙された参照TestFW.frameworkiOSを選択することができます
埋め込みフレームワークの成功
可以看到在Project中也显示出来了,不要在意红色,因为在编译TestProject时会先编译它依赖的framework,这也是这种方法建立项目依赖的方便之处,不需要额外手动编译framework。
如果看着不舒服,可以移动到项目的Frameworks文件夹(Tips:看不到Frameworks文件夹可以先随便嵌入一个系统库,比如UIKit.framework,然后再删掉,就可以看到Frameworks文件夹了)。
4.2 添加测试方法
这里举例添加方法到ViewController中,注意这是错误演示,下面会说明。
当然不要忘了在暴露的.h中#import "ViewController"
运行,发现报错,提示找不到ViewController,导致无法编译framework模块
原来是新增的Target中不包含ViewController这个类。
解决方法:选择ViewController.h -> TargetMembership -> 勾选TestFW
再次运行,发现helloFramework方法并没有调用,并且控制台输出提示ViewController这个class被两个类文件同时生成了,一个是TestProject项目,一个是TestFW这个framework。
解决方法:把两个ViewController其中一个改下名字就可以了,这里我把framework中的ViewController改名为TestViewController(当然里面的类名也一定要改啊)。
可以看到输出正常了。
そのため、フレームワークは、独自の特殊なクラス名の接頭辞を生成する必要があります[強調]は、それは非常に簡単であると階級闘争を投影します。
4.3テストクラスの追加
、新しい1または実施するためのいくつかのクラスになりますもちろん、基本的なクラスを、実際の使用のViewControllerデフォルトを使用しません。新規ターゲットは、対応するクラスを選択する必要があることに注意してください、そうでない場合は問題がコンパイルされません。
独自のクラスを追加した後、実行して、まだ与えられていますか?helloFramework方法、どのような地獄を見つけることができませんか?
回避策:FrameworkProject - >ターゲット - > TestFW - >フェーズをビルド - >ヘッダ、プロジェクトの新しい方法は、公開を下にドラッグ。そうしないと、コンパイラはプライベートとしてメソッドを追加し、TestFW.h参照することはできません。
移動した後、
この時点で、我々は完了です。
あなたが新しいフレームワークを完了したい場合はもちろん、この方法では、このような新しいプロジェクトがはるかに少ないAppDelegateような文書が生成されます際に直接ココアタッチフレームワークを選択し、0から、既存プロジェクトの簡易包装に適しています。