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

时间:2015-10-22 09:56:09

标签: macos code-signing node-webkit

在签署OSX应用程序以便在苹果商店外发布时,我遇到了一种奇怪的行为。

  1. 构建应用程序后,应用程序包已使用开发者ID应用程序证书进行签名。

  2. 正在运行spctl -a -vvvv $app;已成功接受。

  3. 使用WhiteBox包http://s.sudre.free.fr/Software/Packages/about.html

  4. 为已签名的应用程序构建pkg安装程序
  5. 产品使用开发者ID安装程序证书签署.pkg

  6. 使用spctl -a -vvvv --type install $installer检查.pkg,再次接受它。

  7. 从pkg安装了该应用程序,然后检查了带有spctl -a -vvvv $app;的.app,然后将其拒绝。

  8. 可能是因为在安装过程中使用WhiteBox包会以某种方式修改.app包吗?

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

    # First parameter is app location
    function sign_app(){
    
    codesign --force --verify --verbose --sign "$identity" "${1}/Contents/Frameworks/crash_inspector";
    codesign --force --verify --verbose --sign "$identity" "${1}/Contents/Frameworks/nwjs Framework.framework";
    codesign --force --verify --verbose --sign "$identity" "${1}/Contents/Frameworks/nwjs Helper EH.app";
    codesign --force --verify --verbose --sign "$identity" "${1}/Contents/Frameworks/nwjs Helper NP.app";
    codesign --force --verify --verbose --sign "$identity" "${1}/Contents/Frameworks/nwjs Helper.app";
    codesign --force --verify --verbose --sign "$identity" "${1}/Contents/Icon";
    
    codesign --force --verify --verbose --sign "$identity" "$1";
    codesign -vvv -d $1;
    spctl -a -vvvv $1;
    }
    
    # First parameter package location, second parameter - signed package output location
    function sign_installer(){
        productsign --sign "$installerID" $1 $2;
        spctl -a -vvvv --type install $2;
    }
    

1 个答案:

答案 0 :(得分:0)

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