在OS X上使用LocalStorage(Sqlite)部署Qt / QML App

时间:2014-04-13 23:19:18

标签: qt sqlite qml

我正在使用QML做一个使用LocalStorage来存储一些信息的应用程序。 我在调试模式下运行时工作正常。

访问数据库的storage.js就是这样。

.import QtQuick.LocalStorage 2.0 as Sql

// First, let's create a short helper function to get the database connection
function getDatabase() {
     return Sql.LocalStorage.openDatabaseSync("MyApp", "0.1", "StorageDatabase", 100000);
}

我的Qt .pro文件包含Sql模块:

QT += sql

首先它在发布模式下运行良好。

但是当我尝试在OSX上部署时,像这样运行macdeployqt

macdeployqt MyApp.app -dmg -qmldir=../MyApp/qml/

首先我遇到一个错误,但我认为没问题,因为我不使用MySQL:错误:没有文件

"/opt/local/lib/mysql55/lib/libmysqlclient.18.dylib"

我通过LocalStorage使用sqlite。

然后尝试在发布模式下运行它不再工作,数据库访问不起作用,甚至在它运行的部署中都没有...现在当我尝试运行应用程序时我得到了错误:

storage.js:5: ReferenceError: Sql is not defined

line 5就是这个:

return Sql.LocalStorage.openDatabaseSync("MyApp", "0.1", "StorageDatabase", 100000);

Sql名称在第一行中定义:

.import QtQuick.LocalStorage 2.0 as Sql

在互联网上寻找这个错误我发现有些地方告诉我要做的事情,就像这里:https://qt-project.org/forums/viewthread/28371

关于此的任何线索?

我使用 Qt5.2,Quick 2.0,Qt Creator 3.01

1 个答案:

答案 0 :(得分:1)

问题与Qt5.1中的Qt错误有关 https://qt-project.org/forums/viewthread/29805/

我已经使用帖子中链接的脚本和自定义macdeployqt来完成这项工作。

脚本:https://gist.github.com/lasconic/5965542 自定义macdeployqt:https://github.com/MaximAlien/macdeployqt

似乎Qt并未对桌面开发给予太多关注,只是解释了一个尚未修复的错误。