栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何为OSX和Gatekeeper签名(动态)JNLP文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何为OSX和Gatekeeper签名(动态)JNLP文件

我想我找到了解决方案。我目前唯一能想到的。基本上,我们需要使用自定义应用启动器包装JNLP,对应用进行签名,确保可以在服务器上即时修改JNLP,然后运行它。

您可能已经知道,有一个应用程序捆绑程序项目,可以将任何JAR文件包装到OSX可执行文件中。可以签名,交付,并且不会使Gatekeeper失败。我制作了一个自定义派生叉(用于主派生),可以将JNLP文件打包,然后打包,您有一个自定义应用程序执行JNLP应该做的所有工作。

但是,要求您确实具有有效的“开发人员ID应用程序”证书

  1. 前往bitbucket.org并下载当前版本
  2. 运行ant任务并构建appbundler软件包。
  3. 查看将创建应用程序容器的示例构建脚本的文档。
    • 该示例目前未将JNLP包含在应用程序中。
    • 应用程序签名以某种方式创建,以便以后可以修改JNLP文件。
    • 该应用程序被放入一个zip文件中。这对于下载应用程序很重要,因为它们只是目录
  4. 创建服务器代码。加载ZIP文件,将JNLP文件放入目录
    <yourapp>.app/Contents/Java/
  5. 交付zip文件。

现在,如果一切顺利,则应该自动将zip文件解压缩到“下载”文件夹中,并且您应该会看到应用程序图标。如果您确实没有犯错,则可以像执行普通应用程序一样执行该应用程序。

我希望这将有助于许多开发人员使用OSX修复损坏的JNLP行为。

[可修改JNLP的更新]自OSX
10.9.5起,要求您的应用程序上具有有效的版本2签名。这意味着它以前由应用程序捆绑程序(设置资源列表文件)使用的技巧不再起作用。一切都必须立即签名,之后几乎不可能更改已签名的应用程序。

但是,我确实找到了一种方法:使用应用捆绑程序。将JNLP设置为

Contents/_CodeSignature
目录内的文件。暂时不要在其中复制可修改的JNLP,但要这样做,例如稍后在修补zip时使用Java(无论如何,您都需要一些代码)。

请注意:仅当您必须将另一个JNLP文件动态放入应用容器中时,这才真正需要(这就是问题所在)

更新(08-2017)

甲骨文将在9月底发布Java 9。Appbundler无法正确处理java9
vm。他们更改了很多API和javaws的工作方式。我要说的是:如果要使用包装的JNLP应用程序,请坚持使用java8。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号