2014-12-07 3 views
7

Ich versuche, eine App im Ubuntu Store zu veröffentlichen, aber etwas stimmt nicht mit Qt Creator (oder etwas anderem).Warum ist der Ubuntu-Veröffentlichungsbildschirm von Qt Creator leer?

ich verwendet, um dies zu sehen:

Qt Creator - Ubuntu Publish Screen for Apps

Aber jetzt alles, was ich sehe, ist dies:

Qt Creator - An Empty Ubuntu Publish Screen for Apps

Wie Sie (oder lesen sehen können, wenn Sie‘ Verwenden Sie einen Reader ohne Bilder), das zweite Bild zeigt hier keine Dinge wie die Registerkarte Allgemein, die es mir erlaubt, Details wie Maintainer, Name, Beschreibung, Sicherheitsrichtliniengruppen einzugeben - es hat keine AppArmor Registerkarte Manifest oder Schließt Tab entweder aus. Die Schaltfläche Paket erstellen ist nicht mehr verfügbar.

Alles, was ich übrig habe, ist ein leerer Bildschirm mit nur einer aktivierten Schaltfläche mit der Aufschrift "Validate existing Click package", aber wenn ich darauf klicke (da gibt es nichts anderes, scheint es ...), dauert es Ich bin in meinem Projektverzeichnis, in dem alle meine Apps aufgeführt sind. Ich wähle die betreffende App aus und kann nicht auf die Schaltfläche zum Öffnen des Dialogfelds klicken, da keine * .click-Datei irgendwo zu sehen ist.

Habe ich etwas falsch gemacht? Weißt du, was hier vor sich geht?

Auch ich lese, dass, um in den Laden zu veröffentlichen, müssen wir "Click apps" erstellen. Ich habe das Universum nach diesem Satz durchsucht und bin mit leeren Händen aufgestiegen. Wie erstelle ich eine "Click App"? Ich dachte, die App, die ich erstellte, war eine Click-App (ich ging zu Qt Creator> Qt Quick Application> ...).

Links:

Tutorial für Publishing-Anwendungen: http://developer.ubuntu.com/publish/apps/packaging-click-apps/

+1

Nur eine wilde Vermutung, aber ich denke, Sie müssen das Click-Paket * zuerst * erstellen .. – Seth

+0

Oh. @Seth, wie würde ich das machen? Ich habe danach gesucht, aber es bringt mich nur zum selben Tutorial zurück, mit dem ich jetzt Probleme habe: –

+1

@ jay_t55: hast du [this] überprüft (https://bugs.launchpad.net/ubuntu/+source/qtcreator/ + Bug/1215937)? Könnten Sie bitte auch die Tutorials verlinken, die Sie ausprobiert haben? [This] (http://developer.ubuntu.com/publish/apps/packaging-click-apps/) ist die eine? Wer downvoted kann erklären warum? Ich habe selbst eine positive Bewertung abgegeben. Für welches Gerät möchten Sie bauen? – lpapp

Antwort

6

Der Grund dafür ist, dass Sie QtCreator von Qt-Projekt richtige anstelle der Verwendung der Ubuntu SDK verwenden, die ihre eigene benutzerdefinierte Version von QtCreator liefert.

Um die Dinge dafür zu erledigen, müssen Sie das Ubuntu SDK verwenden. First you need to install it: Dieses

$ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa 
$ sudo apt-get update && sudo apt-get install ubuntu-sdk 

auch installieren Sie das qtcreator-plugin-ubuntu Paket, seine eigene Werkzeugkette, usw. Dann können Sie es laufen z.B. von der Kommandozeile wie folgt:

$ ubuntu-sdk 

Sie auch in der Unity Dash Anwendungen Objektiv für „Ubuntu SDK“, wie das Bild zeigt unten suchen:

enter image description here

Sie können auch nur beginnen Typisierung der Name in der Suchzeile wie die Bilder unten zeigt:

enter image description here

Bitte stellen Sie sicher, tha t gehen Sie wie folgt vor:

New Project > Ubuntu > Simple UI/Html/QML/etc 

enter image description here

anstatt z.B.was Sie auf Ihre Frage versucht basiert:

enter image description here

+0

Vielen Dank für Ihre Hilfe @lpapp. Ich schätze es sehr. Du kannst ALLE meine Wiederholungen haben lol –

+0

Entschuldigung, es sagt mir, dass ich das Kopfgeld nicht für weitere 16 Stunden vergeben kann. Ich werde dann zurückkommen, um es zu vergeben. –

+2

@ jay_t55: LOL, froh, dass es geholfen hat. Ich denke, sie könnten die offizielle Dokumentation aktualisieren, um es ein wenig klarer zu machen, da ich erwarte, dass Neulinge damit kämpfen. Keine Sorge um das Kopfgeld. – lpapp

1

allererst Sie this lesen müssen:

New Project > Qt Quick Application 

Sie auch von denen mit to set up the click targets and device kits Teil kann (Build und Run) unter Inline vorgestellt Nun, glücklicherweise habe ich vor kurzem ubuntu HTML5-Apps entwickelt, also bin ich an Ihrer Stelle gewesen, Sie werden in der Lage sein, Ihren C++ - Code mit der QML-Option zu integrieren (da Ubuntu-Entwickler nur 2 Optionen haben, entweder HTML5 oder QML).

Hier ist ein Beispielprojekt auf xda fand einen einfachen Rechner App (achten Sie, wie Sie Ihre CPP-Datei enthalten) zu erstellen:

Dateiname: 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 

Dateiname: 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(); 
} 

Datei-Na me: 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); 
       } 
      } 
     } 
    } 
} 

Dateiname: 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 

Dateiname: applicationdata.cpp

#include "applicationdata.h" 
ApplicationData::ApplicationData(QObject *parent) : 
    QObject(parent) 
{ 
} 
QString ApplicationData::calculate(QString command) const { 
    // Some Logic comes here 
    return command; 
} 

Sie können die vollständige Tutorial überprüfen here , obwohl diese App für Ubuntu Touch arbeiten soll, aber ich glaube, dass alle QML Projekte folgen demselben Verfahren.

Publishing App:

Vor allem Klick App ein Paket bedeutet, eine eine Datei klicken> App AKA (Personal Package Archive (PPA)) installiert, um Ihre App zu veröffentlichen, Sie Sie müssen einige Schritte befolgen, die im Detail beschrieben sind here, obwohl das xda Tutorial alles klar erklärt.