Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux上运行的install4j 6能否正确地对OS X应用程序包进行代码设计?_Install4j - Fatal编程技术网

在Linux上运行的install4j 6能否正确地对OS X应用程序包进行代码设计?

在Linux上运行的install4j 6能否正确地对OS X应用程序包进行代码设计?,install4j,Install4j,我已经在Linux上安装了install4j 6。它创建并签署我的OS X应用程序包,并创建DMG。但每当我打开DMG并在里面运行创建的应用程序时,Gatekeeper都会说它来自一个身份不明的开发人员 > codesign -vv /Volumes/pokercopilot/Poker\ Copilot.app /Volumes/pokercopilot/Poker Copilot.app: unsupported resource found (something not a dire

我已经在Linux上安装了install4j 6。它创建并签署我的OS X应用程序包,并创建DMG。但每当我打开DMG并在里面运行创建的应用程序时,Gatekeeper都会说它来自一个身份不明的开发人员

> codesign -vv /Volumes/pokercopilot/Poker\ Copilot.app
/Volumes/pokercopilot/Poker Copilot.app: unsupported resource found (something not a directory, file or symlink)
当我在OS X上运行相同的install4j build时,应用程序包已正确签名

 > codesign -vv Poker\ Copilot.app/
 Poker Copilot.app/: valid on disk
 Poker Copilot.app/: satisfies its Designated Requirement
我试图消除这些因素,并希望检查我尝试的内容是否在install4j的能力范围内

更新:install4j创建了一个文件名无效的文件:

cp -rf /Volumes/pokercopilot/Poker\ Copilot.app .
cp: /Volumes/pokercopilot/Poker Copilot.app/Contents/Resources/app/.install4j/icons/.install4j/${compiler:pcp.productShortName}Updater.icns: No such file or directory

似乎变量引用没有被指定的值替换。当我在OS X上使用install4j时,./Contents/Resources/app/.install4j/icons/.install4j/文件夹是空的。

标记DMG的代码是纯Java代码,没有任何外部依赖关系,因此执行install4j的操作系统对此并不重要

当我在OS X上运行相同的install4j build时,应用程序包已正确签名

 > codesign -vv Poker\ Copilot.app/
 Poker Copilot.app/: valid on disk
 Poker Copilot.app/: satisfies its Designated Requirement
因为您没有下载DMG,所以网关管理员不会检查它。这里的签名可能也是无效的。要检查签名是否有效,请执行

codesign -vv application.app
签名无效的一个可能原因是您没有使用开发人员ID应用程序证书进行签名

更新:

这实际上是install4j中的一个bug,因为ICNS图标现在是从跨平台映像自动编译的。只有在安装程序应用程序的“可执行文件名”属性中使用编译器变量时,才会发生这种情况。此错误将在6.0.1中修复


解决方法:在安装程序应用程序(本例中为更新程序)的可执行图标属性中,选择Mac OS X部分中的使用ICNS文件,然后选择文件[instal4j安装目录]/resource/macos/app.ICNS。

当我编写应用程序包时,我的意思是使用codesign进行验证。我将用两个应用程序包上的codesign输出更新这个问题。好的,所以在Linux构建中不会替换pcp.productShortName是的,没错。但似乎只有一个文件夹。否则,应用程序看起来很好。那么您在项目中的具体位置输入了${compiler:pcp.productShortName}Updater.icns?在install4j 5中,在Installer->Updater without version check->Executable->Executable name设置为${compiler:pcp.productShortName}Updater。然后,通过在GUI中加载配置并再次保存,我更新为install4j 6。