之前公司需求封装SDK,那个需求没有引入第三方;这次新的需求,需要引入第三方库,才发现了一些问题;写了这个文章来记录下:.a的创建和使用和Framework是相同的 ,本文以Framework为例子:

1 、新建项目选择Framework&Library : Cocoa Touch Framework 是Framework,Cocoa Touch Static Library 是.a 如图

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用


2、输入名字

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_02


重点来了

3、本文以文学sdk为例子,引入微信SDK,这一步有一个注意的地方 add to targets 中对勾去掉不能勾选

如图

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_03


4、添加引入SDK需要的库文件

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_04

**注意**  
添加动态库.tdb的时候注意 步骤如下:
Targets  - General - Link Frameworks and Librarys 点击加号 ,选择Add Other ,然后 shift + command + G -> 输入/usr/lib  然后选择需要的库文件 (.dylib)

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_05

继续 : shift + command + G -> 输入/usr/lib

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_06


咱们微信SDK需要添加的库文集就添加完了 如图

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_07


5、添加文件实现想要的功能 (这里就不详细介绍了) 想了解点击 6、设置相关内容 在TARGETS下选中工程,在Build Settings下更改几个参数。

首先 修改mach-o 值 为Static Library

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_08


其次 修改Build Active Architecture Only 为NO

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_09


最后 如果集成的项目支持 bitCode 就设置成yes 不支持就设置成NO

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_10


7、设置Headers

将你要公开的头文件拖至Public下,要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用。或者右键点击Move To Public Group 如图

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_11


8 打包Framework ,Framework分为两种真机运行的和模拟器运行的,本文只讲真机运行的

想了解两种的或者二者合并的点击

选择Generic IOS Device 然后command + B ,编译成功后,选中图中所标示的framework,然后右键show in finder。如图

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_12


ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_13

9、具体使用 新建文件夹 ,将自己生成的Framework拷贝进去,然后在创建一个文件夹将需要的库文件夹拷贝进去 如图

ios 工程引用另一个flutter工程 framework引用其他framework ios_含第三方的静态framework的使用_14


将SDK文件拖入到项目中,即可

**注意**  

如果项目中已经集成了微信的SDK,集成生成的Framework的时候,需要将里面的libWeChatSDK.a库删除了即可