Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Can';t在MacOS Catalina下安装经过公证的Java应用程序_Java_Macos Catalina_Notarize - Fatal编程技术网

Can';t在MacOS Catalina下安装经过公证的Java应用程序

Can';t在MacOS Catalina下安装经过公证的Java应用程序,java,macos-catalina,notarize,Java,Macos Catalina,Notarize,我有一个用Java编写的应用程序。我使用appbundler将JVM与应用捆绑在一起,然后使用pkgbuild创建一个.pkg安装程序。在我添加公证并升级到Catalina之前,这一切都很顺利。公证和装订工作很好。但是.pkg安装程序生成一个错误,“试图安装到系统卷” 我已更新到appbundler的最新版本。它创建了一个嵌入jdk1.8.0_151.jdk的应用程序 这是我的权利。plist: <?xml version="1.0" encoding="UTF-8"?> <!

我有一个用Java编写的应用程序。我使用appbundler将JVM与应用捆绑在一起,然后使用pkgbuild创建一个.pkg安装程序。在我添加公证并升级到Catalina之前,这一切都很顺利。公证和装订工作很好。但是.pkg安装程序生成一个错误,“试图安装到系统卷”

我已更新到appbundler的最新版本。它创建了一个嵌入jdk1.8.0_151.jdk的应用程序

这是我的权利。plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/    PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
    <key>com.apple.security.cs.disable-executable-page-protection</key>
    <true/>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
</dict>
</plist>

com.apple.security.cs.allow-dyld-environment-variables
com.apple.security.cs.disable-library-validation
com.apple.security.cs.disable-executable-page-protection
com.apple.security.cs.allow-jit
com.apple.security.cs.allow-unsigned-executable-memory
我使用以下命令创建安装程序:

$ ant # creates appBundle/Myapp.app
$ codesign -s "Developer ID Application" --timestamp --options runtime -fv --entitlements entitlements.plist --deep appBundle/Myapp.app
$ /usr/bin/ditto -c -k --keepParent appBundle/Myapp.app Myapp.zip
$ xcrun altool --notarize-app --primary-bundle-id "com.myapp.tony.Myapp" -u "developer@myapp.com" -p <xxx> --file Myapp.zip
$ xcrun altool --notarization-info <xxx> -u "developer@myapp.com" -p <xxx>
$ xcrun stapler staple appBundle/Myapp.app
$ pkgbuild --root appBundle Myapp.pkg
$ant#创建appBundle/Myapp.app
$codesign-s“开发者ID应用程序”--时间戳--options runtime-fv--authentications authentications.plist--deep appBundle/Myapp.app
$/usr/bin/ditto-c-k--keepParent-appBundle/Myapp.app-Myapp.zip
$xcrun altool--公证应用程序--主捆绑包id“com.myapp.tony.myapp”-udeveloper@myapp.com“-p--文件Myapp.zip
$xcrun altool--公证信息-u“developer@myapp.com“-p
$xcrun订书机订书钉appBundle/Myapp.app
$pkgbuild--根appBundle Myapp.pkg
当我在finder中双击Myapp.app时,它运行正常。如果我运行Myapp.pkg,安装程序将成功运行,但它将替换我的开发目录中的副本。要在Applications目录中安装Myapp,必须运行
sudo pkgutil--forget com.Myapp.tony.Myapp
。然后,当我再次运行Myapp.pkg时,在安装程序请求我的密码后,它会报告,“此软件包与此版本的macOS不兼容。该软件包正在尝试将内容安装到系统卷中。”这与首次尝试安装的用户向我报告的内容相同


有什么建议吗?

Harded runtime仍然会导致java出现问题。我也面临同样的问题。尝试删除强化的运行时选项(删除:
--options runtime
),它会暂时导致警告


注:您正在将另一个文件装订到altool中。这是真的吗?

硬运行时仍然会导致java出现问题。我也面临同样的问题。尝试删除强化的运行时选项(删除:
--options runtime
),它会暂时导致警告

注:您正在将另一个文件装订到altool中。这是真的吗?

我尝试删除--options运行时,但没有解决它。我最初收到的错误报告提醒了我这个问题,该报告来自一个用户,他正试图安装我两年前发布的一个软件包,远远早于我听说的公证和强化。我尝试删除--options runtime,但没有解决它。我最初收到的错误报告提醒了我这个问题,它来自一个用户,他正试图安装我两年前发布的一个软件包,远远早于我听说的公证和加固。