我用 Qt Creator 创建了一个捆绑应用程序,它使用文件夹内的临时文件。它是一个第三方库(英特尔 MKL Pardiso OOC),负责创建、使用和删除临时文件。包含临时文件的文件夹是:~/Documents/AppName/temp/
.
当我在 finder 中双击执行此应用程序时,或使用命令从控制台执行此应用程序时open -a application.app
,第三方库会抱怨,因为它无法打开临时文件。
但是,当我使用命令打开它时,./application.app/Contents/MacOS/executable
它可以完美运行。
当我在 Qt Creator 中执行时,无论是在发布模式还是调试模式下,它都可以完美运行。
这让我认为这不是第三方库的问题,而是与我执行应用程序的方式或我的捆绑应用程序有关的问题。
这是我的info.plist
文件,由 Qt 生成。
<?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>CFBundleExecutable</key>
<string>executable</string>
<key>CFBundleIconFile</key>
<string>icon.ico</string>
<key>CFBundleIdentifier</key>
<string>com.yourcompany.application</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
<key>NOTE</key>
<string>This file was generated by Qt/QMake.</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
</dict>
</plist>
open
使用命令,双击finder和使用./
方法之间的文件权限有什么区别吗?
如果没有,我需要在我的info.plist
文件中添加一些东西吗?
细节:
- 该应用程序已使用 Qt Creator 5.12.5 的 macdeployqt 部署。
- 该应用程序使用英特尔 MKL Pardiso OCC,它在
Documents/AppName/temp/
. 这是抱怨打开临时文件时出现问题的库,抛出错误代码:-10。
我已经看过以下问题,但没有一个回答我的问题: