代码签名与分发
问题
iOS 代码签名的原理是什么?分发方式有哪些?
答案
签名验证流程
证书类型
| 类型 | 用途 | 设备限制 |
|---|---|---|
| Development | 开发调试 | 注册设备(100台) |
| Ad Hoc | 内测分发 | 注册设备(100台) |
| Enterprise | 企业内部 | 不限设备 |
| App Store | 正式发布 | 所有设备 |
Entitlements
App.entitlements
<dict>
<key>aps-environment</key>
<string>production</string>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:example.com</string>
</array>
</dict>
常见面试问题
Q1: 重签名攻击是什么?如何防御?
答案:攻击者用自己的证书对 ipa 重签名,注入恶意代码。防御方式:在代码中检查 embedded.mobileprovision 的 Team ID 是否匹配,或使用 App Attest 进行设备完整性验证。