- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
2019 年底,我的 Java 8 应用程序进行了基本公证,2020 年 2 月,Apple 收紧了有关公证的规则,这使我的应用程序无法进行公证。因为无论如何我都需要迁移到 Java 11,所以我切换到了 Java 11,因为我知道这可以被公证并进行必要的代码更改,但仍然存在一些问题。
具体来说,我的应用程序中有一个选项可以使用 Applescript 与 Apple Music 应用程序(以前称为 iTunes)进行通信。在 Java 11 之前,这始终可以通过使用 libAppleScriptEngine.dylib 来实现,它随 MacoS JDK/JRE 和 applescript jar(最初由 Apple 提供并提供接口(interface),因此可以通过 javax.scripting 查找)。
在 Java 11 中,libAppleScriptEngine.dylib 已被删除,如 Oracle JDK 11 Migration Guide 中所述, 没有提供替代品。
Removed AppleScript Engine
The AppleScript engine, a platform-specific javax.script implementation, has been removed without any replacement in the JDK.
The AppleScript engine has been mostly unusable in recent releases. The functionality worked only in JDK 7 or JDK 8 on systems that already had Apple's version of the AppleScriptEngine.jar file on the system.
但是,如果我在我的包的 MacOS 文件夹中使用 libAppleScriptEngine.dylib 部署我的应用程序,applescript 将继续在 Java 11 上正常运行。
但不幸的是(尽管应用程序的签名验证没有错误)公证失败并出现以下错误
{
"logFormatVersion": 1,
"jobId": "224840dd-15ec-45a2-8cd0-b046dab3bccb",
"status": "Invalid",
"statusSummary": "Archive contains critical validation errors",
"statusCode": 4000,
"archiveFilename": "songkong-osx.dmg",
"uploadDate": "2020-04-14T11:50:17Z",
"sha256": "b4d3a808a11a342b748901e5b6df5d628fb76a936ebe67ed5b2558cee5f268f7",
"ticketContents": null,
"issues": [
{
"severity": "error",
"code": null,
"path": "songkong-osx.dmg/SongKong.app/Contents/MacOS/libAppleScriptEngine.dylib",
"message": "The binary uses an SDK older than the 10.9 SDK.",
"docUrl": null,
"architecture": "x86_64"
}
]
}
那么有办法解决这个问题吗?
这是构建脚本的结尾
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
/usr/bin/codesign --timestamp --options runtime \
--entitlements /Users/paul/code/jthink/songkong/songkong.entitlements \
--sign "Developer ID Application: P Taylor" \
--force --deep --verbose /Applications/SongKong.app
/usr/bin/codesign -vvv --deep --strict /Applications/SongKong.app
spctl -a -t exec -vv /Applications/SongKong.app
cd /Users/paul/code/jthink/SongKong
/usr/local/bin/dmgcanvas /Users/paul/code/jthink/SongKong \
/dmgCanvas_songkong.dmgCanvas /Users/paul/songkong-osx.dmg \
-v SongKong -identity "Developer ID Application: P Taylor"\
-notarizationAppleID paultaylor@jthink.net \
-notarizationPassword password -notarizationPrimaryBundleID songkong
我尝试用最新的 Oracle Java 8 build Oracle 8u241 替换 libAppleScriptEngine.dylib 的版本,但没有任何区别。我很惊讶它是针对旧 SDK 构建的,因为我听说现在可以对 Java 8 构建进行公证。
我可以选择不签署 libAppleScriptEngine.dylib 文件以使公证成功吗?
最佳答案
因为 Oracle Java 8 链接到 OSX 10.8.3,它不会通过 Apple notary。
otool -l Library/Java/JavaVirtualMachines/liberica-jdk-8.jdk/Contents/Home/jre/lib/libAppleScriptEngine.dylib
报告:
cmd LC_VERSION_MIN_MACOSX
cmdsize 16
version 10.9
sdk 10.14
没有允许对 Oracle Java 8 二进制文件进行公证的解决方法。
Java 8 本身是基于 10.7.5 SDK 构建的。您使用的是 Java8 的最新更新并不会改变向后兼容性。 Java 8 最初是在 10.9 Mavericks 期间发布的,并且与当时仍受支持的 10.7.5 Lion 兼容。 Java 8 的任何更新都旨在支持 10.7.5 Lion 并与其相关联。
在 10.12 Sierra 期间发布的 Java 9 向后兼容 10.10。
关于libAppleScriptEngine.dylib 的 Java 公证失败,二进制文件使用早于 10.9 SDK 的 SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61208189/
虽然 intall4j 8 现在支持公证,但它只能在 Mac 上实际运行时创建经过公证的应用程序。这对跨平台开发没有帮助。 是否有关于如何在 Windows 上使用 install4j 8 构建的 d
目前我正在使用 electron-builder ("electron-builder": "^22.9.1") 和 electron-notorize ("electron-notorize": ^
我对新的 Mac Mojave 要求和 future 操作系统支持有一些疑问。假设我使用 QT 制作了一个 Mac 应用程序,它也支持嵌入式 Python 解释器,所以最后我使用有效的证书对其进行签名
我正在尝试对 Electron 应用程序进行公证,以使其在 macOS Catalina 上运行。打包成功但xcrun altool命令抛出“您必须先在线签署相关契约(Contract)。(1048)
我是一名优秀的程序员,十分优秀!