install4j - 从 install4j 安装程序安装和触发 macOS 应用程序
问题描述
我有一个用例,我的 java 应用程序需要使用第三方 dylib 通过串行端口访问 USBMSC(USB 大容量存储类)设备。但是,由于 macOS mojave (10.13),用 shell-script 编写的特权帮助工具脚本停止工作。为了解决这个问题,我们创建了一个 swift 应用程序,它可以在不使用 shell 脚本的情况下设置设备的正确权限,并且可以按预期工作。我现在想创建一个可以同时安装可执行 jar 和 macOS 应用程序的可再分发软件,因为我们不希望用户运行单独的安装程序并让他们的体验变得更糟。
我尝试将应用程序与其他文件捆绑在一起并使用运行可执行文件或批处理文件操作,但没有成功。
任何帮助将不胜感激。
编辑:在使用反复试验运行几次测试后(是的,我在 mac 上找不到安装日志文件),找到了真正的根本原因。助手应用程序缺少“可移动媒体”权限,该权限应从父应用程序继承,因为助手应用程序捆绑在父 Java 应用程序包中。只有在授予父应用程序访问“可移动媒体”的权限后,我才能从父应用程序内容执行帮助程序 macOS 应用System Preferences->Security & Privacy->Files and Folders
程序。
现在问题真的变成了:在通过运行可执行文件或批处理文件操作执行帮助 macOS 应用程序之前,如何在安装过程中获得“可移动媒体”权限?
解决方案
推荐阅读
- node.js - 如何从 localhosting 更改为域名?
- node.js - 处理从 React js 上传多张图片
- ios - 是否可以“切片”附加到 iOS 应用程序资产的视频?
- reactjs - Suspense component gets called before the data actually loads
- android - 架构 ViewModel 中的 BaseObservable 字段未添加任何观察者回调
- python - 没有名为“lib.mouse”的模块-python
- java - 带有空参数的 Spring Boot 本机查询
- java - 是否可以使用 MPAndroid Chart 从组合条形图中突出显示的条形数据中获取价值?
- sql - 如何检查列中是否仅存在值组合?
- javascript - Node.js 读取 multipart/form-data POST