可以在Linux上运行的install4j 6能够正确地编写OS X应用程序包吗?

时间:2014-11-11 17:37:47

标签: 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 directory, file or symlink)

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

 > 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/为空。

1 个答案:

答案 0 :(得分:0)

签署DMG的代码是纯Java代码,没有任何外部依赖关系,因此执行install4j的操作系统无关紧要。

  

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

由于您没有下载DMG,因此未经网守检查。这里的签名也可能无效。要检查签名是否有效,请执行

codesign -vv application.app

无效签名的一个可能原因是您没有使用"开发者ID应用程序"签署证书。

<强>更新

这实际上是由于ICNS图标现在可以从跨平台图像自动编译而引入的install4j中的一个错误。只有在&#34;可执行文件名称&#34;中使用编译器变量时才会发生这种情况。安装程序应用程序的属性。此错误将在6.0.1中修复。

解决方法:在&#34;可执行文件图标&#34;安装程序应用程序的属性(在这种情况下为更新程序),选择&#34;使用ICNS文件&#34;在&#34; Mac OS X&#34;部分并选择文件[instal4j installation directory]/resource/macos/app.icns