1.先創建有個文件夾demoWorkspace
,作為工作目錄。
demoWorkspace.png
2.打開Xcode創建workspace。保存到demoWorkspace
目錄下。
創建workspace.png
然后進入
demoWorkspace
目錄,打開demoWorkspace.xcworkspace
。
3.創建一個project
創建項目.png
創建有個TestA的項目,放到
demoWorkspace
目錄下。
引入已創建的Framewok項目,可以放到demoWorkspace
,然后File-add File to-添加
添加.png
NOTE
: 此處添加的是TestB.xcodeproj,而不是文件夾。
完成上面步驟后:
workspace排布.png
此時TestA是一個project,用來測試,TestB這個框架。
4.在TestB這個framewok框架,添加一個Person類,實現一個方法。
@implementation Person
- (void)speak
{
NSLog(@"speak");
}
@end
配置這個框架的配置。
1>將公開的頭文件,放到framework的TestB.h目錄下。
2>配置Mach-o的輸出格式。如static library.
3>iOS Deployment target 10.0
NOTE:
公開的頭文件需要放到public目錄下。
截屏2021-06-18 上午11.25.32.png
使用TestA使用這個框架。
1>將TestB.framework加入。
311623988083_.pic_hd.jpg
2>在項目中使用。
//此外使用import引入。
#import <TestB/TestB.h>
Person *p = [[Person alloc] init];
[p speak];
NOTE:
需要把TestA框架的framework加入到測試項目。
321623988232_.pic_hd.jpg
完成上述,運行TestA項目就可以聯調編譯了。
可能遇到錯誤。
1.dyld: Library not loaded: @rpath
Referenced from: /var/containers/Bundle/Application/EC27B3C9-8AB4-4ABE-8722-1052FE6E3D66/NICESignDemo.app/NICESignDemo
Reason: image not found
解決方案。framework的mach-0選靜態庫 static Library
2.頭文件找不到。 需要引入
3.主項目沒有引入對應的框架。需要引到Link Binary with Libraries
。而不是Embed Frameworks
。
331623988513_.pic_hd.jpg