支付宝AlipayRsaLiba中删除base64o

独奏

技术分享|2014-10-25|最后更新: 2023-2-23|
type
status
date
slug
summary
tags
category
icon
password
由于目前项目中集成了支付宝和 ZBar 二维码库,支付宝的 AlipayRsaLib.a 与 ZBar 的 base64.o 同名,导致编译不通过。搜索后发现这个冲突似乎是不光在他俩之间,在百度地图SDK以及 TencentOpenAPI 中都存在类似冲突。 在支付宝论坛中查找后得知 AlipayRsaLib.a 并不依赖 base64.o,因此我们可以把 base64.o 从中删除。
下面是从 AlipayRsaLib.a 中删除 base64.o 的操作。

1. 查看.a文件支持的 CPU 架构

2. 按照平台拆分.a文件

拆分后的.a文件分别放到不同文件夹下。
在网上看到lipo -thin命令不支持 armv7s 的,这个我并没有遇到,可以看看lipo info是否有输出 armv7s 有的话应该就是可以拆分出来的,我是可以正常拆分的。

3. 解压拆分后的.a文件

注意:上面三个命令是分别在三个不同的文件夹下执行的
解压后可以删除对应的.o文件,这里删除的是base64.o。注意要在三个文件夹里吧这个文件全部删除

4. 合并解压后的.o文件

注意:上面三个命令同样是分别在三个不同的文件夹下执行的

5. 合并重新生成的.a文件

至此我们就把AlipayRsaLib.a中的base64.o给删除掉了

参考