我在使用Install4j 6为OS X生成已签名的应用程序包时遇到了麻烦。我已阅读http://blog.ej-technologies.com/2014/09/the-v2-signature-scheme-for-application.html上的博客条目,这让我相信无法创建已签名的安装程序应用程序(我的客户端需要几个步骤,包括同意许可证),以安装已签名的应用程序。
示例:
这里的问题是,如果我使用单捆绑安装程序,只需要安装MyApplication.app' (安装程序)已签名。我可以用spctl验证这一点。
$ spctl -a -v /Applications/My\ Application.app
/Applications/My Application.app: rejected
source=no usable signature
问题是,应用程序包本身没有签名,而且我得到了令人讨厌的防火墙弹出窗口,因为应用程序必须打开TCP端口。
$ spctl -a -v /Applications/My\ Application.app
/Applications/My Application.app: a sealed resource is missing or invalid
所以我所做的就是将其转换为 Single Bundle Archive 。然后我做的是打开DMG,并将MyApplication.app拖到/ Applications文件夹中。但是spctl仍然抱怨:
<?php
public function ajax_action() {
// set data used in the element
$this->set('data', array('a'=>123, 'b'=>456, 'd'=>678));
// disable layout template
$this->layout = 'ajax';
// render!
$this->render('/Elements/some_element');
}
有人能指出我正确的方向吗?我该如何解决这个问题?是否完全不可能拥有一个签名的安装程序(即带有GUI向导的东西)来提取已签名的应用程序包?为什么在安装时需要修改捆绑包呢?
答案 0 :(得分:1)
这里的问题是,如果我使用单捆绑安装程序,只有&gt;&#39;安装MyApplication.app&#39; (安装程序)已签名
这是正确的。从技术上讲,这是不可能的,因为在包含的目录(.install4j)中有变量运行时文件会破坏签名。我们今天不会添加此媒体文件类型,但我们显然无法将其删除。
它将通过网守,但如果您需要已签名的应用程序包,则必须使用单个包存档或文件夹安装程序。
所以我所做的就是将其转换为Single Bundle Archive。然后我做的是&gt;打开DMG,然后将MyApplication.app拖到/ Applications文件夹中。 &gt;但是spctl仍抱怨:
这不应该发生。某些东西必须修改过它们之间的文件。尝试签署一个不同的安装程序,如&#34; hello world&#34;抽样并检查那种情况会发生什么。