假如现有一TestApp工程,我们需要为该项目开发一登录SDK,使用Xcode打开TestApp工程,然后按如下步骤:
- 新建一工程,File -> New -> Project...
- 选择 iOS -> Framework & Library -> Framework
- 按 Next
- Product Name: 输入 LoginSDK
- Add to: 选择当前的工程名称 TestApp
- 按下 Create
- 在Project Navigator中找到 LoginSDK目录,点击右键,New File... -> iOS -> Cocoa Touch Class -> Next
- Class 一栏里面输入:LoginViewController
- Subclass of 选择 UIViewController,Language 保持 Objective-C,点击 Next -> Create
- 找到 LoginSDK.h,增加一行:
#import <LoginSDK/LoginViewController.h>
所有要对外输出的接口头文件,都应该按此方式添加在这里
11. 选中 LoginSDK.xcodeproj,再选中TARGETS: LoginSDK
12. 切换到 Build Phases,展开 Headers,将LoginViewController.h 拖到 Public
13. 选择 TestApp,Targets: TestApp
14. 切换到 Build Phases,在Link Binary With Libraries中添加 LoginSDK.framework
15. 在TestApp 中,找到ViewController.m,增加代码:#import <LoginSDK/LoginSDK.h>,注意,一般来说,使用者只需要包含这一个头文件
16. 然后在 viewDidAppear 中编写如下代码:
LoginViewController * loginController = [[LoginViewController alloc] init];
[self presentViewController:loginController animated:YES completion:nil];
- 编译运行 TestApp(模拟器),可以看到TestApp 成功运行,一个空的ViewController已经弹出来了,如果在[LoginViewController viewDidLoad]中为self.view 添加一个视图例如按钮什么的,是可以看见这些元素的
- 但是,如果终止程序,从模拟器屏幕上,点击 TestApp,程序一启动就闪退了
- 终端执行 open ~/Library/Logs/DiagnosticReports/ 查看模拟器崩溃日志,会发现如下错误:Library not loaded: @rpath/LoginSDK.framework/LoginSDK
- 解决办法:选择TestApp,Targets: TestApp,切换到 Build Phases,+ -> New Copy Files Phase -> Copy Files -> Destination,选择 Frameworks,添加 LoginSDK.framework
- 重新编译运行程序,然后终止运行
- 从模拟器屏幕上,点击 TestApp,运行正常。