记录一下最近发布阿里旺旺 for Mac 3.0.1 时碰到的问题。
阿里旺旺在发布到 labs.etao.com 时,为了兼容 Mac App Store 版本,也要加上 Sandbox 支持,所以 App 是使用 Developer ID Application 方式发布的。
但是有一些人在拿到新版本后,却没办法运行程序,总是会提示以下错误:
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Application Specific Information:
dyld: launch, running initializers
/usr/lib/libSystem.B.dylib
xpchelper reply message validation: code signature invalid
The code signature is not valid: The operation couldn’t be completed. (OSStatus error -67061.)
Application Specific Signatures:
code signature invalid
一开始以为是签名的问题,然后另外一个同事使用同样方式发布 Developer ID Application 继续不能运行。于是去网上找了一下这个问题,发现了一篇文章《OS X 10.7.5 FAILS TO LAUNCH CODE-SIGNED APPS 》讲到这个问题,说这个可能是因为苹果在 Mac OS X 10.7.5 中改了什么东西导致的,只要重签名一下 App 就可以了。
打开终端,进入要签名的 App 所在目录,使用以下命令来重新签名:
codesign -fs 'Developer ID Application' --prefix 'com.taobao' \
--preserve-metadata=i,e,res,req --timestamp=none AliWangwang.app
注意:如果你的 Keychain Access 里有多个 Developer ID Application 证书的话,需要把 Developer ID Application
替换成 Keychain Access 中完整的 Developer ID Application 证书的名称。
重新签名之后的 Developer ID Application,就可以在 Mac OS X 10.7.5 上正常打开和使用了。
参考资料
--- EOF ---
0 条评论。