参考:https://www.jianshu.com/p/e857730015cf
高德MAMapKit.framework和ZipArchive出现了
解决方案:去掉MAMapKit-arm64-master.o中的重复内容
复制MAMapKit.framework到桌面
cd MAMapKit的上一级(MAMapKit.framework)
查看MAMapKit的适用平台,可以发现arm7,i386,x86_64,arm64均可用。模拟器需修改x86_64,真机需修改arm64。已arm64为例。
lipo -info MAMapKit
提取arm64平台的MAMapKit到新的文件MAMapKit.arm64
lipo -thin arm64 MAMapKit -output MAMapKit.arm64
获取MAMapKit.arm64文件中以_png为前缀的所有符号,生成符号列表并存于symbols文件中。( -j 选项控制只输出符号名)
nm -j MAMapKit.arm64 | grep png > symbols
删除symbols文件内容,将本次需要删除的符号写入(重复符号)
!!!注意:要以回车键结尾
image.png
可以查看MAMapKit.arm64包含的文件(其中MAMapKit-arm64-master.o就为报错文件)
ar -t MAMapKit.arm64
image.png
分解MAMapKit.arm64文件
ar -x MAMapKit.arm64
会多出三个文件,也获得了需要的MAMapKit-arm64-master.o文件
image.png
将symbols文件中的符号列表在MAMapKit-arm64-master.o文件中删除掉,生成一个新的文件MAMapKit-arm64-master.o.strip(把MAMapKit-arm64-master.o手动删除)
ld -x -r -unexported_symbols_list symbols MAMapKit-arm64-master.o -o MAMapKit-arm64-master.o.strip
将MAMapKit.arm64删除,重新生成一个新打包好的arm64平台包
ar -r MAMapKit.arm64 MAMapKit-arm64-master.o.strip Pods-MAMapKit-dummy.o
用新生成的arm64替换原有包中的arm64平台包
lipo MAMapKit -replace arm64 MAMapKit.arm64 -output MAMapKitTest
将生成的MAMapKitTest挪到项目中替换MAMapKit,并命名为MAMapKit
clean再运行就可以了
参考:https://www.jianshu.com/p/e857730015cf
最新集成个推SDK,也出现了这个问题,个推给出的解决方案是两个SDK放在不通的Target下(待尝试)。
网友评论