iOS动态库和静态库知识专题导航
3.复杂.a静态库的生成和使用(包含Bundle文件和Category分类文件)
集成静态库常见问题
常见问题(一)
出错信息:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
可能原因:
静态库头文件中有.m文件,将.m文件去除;
静态库文件路径不对,设置Library Search Paths为当前导入库的相对路径;
缺少静态库依赖的系统库,添加相应的依赖库;
静态库中存在OC分类、C文件、C++文件,设置Other Linker Flags为响应的值;
添加的的是动态库,导入对应的静态库。
终端命令如何合并两个文件
1.打开终端;
2."cd 文件夹"进入要合并的文件夹路径;
3."pwd"查看当前所在文件夹路径;
4."ls"查看当前文件夹下文件和文件夹名称;
5."lipo -create 文件1 文件2 -output 新文件"合并文件1和文件2生成新文件;
6."lipo -info 文件名"查看文件的文件信息。
Xcode13查找Products目录
方法1:
Xcode菜单选择 Product -> Show Build Folder in Finder -> Products 查看。
方法2:
点击项目中的 TARGETS 中的 General 下的 Frameworks and Libraries 下的加号添加任意一个系统的framework;此时项目中就有了Products和Frameworks目录(添加的Framework不想要可以删除)。
方法3:
1. 找到项目的.xcodeproj文件,右键显示包内容;
2. 找到project.pbxproj并双击打开;
3. 在文件内搜索productRefGroup,上边有一个mainGroup,把productRefGroup的值替换为mainGroup值,然后保存关闭文件,项目左侧就会出现Products和Frameworks目录。
framework未发现.h文件
出错信息:
'xxx.h' file not found
'xxx.h' in framework header, expected angle-bracketed instead
原因:
framework中引用头文件需要用 <> ,而不是 "" ;且应用时直接 #import <ProjectionScreen/xxx.h> ,而不是 #import <ProjectionScreen/MRDLNA/ARC/DLNA/xxx.h> 。
合成framework
合成framework时,只能合成xxx.framework中的同名文件,而不能直接合成xxx.framework;可以合成真机和模拟器类型的framework中的文件,不能合成真机Debug和真机Release下的framework中的文件