我在使用Mac OS 10.11上的某个应用程序进行Mac OS X Developer ID代码签名时遇到问题 .

这个问题会影响我4台Mac机的3(是的,我知道) . 我可以使用Mac OS X 10.11和Xcode 7在我的Mac Pro 2009上构建(从命令行)没有任何问题,我的应用程序将通过其看门人测试用漂亮的颜色:

% spctl --verbose=4 --assess --type execute MyApp.app
source=Developer ID

当我使用10.11.1和Xcode 7在我的其他三台Mac(MacBook Pro Retina,MacBook“one”,Mac Pro 2014)上使用相同的脚本构建时,我得到:

rejected  
source=obsolete resource envelope

我在10.11上升级了使用GM生成错误构建的三台机器,并忘记禁用自动更新到新的beta版本,因此一旦10.11最终发货,它们就会自动迁移到10.11.1 beta 1 . 我以为这会在10.11.1发货时消失,所以我昨晚在它出来的时候试了这个 . 升级并没有解决问题 . 所以我将Xcode升级到7.1,但也没有解决任何问题 .

我查看了“过时的资源包络”的含义,据说是关于使用版本1签名,但运行工具(我认为)表明一切都应该按顺序进行:

% /usr/bin/codesign -dv MyApp.app
Executable=/../MyApp.app
Identifier=my_bundle_id
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=5046 flags=0x0(none) hashes=245+3 location=embedded
Signature size=4236
Signed Time=Oct 21, 2015, 10:44:32 PM
Info.plist entries=32
TeamIdentifier=XXXXXXXX
Sealed Resources version=2 rules=12 files=536
Internal requirements count=1 size=216

% codesign --verify -vvv My.app
--prepared: MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/Current/.
--validated: My.app/Contents/Frameworks/Sparkle.framework/Versions/Current/.
My.app: valid on disk
My.app: satisfies its Designated Requirement

我读“版本= 2”为“有版本2签名”,但我不确定“--prepared:”..这意味着它是有效的还是没有签名?

我之前遇到过一些问题,其中来自A - > Current的Sparkle框架的符号链接被替换为双目录条目(符号链接的内容被替换为它指向的目录的副本) . 这有可能导致麻烦吗?

我列出了文件以查看是否缺少符号链接:

% ls -l My.app/Contents/Frameworks/Sparkle.framework
lrwxr-xr-x 1 frankreiff staff 24 Oct 21 22:44 Headers -> Versions/Current/Headers
lrwxr-xr-x 1 frankreiff staff 26 Oct 21 22:44 Resources -> Versions/Current/Resources
lrwxr-xr-x 1 frankreiff staff 24 Oct 21 22:44 Sparkle -> Versions/Current/Sparkle
drwxr-xr-x+ 4 frankreiff staff 136 Oct 21 22:44 Versions

% ls -l My.app/Contents/Frameworks/Sparkle.framework/Versions
total 8
drwxr-xr-x+ 6 frankreiff staff 204 Oct 21 22:44 A
lrwxr-xr-x 1 frankreiff staff 1 Oct 21 22:44 Current -> A

但是对于我的Unix盲目的眼睛,一切似乎都是有序的 .

升级到10.11.1后是否还有其他人遇到代码签名问题?

任何帮助将非常感谢..