-
Xcode -> File -> New -> WorkSpace, 保存到指定目录
-
Xcode -> File -> New -> Project,选择Framework,然后Next;
-
将创建的SDK工程添加到刚创建的WorkSpace:
-
设置Mach-O Type 为Static Library:
-
创建测试代码:
-
将要暴露的头文件拖入Public下面,
并将头文件添加入SDK的.h文件中:
#import <TestSDK/MyView.h> -
Xcode -> Editor -> New Target:
-
添加将模拟器库和真机库合并的脚本:
-
选择 New Run Script Phase,添加如下脚本:
if [ "${ACTION}" = "build" ] then INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework if [ -d "${INSTALL_DIR}" ] then rm -rf "${INSTALL_DIR}" fi mkdir -p "${INSTALL_DIR}" cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/" #ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers" lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}" open "${DEVICE_DIR}" open "${SRCROOT}/Products" fi- Xcode -> File -> New -> Project,选择:
- Xcode -> File -> New -> Project,选择:
-
选择将项目添加入WorkSpaceTest中:
-
iOS 13 删除 SceneDelegate,并在Appdelegate.h中添加window:
@property (strong, nonatomic) UIWindow *window; -
删除Plist文件中的Scene相关字段:
-
编译SDK:
-
上一步编译成功后会打开生成的SDK路径,将Framework拷贝出来,放到比如桌面上:
-
将刚才拷贝出的Framework拖入TestSDKDemo中:
-
最终如下:
-
使用:
#import <TestSDK/TestSDK.h> - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = UIColor.whiteColor; MyView *view = [[MyView alloc] initWithFrame:CGRectMake(100, 140, 200, 40)]; [self.view addSubview:view]; } -
效果:
-
修改SDK中MyView背景色,重新编译,应该会直接发生变化;
-
如果SDK中使用了category,需要在使用SDK的项目中添加如下设置: