0

我用 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。

我已经看过以下问题,但没有一个回答我的问题:

4

0 回答 0