添加 iOS 动态态库

在  xcode 项目的 Build Phases 设置中,“Link Binary With Libraries” 节,可以添加项目依赖的 framework 和 dylib。

前者没什么问题,后者,会发现,有多个不同的选择,比如,要添加 z 库:



可看到有四个选项,其中三个带有版本号的。为什么呢?如何选择呢?

以 ios6 sdk 为例

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/lib

ls -l


可以看到


lrwxr-xr-x   1 root  wheel       16  3 15 11:04 libz.1.1.3.dylib -> libz.1.2.5.dylib
-rwxr-xr-x   1 root  wheel   140576  3 15 11:04 libz.1.2.5.dylib
lrwxr-xr-x   1 root  wheel       16  3 15 11:04 libz.1.dylib -> libz.1.2.5.dylib
lrwxr-xr-x   1 root  wheel       16  3 15 11:04 libz.dylib -> libz.1.2.5.dylib


只有 libz.1.2.5.dylib 是实体文件,其它都是软连接到这个实体文件。


了解动态库机制的就会明了,在 linux 下是 so-name 机制,iOS 系统中也类似。


所以,添加库的时候,最好是添加 libz.1.dylib 这类只带主版本号的,以便更好维护。


THE END.







原文地址:https://www.cnblogs.com/javawebsoa/p/2978294.html