aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Pachdha <vikas.pachdha@qt.io>2017-10-10 13:01:06 +0200
committerVikas Pachdha <vikas.pachdha@qt.io>2017-10-10 17:33:38 +0000
commitc3688b901f320283f026d777aee04dcbc2560892 (patch)
tree691e82c9eacdbb8ceb0205912871bd256d2f093f
parent4a3765d64ce7f3fac9b791f5ec1c3719efb53d27 (diff)
Ios: Fix incorrect Xcode version detected
pkgutil always return the Xcode path installed via app store Task-number: QTCREATORBUG-18091 Change-Id: I47b5a9c3f3a482feea2dc903dbff3441a3930ab6 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
-rw-r--r--src/plugins/ios/iosconfigurations.cpp32
-rw-r--r--src/plugins/ios/iosrunner.cpp19
2 files changed, 11 insertions, 40 deletions
diff --git a/src/plugins/ios/iosconfigurations.cpp b/src/plugins/ios/iosconfigurations.cpp
index 6868091115..4e8dd41aa2 100644
--- a/src/plugins/ios/iosconfigurations.cpp
+++ b/src/plugins/ios/iosconfigurations.cpp
@@ -210,30 +210,16 @@ static void setupKit(Kit *kit, Core::Id pDeviceType, const ToolChainPair& toolCh
SysRootKitInformation::setSysRoot(kit, sdkPath);
}
-static QVersionNumber findXcodeVersion()
-{
- Utils::SynchronousProcess pkgUtilProcess;
- Utils::SynchronousProcessResponse resp =
- pkgUtilProcess.runBlocking("pkgutil", QStringList("--pkg-info-plist=com.apple.pkg.Xcode"));
- if (resp.result == Utils::SynchronousProcessResponse::Finished) {
- QDomDocument xcodeVersionDoc;
- if (xcodeVersionDoc.setContent(resp.allRawOutput())) {
- QDomNodeList nodes = xcodeVersionDoc.elementsByTagName(QStringLiteral("key"));
- for (int i = 0; i < nodes.count(); ++i) {
- QDomElement elem = nodes.at(i).toElement();
- if (elem.text().compare(QStringLiteral("pkg-version")) == 0) {
- QString versionStr = elem.nextSiblingElement().text();
- return QVersionNumber::fromString(versionStr);
- }
- }
- } else {
- qCDebug(iosCommonLog) << "Error finding Xcode version. Cannot parse xml output from pkgutil.";
- }
+static QVersionNumber findXcodeVersion(const Utils::FileName &developerPath)
+{
+ FileName xcodeInfo = developerPath.parentDir().appendPath("Info.plist");
+ if (xcodeInfo.exists()) {
+ QSettings settings(xcodeInfo.toString(), QSettings::NativeFormat);
+ return QVersionNumber::fromString(settings.value("CFBundleShortVersionString").toString());
} else {
- qCDebug(iosCommonLog) << "Error finding Xcode version. pkgutil command failed.";
+ qCDebug(iosCommonLog) << "Error finding Xcode version." << xcodeInfo.toUserOutput() <<
+ "does not exist.";
}
-
- qCDebug(iosCommonLog) << "Error finding Xcode version. Unknow error.";
return QVersionNumber();
}
@@ -439,7 +425,7 @@ void IosConfigurations::setDeveloperPath(const FileName &devPath)
m_instance->updateSimulators();
// Find xcode version.
- m_instance->m_xcodeVersion = findXcodeVersion();
+ m_instance->m_xcodeVersion = findXcodeVersion(m_instance->m_developerPath);
}
}
}
diff --git a/src/plugins/ios/iosrunner.cpp b/src/plugins/ios/iosrunner.cpp
index 18264317bb..7f993865ba 100644
--- a/src/plugins/ios/iosrunner.cpp
+++ b/src/plugins/ios/iosrunner.cpp
@@ -486,26 +486,11 @@ void IosDebugSupport::start()
setInferiorExecutable(iosRunConfig->localExecutable().toString());
setRemoteChannel("connect://localhost:" + gdbServerPort.toString());
- FileName xcodeInfo = IosConfigurations::developerPath().parentDir().appendPath("Info.plist");
- bool buggyLldb = false;
- if (xcodeInfo.exists()) {
- QSettings settings(xcodeInfo.toString(), QSettings::NativeFormat);
- QStringList version = settings.value(QLatin1String("CFBundleShortVersionString")).toString()
- .split('.');
- if (version.value(0).toInt() == 5 && version.value(1, QString::number(1)).toInt() == 0)
- buggyLldb = true;
- }
QString bundlePath = iosRunConfig->bundleDirectory().toString();
bundlePath.chop(4);
FileName dsymPath = FileName::fromString(bundlePath.append(".dSYM"));
- if (!dsymPath.exists()) {
- if (buggyLldb)
- TaskHub::addTask(Task::Warning,
- tr("Debugging with Xcode 5.0.x can be unreliable without a dSYM. "
- "To create one, add a dsymutil deploystep."),
- ProjectExplorer::Constants::TASK_CATEGORY_DEPLOYMENT);
- } else if (dsymPath.toFileInfo().lastModified()
- < QFileInfo(iosRunConfig->localExecutable().toUserOutput()).lastModified()) {
+ if (dsymPath.exists() && dsymPath.toFileInfo().lastModified()
+ < QFileInfo(iosRunConfig->localExecutable().toUserOutput()).lastModified()) {
TaskHub::addTask(Task::Warning,
tr("The dSYM %1 seems to be outdated, it might confuse the debugger.")
.arg(dsymPath.toUserOutput()),