Qt Mac 应用程序存储数据路径
Posted
技术标签:
【中文标题】Qt Mac 应用程序存储数据路径【英文标题】:Qt Mac Application storing data path 【发布时间】:2018-02-11 09:45:16 【问题描述】:我有一个被拒绝的应用程序,通过检查它,我发现我需要在应用程序包中写入(我还不清楚)。 我使用了以下代码 Qt 5.9.1:
QStandardPaths::StandardLocation type = static_cast<QStandardPaths::StandardLocation>(QStandardPaths::DataLocation);
QString directory = QStandardPaths::writableLocation(type);
当我在 qt creator 中调试路径时,它是 目录=“/Users/myname/Library/Application Support/Myname/Myapplicaiton”
我尝试了以下结果,结果相同
QString directory = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first();
但我们需要在应用程序包中添加数据。据我了解,应该是 myapplication.app\data\(如有错误请指正)
在 Qt 中为 appstore 应用程序定义路径的正确方法是什么?
有没有办法提供写入此路径的权限?
谢谢
【问题讨论】:
您是否尝试过使用 QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation).first() + "/data"? 在应用程序包中更改或添加文件会破坏代码签名 - 我不确定是否愿意这样做。 是的,这会破坏代码签名吗? 我注意到,appstore 在 12.6 上拒绝了该应用程序崩溃,但在我的本地计算机上,它并没有崩溃。难道我需要某种权利来添加这条路径?任何人都知道如何使用这个密钥或类似的密钥来获得写权限:com.apple.security.files.user-selected.read-write 权利com.apple.security.files.user-selected.read-write
允许您访问沙盒之外的文件。但是,用户必须通过打开/保存面板主动选择该文件。阅读PowerBox
的文档。
【参考方案1】:
在 MAC 上试试这个:
auto path = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
path += "/data";
【讨论】:
以上是关于Qt Mac 应用程序存储数据路径的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X 和 iOS 的 Core Data 中存储贝塞尔路径
QT (4.7) 头文件和库在 mac 上的位置(即路径)?