当前位置:首页 » 编程软件 » ios编译静态库

ios编译静态库

发布时间: 2023-08-13 14:40:58

㈠ ios平台下live555静态库的编译及打包成.a文件

因为你执行的是./genMakefiles iphoneos ,所以得到的.a文件只支持真机环境下,同理执行./genMakefiles iphone-simulator,得到的是支持模拟器环境下的.a文件,编译结束最终得到支持真机和模拟器下的四个.a文件,如下图:

如何打包成一个静态库.a文件,请参考 http://blog.csdn.net/qq_26968709/article/details/51164104

如果需要打包好的库文件,直接下面留言。

㈡ iOS 静态库和动态库打包framework流程(纯swift版/swift、OC混编版)

选择 iOS -- Framework&Library , 点击 next

如果打包文件中使用了第三方库,建议pod管理,并告知用户使用pod安装,避免用户重复导入。跟平时开发逻辑一样,打开 .xcworkspace 工程。

操作完之后工程目录显示

把打包需要的文件添加到项目中。 如果想要这个类或类里面的方法被外面使用,需要配合pubic修饰供外面使用

由于以上获取的framework只能在对应的版本上运行(即真机只能在设备上运行模拟器版本只能在模拟器上面运行使用),所以需要合并framework版本。
合并framework版本:
sudo lipo -create (此处请填写真机AppVest文件路径) (此处填写模拟器AILLSDK文件路径) -output 自定义合成文件存储路径(合成文件的名字AILLSDK)

因为真机版本和模拟器版本的framework都存在arm64架构,导致架构重复,不出意外,会提示合并失败。如下

处理合并失败的问题

最后,将 XX.framework(真机或者模拟器framework都可)文件夹 拷贝出来,替换AILLSDK(本文使用的)为刚才合并的新文件。
查看替换后的framework支持全部真机模拟器架构。

我在合并binary文件之后,仅拷贝出 Release-iphoneos 文件夹下的 XXX.framework ,并替换掉AILLSDK二进制文件。导入项目中使用模拟器运行,报错,显示找不到架构。

解决方案

拷贝所有的moles到

再替换掉AILLSDK二进制文件,导入项目,如果framework中内含第三方库,需要在所在的工程中使用pod加载,否则会提示编译失败。
至此,编译成功。🎉🎉🎉🎉🎉

不管是在framework封装的内部,内部swift类调用内部的OC类,还是内部的OC类使用内部的swift类,还是外部工程swift类使用framework内部OC类,还是外部工程OC类使用framework内部swift类。原理是一致的,以下来介绍下:

在 AILLSDK.h(你自己创建framework时候生成的.h文件) 中添加import导入
#import <AILLSDK/OC类名.h>

在oc的 .m 或 .h 文件中,导入 #import <AILLSDK/AILLSDK-Swift.h> , 也就是 你自己framework名-Swift.h

㈢ ios未使用的.a如何编译进app

新建一个iOS的空项目:这个非常的简单就不说了,然后建立一个要使用的库文件:

然后添加一个静态库的工程,这个工程就是你静态库函数,你可以在里面写任何你需要的函数:

现在如果你要编译原来的TestUseLib工程的时候是编译不过去的,你需要添加的地方有几个:图片文件上传不了描述一下:

选择工告谨程文件(不是库文件)在targets下选择工程的一个target

然后在Build Phases列中设置:Target Dependencies加上那个库工程,以及在
Link Binary with Libraries加上那个库工程的库文件(.lib)

同时设置.h文件路径:

在build Setting列中的Search Paths下的header Search Paths加上头文件的查找路径:

你可以写绝对路径,但是这样袜槐基不好,只能在自己的机器上运行,到别人的机器上去了就会有问题:

$(SRCROOT)这个东西表示工程的根路径,其实也就是你在建立工程的时候选择的那个路径。明滚
这就是静态库的使用。

如果你现在需要引用别人的一个.a库,那就更加简单了,你只需要将.a文件和.h文件放到你的工程目录下,然后将.a文件与.h文件拖动到xcode的工程中就可以了。

热点内容
c语言编程图书 发布:2025-02-04 19:01:52 浏览:894
在哪里开启密码显示 发布:2025-02-04 18:38:30 浏览:787
怎么查询qq密码 发布:2025-02-04 18:20:10 浏览:513
python编写接口 发布:2025-02-04 18:08:30 浏览:78
怎么给游戏设置密码 发布:2025-02-04 18:03:08 浏览:926
商品存储规划 发布:2025-02-04 17:45:24 浏览:567
ios访问共享 发布:2025-02-04 17:36:33 浏览:335
javabuild 发布:2025-02-04 17:30:19 浏览:592
gnulinux编译 发布:2025-02-04 17:30:18 浏览:132
苏州阿里云服务器专网 发布:2025-02-04 17:21:05 浏览:526