当我们点击xcode工程的target时,可以看到在Build Phases一栏看到framework可选的状态有几种:Do Not Embed、Embed & Sign和Enbed Without Signing
1、Embed:嵌入,用于动态库,动态库在运行时链接,以是它们必要被打进bundle内里,怎样判断呢?利用终端实行:
file framework.framework/frameworkfile背面的为SDK的路径
假如返回:
?current ar archive:分析是静态库,选择Do not embed
?Mach-O dynamicaly:分析是动态库,选择Embed
静态库和动态库的区别
?静态库:链接时完备地拷贝至可实行文件中,被多次利用就有多份冗余拷贝,存在情势:.a和.framework
?动态库:链接时不复制,步伐运行时由体系动态加载到内存,供步伐调用,体系只加载一次,多个步伐共用,节流内存。存在情势:.dylib和.framework
体系的.framework是动态库,我们自己创建的.framework一样寻常是静态库。
2、Signing:只用于动态库,假如已经有署名了就不必要再署名。怎样判断呢?利用终端实行:
codesign -dv framework.framework假如返回:
?code object is not signed at all 或者 adhoc:选择Embed and sign
?别的:表示已经准确署名,选择Embed Without Signing