From b07a7bda97cc3b57b21d97722189dd8a80d9cedc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 4 Feb 2025 12:51:44 +0100 Subject: [PATCH] qmake: Find Apple ID via IDEProvisioningTeamByIdentifier for Xcode 16.2 The format of the Xcode preferences has changed, so we need to account for the new format when looking up the default development team. The account identifier (previously an email address) was not used by any consumers of the provisioningTeams() function, so it was left out. Pick-to: 6.5 Change-Id: I81a400000615594336e14c95db86ffa71a5c5ff9 Reviewed-by: Alexey Edelev (cherry picked from commit 380a9fdc872e14e537f3e148c7a1e72be5face2d) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 761d516fd4ee10fe943a54743795a91c1d9d3acc) --- qmake/generators/mac/pbuilder_pbx.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index d0d560aca96..0445c4cfdd9 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -470,18 +470,15 @@ static QList provisioningTeams() const QSettings xcodeSettings( QDir::homePath() + QLatin1String("/Library/Preferences/com.apple.dt.Xcode.plist"), QSettings::NativeFormat); - const QVariantMap teamMap = xcodeSettings.value(QLatin1String("IDEProvisioningTeams")).toMap(); - QList flatTeams; - for (QVariantMap::const_iterator it = teamMap.begin(), end = teamMap.end(); it != end; ++it) { - const QString emailAddress = it.key(); - const QVariantList emailTeams = it.value().toList(); - for (QVariantList::const_iterator teamIt = emailTeams.begin(), - teamEnd = emailTeams.end(); teamIt != teamEnd; ++teamIt) { - QVariantMap team = teamIt->toMap(); - team[QLatin1String("emailAddress")] = emailAddress; - flatTeams.append(team); - } + QVariantMap teamMap = xcodeSettings.value(QLatin1String("IDEProvisioningTeamByIdentifier")).toMap(); + if (teamMap.isEmpty()) + teamMap = xcodeSettings.value(QLatin1String("IDEProvisioningTeams")).toMap(); + + QList flatTeams; + for (const auto &[accountIdentifier, associatedTeams] : teamMap.asKeyValueRange()) { + for (const auto &team : associatedTeams.toList()) + flatTeams.append(team.toMap()); } // Sort teams so that Free Provisioning teams come last