OSX 已签名的应用程序和安装程序,安装后签名被删除

OSX signed app and installer, after installing signature is removed

我在签署 OSX 苹果商店外分发申请时遇到了一个奇怪的行为。

  1. 构建应用程序后,使用 Developer ID 应用程序证书对应用程序包进行签名。

  2. 运行 spctl -a -vvvv $app;返回成功接受

  3. 使用 WhiteBox 包为已签名的应用程序构建 pkg 安装程序 http://s.sudre.free.fr/Software/Packages/about.html

  4. 产品使用 Developer ID Installer 证书签署了 .pkg

  5. spctl -a -vvvv --type install $installer 检查了 .pkg,再次接受它。

  6. 从 pkg 安装应用程序,并使用 spctl -a -vvvv $app; 检查 .app,然后被拒绝。

会不会是在安装过程中使用 WhiteBox Packages 以某种方式修改了 .app 包?

FWI 以下是我签署申请的方式:

# First parameter is app location
function sign_app(){

codesign --force --verify --verbose --sign "$identity" "/Contents/Frameworks/crash_inspector";
codesign --force --verify --verbose --sign "$identity" "/Contents/Frameworks/nwjs Framework.framework";
codesign --force --verify --verbose --sign "$identity" "/Contents/Frameworks/nwjs Helper EH.app";
codesign --force --verify --verbose --sign "$identity" "/Contents/Frameworks/nwjs Helper NP.app";
codesign --force --verify --verbose --sign "$identity" "/Contents/Frameworks/nwjs Helper.app";
codesign --force --verify --verbose --sign "$identity" "/Contents/Icon";

codesign --force --verify --verbose --sign "$identity" "";
codesign -vvv -d ;
spctl -a -vvvv ;
}

# First parameter package location, second parameter - signed package output location
function sign_installer(){
    productsign --sign "$installerID"  ;
    spctl -a -vvvv --type install ;
}

出于某种奇怪的原因,似乎当您将图标(文件夹格式)添加到内容根目录、对其进行签名、构建包并安装时,签名被删除了。不包括内容根目录中的图标文件夹,解决了我的问题。