forked from qt-creator/qt-creator
iOS: Add API's to get provisioning data
Change-Id: I927b2dbaa9e6c175d90b1407418570bbd2a3d96e Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include <projectexplorer/toolchain.h>
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
@@ -36,11 +37,62 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QSettings;
|
||||
class QFileSystemWatcher;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace Ios {
|
||||
namespace Internal {
|
||||
|
||||
class DevelopmentTeam;
|
||||
|
||||
class ProvisioningProfile
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(ProvisioningProfile)
|
||||
public:
|
||||
ProvisioningProfile() {}
|
||||
std::shared_ptr<DevelopmentTeam> developmentTeam() { return m_team; }
|
||||
QString identifier() const;
|
||||
QString displayName() const;
|
||||
QString details() const;
|
||||
const QDateTime &expirationDate() const { return m_expirationDate; }
|
||||
|
||||
private:
|
||||
std::shared_ptr<DevelopmentTeam> m_team;
|
||||
QString m_identifier;
|
||||
QString m_name;
|
||||
QString m_appID;
|
||||
QDateTime m_expirationDate;
|
||||
friend class IosConfigurations;
|
||||
friend QDebug &operator<<(QDebug &stream, std::shared_ptr<ProvisioningProfile> profile);
|
||||
};
|
||||
|
||||
using ProvisioningProfilePtr = std::shared_ptr<ProvisioningProfile>;
|
||||
using ProvisioningProfiles = QList<ProvisioningProfilePtr>;
|
||||
|
||||
class DevelopmentTeam
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(DevelopmentTeam)
|
||||
public:
|
||||
DevelopmentTeam() {}
|
||||
QString identifier() const;
|
||||
QString displayName() const;
|
||||
QString details() const;
|
||||
bool isFreeProfile() const { return m_freeTeam; }
|
||||
bool hasProvisioningProfile() const { return !m_profiles.isEmpty(); }
|
||||
|
||||
private:
|
||||
QString m_identifier;
|
||||
QString m_name;
|
||||
QString m_email;
|
||||
bool m_freeTeam = false;
|
||||
ProvisioningProfiles m_profiles;
|
||||
friend class IosConfigurations;
|
||||
friend QDebug &operator<<(QDebug &stream, std::shared_ptr<DevelopmentTeam> team);
|
||||
};
|
||||
|
||||
using DevelopmentTeamPtr = std::shared_ptr<DevelopmentTeam>;
|
||||
using DevelopmentTeams = QList<DevelopmentTeamPtr>;
|
||||
|
||||
class IosToolChainFactory : public ProjectExplorer::ToolChainFactory
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -50,13 +102,12 @@ public:
|
||||
QList<ProjectExplorer::ToolChain *> autoDetect(const QList<ProjectExplorer::ToolChain *> &existingToolChains) override;
|
||||
};
|
||||
|
||||
|
||||
class IosConfigurations : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static QObject *instance();
|
||||
static IosConfigurations *instance();
|
||||
static void initialize();
|
||||
static bool ignoreAllDevices();
|
||||
static void setIgnoreAllDevices(bool ignoreDevices);
|
||||
@@ -64,6 +115,13 @@ public:
|
||||
static QVersionNumber xcodeVersion();
|
||||
static Utils::FileName lldbPath();
|
||||
static void updateAutomaticKitList();
|
||||
static const DevelopmentTeams &developmentTeams();
|
||||
static DevelopmentTeamPtr developmentTeam(const QString &teamID);
|
||||
static const ProvisioningProfiles &provisioningProfiles();
|
||||
static ProvisioningProfilePtr provisioningProfile(const QString &profileID);
|
||||
|
||||
signals:
|
||||
void provisioningDataChanged();
|
||||
|
||||
private:
|
||||
IosConfigurations(QObject *parent);
|
||||
@@ -71,11 +129,17 @@ private:
|
||||
void save();
|
||||
void updateSimulators();
|
||||
static void setDeveloperPath(const Utils::FileName &devPath);
|
||||
void initializeProvisioningData();
|
||||
void loadProvisioningData(bool notify = true);
|
||||
|
||||
Utils::FileName m_developerPath;
|
||||
QVersionNumber m_xcodeVersion;
|
||||
bool m_ignoreAllDevices;
|
||||
QFileSystemWatcher *m_provisioningDataWatcher;
|
||||
ProvisioningProfiles m_provisioningProfiles;
|
||||
DevelopmentTeams m_developerTeams;
|
||||
};
|
||||
|
||||
QDebug &operator<<(QDebug &stream, std::shared_ptr<ProvisioningProfile> profile);
|
||||
QDebug &operator<<(QDebug &stream, std::shared_ptr<DevelopmentTeam> team);
|
||||
} // namespace Internal
|
||||
} // namespace Ios
|
||||
|
||||
Reference in New Issue
Block a user