我在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/为空。
答案 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
。