查找苹果审核2.3.1混淆代码

提审应用到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. 查看使用到的三方库有哪些类

    1. 拿到可执行文件Mac-O或者.a
    1. 打开iterm2,使用命令:$ ar - t /Users/xxx/xx/xx.a文件
    1. 报错:
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
    1. 查看该Fat Mac-O文件包含哪些架构 $ otool -Vf /Users/xxx/Desktop/XXSDK
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)
    1. 得到arm64的瘦可执行文件 lipo /Users/xxx/XXSDK -thin arm64 -output /Users/xxx/XXSDK_64
  • 6.再使用第2步的方法查看类名,即可得到结果。
    1. 比对类名就可以知道示例代码属于哪一个三方库了。
或者可以直接使用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

你可能感兴趣的:(查找苹果审核2.3.1混淆代码)