1.先创建有个文件夹demoWorkspace
,作为工作目录。
2.打开Xcode创建workspace。保存到demoWorkspace
目录下。
然后进入
demoWorkspace
目录,打开demoWorkspace.xcworkspace
。
3.创建一个project
创建有个TestA的项目,放到
demoWorkspace
目录下。
引入已创建的Framewok项目,可以放到demoWorkspace
,然后File-add File to-添加
NOTE
: 此处添加的是TestB.xcodeproj,而不是文件夹。
完成上面步骤后:
此时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目录下。
使用TestA使用这个框架。
1>将TestB.framework加入。
2>在项目中使用。
//此外使用import引入。
#import <TestB/TestB.h>
Person *p = [[Person alloc] init];
[p speak];
NOTE:
需要把TestA框架的framework加入到测试项目。
完成上述,运行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
。