拆了上百个 IPA 后,我来告诉你里面都有啥

从实际工作经验出发,聊聊 IPA 文件的内部结构,以及每个文件的作用和常见问题。

7cert ·

IPA 就是个 zip 包

没错,你把 .ipa 后缀改成 .zip,直接解压就能看到里面的东西。我刚知道这个的时候也挺意外的,感觉苹果搞得挺神秘,其实就是个压缩包。

解压后你会看到什么

最外层是个 Payload 文件夹,里面有个 你的App名.app 目录,这个 .app 目录才是核心,所有东西都在里面:

这些文件干嘛用的

Info.plist 最重要。重签名的时候经常要改里面的 Bundle ID,改错了直接装不上。我有次手抖把 CFBundleIdentifier 拼错了一个字母,排查了半天才发现。

embedded.mobileprovision 重签名必须换的。你用新证书签名,这个文件也得换成新的描述文件,不然 iOS 验证通不过。

_CodeSignature 这个文件夹你别手动改,签名工具会自动处理。里面存的是每个文件的哈希值,iOS 安装的时候会一一校验,少一个文件或者改一个字节都不行。

我平时怎么看 IPA

以前我都是解压了一个个文件看,后来发现 7cert 直接上传 IPA 就行了,它会自动提取描述文件、签名证书、Bundle ID 这些关键信息,还查 OCSP 告诉你证书有没有被吊销。比我手动看快多了。

尤其是从别人手里拿到的 IPA,先验一下心里有底。

常见问题

改了 IPA 里的文件还能装吗?

不能直接装。改了文件签名就失效了,必须用有效证书重新签名才行。

IPA 能在安卓上跑吗?

不能,iOS 和 Android 是两套系统。安卓用 APK 格式。

怎么从手机上提取已安装的 IPA?

非越狱设备很难直接提取。可以用 Apple Configurator 2 获取 App Store 版本的 IPA。

马上检测:上传 P12、描述文件(.mobileprovision)或 IPA 到 7cert,免费查看证书信息与吊销状态,文件检测完即销毁。

更多文章