团队需要更改 Info.plist 以测试某些功能。但有时应用程序(非常)会默默地崩溃。
System Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace CODESIGNING, Code 0x1
现在,如果我们按照这里的建议测试签名:
codesign --verify -vvvv -R='anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.1] exists and (certificate leaf[field.1.2.840.113635.100.6.1.2] exists or certificate leaf[field.1.2.840.113635.100.6.1.4] exists)'
<应用程序路径>
或
spctl --verbose --assess
<应用程序路径>
< path to app >: invalid Info.plist (plist or signature have been modified)
好的,但我真的很想修改它:
- 更改 SIP 不是一种选择
- 仅重新签名 Info.plist 是可以接受的,但是如何?
所以两个问题:
- 我们如何更改 Info.plist ?
- (可选)系统何时验证它?重启后可能吗?
这个问题有一个答案,在兄弟会:https ://superuser.com/questions/961797/how-to-change-info-plist-in-a-signed-package 。