首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Linux中签署Mac应用程序?

如何在Linux中签署Mac应用程序?
EN

Stack Overflow用户
提问于 2012-07-31 08:48:44
回答 3查看 10.6K关注 0票数 17

对于OS,我在DMG中分发我的Java应用程序。自山狮发布以来,打开该应用程序将提供以下错误信息:

应用程序名称被损坏,无法打开。您应该弹出磁盘映像。

显然,修复方法是对.app文件进行签名所以我读了代码签名指南。除了的重要问题之外,一切似乎都很简单--如何将其集成到我的一键构建过程中。

在所有平台上构建我的产品都发生在我的Linux开发机器上。我运行一个Ant脚本,Windows安装程序、初学者EXE、Linux安装程序、OS应用程序和DMG都是构建的。因此,我想将代码签名集成到这个过程中。

Linux中是否有等同于“codesign”的内容?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-28 09:40:29

没有在Linux中对Mac应用程序进行代码签名的记录方式。

到目前为止,我找到的唯一方法是将SSH放入Mac并使用它。

另一方面,根据@Steve McLeod (https://stackoverflow.com/a/55906962/28190),安装程序包install4j确实提供了以下功能:

在Windows和Mac 上的集成代码签名。在“常规设置”部分,install4j现在有一个“代码签名”选项卡,您可以在该选项卡中为Windows和Mac配置代码签名证书。代码签名将应用于相应媒体文件中的所有启动程序和安装程序应用程序。代码签名的实现是跨平台的,因此您可以通过Linux构建服务器对Windows和Mac媒体文件进行签名。

所以这在技术上一定是可能的。

票数 7
EN

Stack Overflow用户

发布于 2012-11-08 08:22:10

您可以通过仅对应用程序的JavaApplicationStub和info.plist进行签名来解决这一问题,并将“参考资料”文件夹排除在签名之外。然后,您必须更改您的构建过程,以使用预先签名的容器。当然,这不是协同设计的意义,但它会奏效的;-)

要实现这一点,请执行以下步骤:

  • 像往常一样创建.app
  • 把它移到你的mac上
  • 创建一个包含以下内容的文件"ResourceRules.plist“:

ResourceRules.plist:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>rules</key>
        <dict>
                <key>^Resources/</key>
                <false/>
                <key>^version.plist$</key>
                <true/>
        </dict>
</dict>
</plist>
  • 现在用以下命令签名: CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate“codesign -s "Certificate”--resource ResourceRules.plist -fv MyApp.app
  • 然后删除资源中的所有内容并验证签名(codesign -v -v MyApp.app)。你会发现它仍然有效
  • 在构建过程中使用完整的签名存根。您可以更改参考资料中的所有内容,但不能更改info.plist。
票数 2
EN

Stack Overflow用户

发布于 2019-04-29 15:59:48

我使用一个名为install4j的产品为我的应用程序创建DMG文件。它在DMG文件中正确地对应用程序进行签名,并且可以从操作系统的macOS之外进行签名。

不过,警告: install4j不是免费软件,实际上相当昂贵。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11736368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档