前言:最近接手公司的SDK开发任务,以前开发的SDK内部不涉及第三方的静态库,还算顺利,这次要求在SDK内部集成微信支付和支付宝支付功能,需要在SDK内部集成第三方静态库,下面开始集成。
由于Framework 静态库开发,我们不可能每写一句代码,就打包.Framework,再集成到测试项目中看实际效果,所以我采用workspace的方式,多个工程集成到一个工作空间。
首先,在目录中新建一个workspace如图
接着在同级目录下再创建一个新的普通工程 LoveGameSDKDevelop,用于在开发过程中测试SDK内部代码
然后在同级目录下再创建一个新的工程,这里选择Framework静态库如图
这个工程里就是我们用来编写SDK内部的核心代码
然后打开上面创建的工作空间,通过Add的方式将两个工程都添加进去,效果如图
将LGSDK内的没用文件删掉,创建一个以SDK名称命名的类,LGSDK
接下来,将测试开发工程和SDK工程关联起来
这样还是不够的,还要再修改头文件索引路径Header Search Paths
将后面的值修改为LGSDK工程文件的路径,这样就将两个工程关联起来了,后续开发中就可以边在LGSDK中修改静态库核心代码,边在LGSDKDevelop中运行查看效果了,相当方便。
最后一个注意点,也是最重要的,由于.Framework库有可能是静态库也可能是动态库,默认情况下编译器认为是动态库,所以需要配置Build Settings
ok,测试一下,在LGSDK.h文件中定义一个hello方法,在实现文件里只做一个简单打印,然后在LGSDKDevelop工程的ViewController.m中包含LGSDK.h,用#import+双引号或者+书名号都可以,最后在viewDidLoad中调用hello方法