我使用两个框架-MobileVLCKit和TTXSDK(https://github.com/tongtianxing/ios_cmsv6demo) 用于在我的项目中播放H 264流,这会导致生成项目时出现重复符号错误。我需要使用这两种框架。请建议解决重复符号错误的方法。
lipo是管理Fat File的工具, 可以查看平台列表, 提取特定平台, 重新打包。
nm nm用来显示一个程序包的符号表, 默认会显示入口地址, 符号类型, 符号名。
strip strip用来删除程序里的符号表。-R 用来指定一个要删除的符号列表, 使用上述生成的symbols文件.。添加 -S 选项来保留其他符号。
ar ar可以查看一个程序包里的对象文件列表, 解压出其中的对象文件并重新打包。
ld ld苹果系统下的链接器, 可以更精确的控制符号表的导出。
具体步骤 因为担心修改MobileVLCKit对已上线的视频播放造成不可估计的影响,因此,此次修改MAMapKit,出现任何bug也可以尽快发现并解决。 下面将进行十分小白式的记录(PS:主要是我太小白了。)
cd path(framework的路径) lipo -info MAMapKit
lipo info MAMapKit 查看MAMapKit的适用平台,可以发现arm7,i386,x86_64,arm64均可用。并且前面bug只是存在于x86_64平台上,那么就先修改这个平台的内容。
lipo -thin x86_64 MAMapKit -output MAMapKit.x86_64 文件瘦身,提取x86_64平台的MAMapKit到新的文件MAMapKit.x86_64,发现该文件只有3M而已(源文件20.2M),该文件位置与MAMapKit相同,发现确实单个平台的文件比较小。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。