【问题标题】:Unable to sign my app with codesign无法使用 codesign 签署我的应用程序
【发布时间】:2015-04-19 01:14:02
【问题描述】:

我已经成功地将我的 Jar 编译为应用程序,然后制作 DMG 文件以将其安装在 Mac 上。我现在正在尝试签名,但 % codesign -s 没有运气

我认为我的语法是正确的(在这个示例中,我用我的名字 0000000000 掩盖了我的实际常用名):

codesign -s "开发者 ID 应用程序:我的名字 (0000000000)" XMarker.app

结果是:

XMarker.app:代码对象根本没有签名 在子组件中:/Users/myname/Desktop/XM-dev/XLIFF2Modules/XMarker.app/Contents/PlugIns/jdk1.8.0_40.jdk

如果我测试一下就可以了:

codesign -d --verbose=4 XMarker.app XMarker.app:代码对象根本没有签名

如果有人能告诉我我做错了什么,我将不胜感激

【问题讨论】:

    标签: java macos codesign


    【解决方案1】:

    尝试使用“--deep”。

    即:

    codesign --deep -s "Developer ID Application: My Name (0000000000)" XMarker.app
    

    Apple recommends against doing "--deep" for production releases,而不是在将单个组件(例如“jdk1.8.0_40.jdk”)嵌入到最终应用之前对其进行签名。

    【讨论】:

    • 只是想确定我没看错。你说不要使用--deep,而是签署jdk,然后是我的应用程序,大概在两个单独的命令行步骤中?如果它有效,我会非常高兴(更不用说感激)。
    • 我正在考虑先尝试-deep,如果可行,请尝试第二种方法。
    【解决方案2】:

    感谢迈克尔·道特曼!你的线索让我走上了正确的道路!

    去“--deep”不是要走的路,因为我们仍然失败了

    spctl --assess --type execute XMarker.app test. 
    

    但他回答的第二部分让我明白了什么是有效的。

    因此,为了确保其他遭受此问题的人可以获得精确、孤立的答案,以下是有效的方法:

    cd /Users/myname/Desktop/XM-dev/XLIFF2Modules/XMarker.app/Contents/PlugIns/
    
    codesign -s "Developer ID Application: My Name (0000000000)" jdk1.8.0_40.jdk
    
    
    cd /Users/myname/Desktop/XM-dev/XLIFF2Modules
    
    codesign -s "Developer ID Application: My Name (0000000000)" XMarker.app
    
    codesign -d --verbose=4 XMarker.app
    

    [收到正确签名应用的确认]

    spctl --assess --type execute XMarker.app
    

    [没有收到错误,这=确认应用程序将通过]

    [以下我还没有完成,但期待成功 - 如果没有,我将编辑这部分]

    spctl --assess --type install XMarker.dmg
    

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      相关资源
      最近更新 更多