如何在签名包中更改Info.plist?

时间:2017-10-09 15:35:56

标签: macos code-signing info-plist

团队需要更改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

现在,如果我们按照建议的here测试签名:

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)'< app的路径>

spctl --verbose --assess< app的路径>

< path to app >: invalid Info.plist (plist or signature have been modified)

好的,但我真的想修改它:

  • 更改SIP不是一个选项
  • 仅重新签名Info.plist是可以接受的,但是如何?

所以有两个问题:

  1. 我们如何更改Info.plist?
  2. (可选)系统验证时?重启后可能吗?
  3. 这个问题在兄弟情谊中得到了答案:https://superuser.com/questions/961797/how-to-change-info-plist-in-a-signed-package

1 个答案:

答案 0 :(得分:0)

重新签名应用程序可以非常快:

codesign --force --verbose=4 --sign "Developer ID Application: <your name> (<team ID>)" <application>

诀窍是避免使用--deep选项。在我的高阶山脉上,大约需要20秒。