提审应用到App Store,苹果回复2.3.1,说我们使用了代码混淆,然后给出代码示例:
[UndesignedDogSleigh blownWelshBlack:orderId:amount:currencyType:payType:order:]
,要我们删除这个或者详细解释这个代码。那么我们怎么在自己的项目里面找到这个呢?
如果源代码里面找不到这些代码,那么一般就在使用的第三方库里面了。
1. 拿到我们打包得到的IPA文件
1. 改后缀为zip,解压拿到xxx.app文件,在查看包内容,拿到项目的可执行文件(Mac-O)
2. 复制到桌面,打开iterm2
3. 使用命令:$ nm /Users/xxx/xx/刚才得到的(Mac-O)文件
4. 在结果中搜索苹果给的代码示例即可。
5. 找到方法之后,可以看到方法是属于哪个类的,得到类名
6. 查看使用到的三方库有哪些类,方法如下。
2. 扩展:可以用此方法来查看静态库,动态库,.a
文件
- 拿到库的可执行文件(Mac-O)进行上面的步骤即可
3. 查看使用到的三方库有哪些类
- 拿到可执行文件Mac-O或者.a
- 打开iterm2,使用命令:
$ ar - t /Users/xxx/xx/xx.a文件
- 打开iterm2,使用命令:
- 报错:
r: /Users/xxx/Desktop/XXSDK is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
ar: /Users/xxx/Desktop/XXSDK: Inappropriate file type or format
- 查看该Fat Mac-O文件包含哪些架构
$ otool -Vf /Users/xxx/Desktop/XXSDK
- 查看该Fat Mac-O文件包含哪些架构
Fat headers
fat_magic FAT_MAGIC
nfat_arch 2
architecture armv7
cputype CPU_TYPE_ARM
cpusubtype CPU_SUBTYPE_ARM_V7
capabilities 0x0
offset 48
size 1614872
align 2^2 (4)
architecture arm64
cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64_ALL
capabilities 0x0
offset 1614920
size 2016512
align 2^3 (8)
Archive : /Users/xxx/Desktop/XXSDK (architecture armv7)
Archive : /Users/xxx/Desktop/XXSDK (architecture arm64)
- 得到arm64的瘦可执行文件
lipo /Users/xxx/XXSDK -thin arm64 -output /Users/xxx/XXSDK_64
- 得到arm64的瘦可执行文件
- 6.再使用第
2
步的方法查看类名,即可得到结果。 - 比对类名就可以知道示例代码属于哪一个三方库了。
或者可以直接使用class-dump
来直接导出头文件
class-dump
官网
- GitHub版本class-dump,官网最新版本class-dump-3.5.dmg
-
下载之后,得到执行文件,拷贝到桌面
image.png - 执行命令
$ mkdir ~/.bin
$ mv /Users/xx/Desktop/class-dump ~/.bin
$ chmod 777 ~/.bin/class-dump
在.bash_profile
或者.zshrc
中加入环境变量的路径:
export PATH=$HOME/.bin/:$PATH
网友评论