我正在尝试将应用程序发布到Ubuntu商店,但是Qt Creator(或其他东西)出了问题。
我曾经能够看到这个:
但现在我所看到的就是:
正如您所看到的(或者,如果您使用的是没有图像的阅读器),此处的第二张图片不会显示“常规”标签,这样我就可以输入维护者,名称,描述等详细信息,安全策略组 - 它没有“清单”选项卡“AppArmor”选项卡或“排除”选项卡。 “创建包”按钮消失了。
我剩下的只是一个空白屏幕,只有一个启用按钮,显示“验证现有点击包”,但是当我点击它时(因为我无能为力,似乎......),它需要我到我的项目目录,其中列出了我的所有应用程序。我选择了有问题的应用程序,我无法点击对话框上的打开按钮,因为在任何地方都没有* .click文件可供查看。
我做错了吗?你知道这里发生了什么吗?
另外,我读到为了发布到商店,我们需要创建“点击应用”。我在宇宙中寻找这个短语并空手而归。如何创建“点击应用”?我认为我创建的应用程序是一个点击应用程序(我去了Qt Creator> Qt快速应用程序> ...)。
链接:
发布应用教程:http://developer.ubuntu.com/publish/apps/packaging-click-apps/
答案 0 :(得分:6)
原因是您正在使用Qt Project中的QtCreator,而不是使用Ubuntu SDK,它提供了自己的QtCreator自定义版本。
为了完成这项工作,您需要使用Ubuntu SDK。 First you need to install it:
$ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$ sudo apt-get update && sudo apt-get install ubuntu-sdk
这也将安装qtcreator-plugin-ubuntu
包,自己的工具链等。然后你可以运行它,例如从命令行如下:
$ ubuntu-sdk
您还可以在Unity Dash Applications镜头中搜索“Ubuntu SDK”,如下图所示:
您也可以在搜索行中输入名称,如下图所示:
请确保您执行以下操作:
New Project > Ubuntu > Simple UI/Html/QML/etc
而不是例如您根据自己的问题尝试了什么:
New Project > Qt Quick Application
您也可以使用to set up the click targets and device kits部分内容(构建和运行)显示在下面内联:
答案 1 :(得分:1)
首先你需要好好阅读this,幸运的是我最近一直在开发ubuntu HTML5应用程序,所以我以前一直在你的位置,你将能够使用QML选项集成你的c ++代码(因为ubuntu开发人员只有2个HTML5或QML选项。
这是一个在xda上创建的示例项目,用于创建一个简单的计算器应用程序(注意如何包含您的cpp文件):
文件名:apcalc-qml.pro
QT += qml quick
# If your application uses the Qt Mobility libraries, uncomment the following
# lines and add the respective components to the MOBILITY variable.
# CONFIG += mobility
# MOBILITY +=
#C++ source files
SOURCES += cpp/main.cpp\
cpp/applicationdata.cpp\
#C++ header files
HEADERS += cpp/applicationdata.h
#Path to the libraries...
INCLUDEPATH += $$PWD\
$$PWD/../../../../usr/lib
DEPENDPATH += $$PWD/../../../../usr/lib
#Path to "other files" in this case the QML-Files
OTHER_FILES += \
qml/main.qml\
qml/basicCalc/*.qml
文件名:main.cpp
#include <QtGui/QGuiApplication>
#include <QGuiApplication>
#include <QQuickView>
#include <QtQml/qqmlcontext.h>
#include <stdio.h>
#include "applicationdata.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView view;
ApplicationData data;
//Resize Mode so the content of the QML file will scale to the window size
view.setResizeMode(QQuickView::SizeRootObjectToView);
//With this we can add the c++ Object to the QML file
view.rootContext()->setContextProperty("applicationData", &data);
//Resolve the relativ path to the absolute path (at runtime)
const QString qmlFilePath= QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), "qml/main.qml");
view.setSource(QUrl::fromLocalFile(qmlFilePath));
//For debugging we print out the location of the qml file
QByteArray ba = qmlFilePath.toLocal8Bit();
const char *str = ba.data();
printf("Qml File:%s\n",str);
//Not sure if this is nessesary, but on mobile devices the app should start in fullscreen mode
#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX)
view.showFullScreen();
#else
view.show();
#endif
return app.exec();
}
文件名:main.qml
import QtQuick 2.0
import Ubuntu.Components 0.1
import "basicCalc"
import QtQuick.Window 2.0
MainView {
//objectName for functional testing purposes (autopilot-qt5)
objectName: "mainView"
applicationName: "apcalc-qml"
automaticOrientation:true;
width: units.gu(60);
height: units.gu(100);
id:root
Tabs {
objectName: "Tabs"
ItemStyle.class: "new-tabs"
anchors.fill: parent
id:mainWindow;
Tab {
objectName: "Calculator"
title: "Calculator"
page:BasicCalc{
width: root.width;
height: root.height-root.header.height;
anchors.top: parent.top;
anchors.topMargin: root.header.height;
onToCalculateChanged: {
//access to the c++ Object
result=applicationData.calculate(toCalculate);
}
}
}
}
}
文件名:applicationdata.h
#ifndef APPLICATIONDATA_H
#define APPLICATIONDATA_H
#include <QObject>
class ApplicationData : public QObject
{
Q_OBJECT
public:
explicit ApplicationData(QObject *parent = 0);
Q_INVOKABLE QString calculate(QString) const;
signals:
public slots:
};
#endif // APPLICATIONDATA_H
文件名:applicationdata.cpp
#include "applicationdata.h"
ApplicationData::ApplicationData(QObject *parent) :
QObject(parent)
{
}
QString ApplicationData::calculate(QString command) const {
// Some Logic comes here
return command;
}
你可以查看完整的教程here,虽然这个应用程序适用于ubuntu touch,但我相信所有的QML项目都遵循相同的程序。
发布应用
首先,点击应用表示一个包,一个文件点击&gt;安装您的应用程序AKA(个人包存档(PPA)),为了发布您的应用程序,您需要遵循详细here中提到的一些程序,尽管xda教程以明确的方式解释了所有内容。