mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
Merge branch 'XcodesOrg:main' into main
This commit is contained in:
commit
361740123c
11 changed files with 192 additions and 99 deletions
26
Scripts/fix_libfido2_framework.sh
Executable file
26
Scripts/fix_libfido2_framework.sh
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Fix libfido2.framework structure for macOS validation
|
||||
# If this script is not run, the build will fail because xcodebuild is expecting the library in a specific structure
|
||||
FRAMEWORK_PATH="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Frameworks/libfido2.framework"
|
||||
|
||||
if [ -d "$FRAMEWORK_PATH" ] && [ -f "$FRAMEWORK_PATH/Info.plist" ] && [ ! -d "$FRAMEWORK_PATH/Versions" ]; then
|
||||
echo "Fixing libfido2.framework bundle structure..."
|
||||
|
||||
# Create proper bundle structure
|
||||
mkdir -p "$FRAMEWORK_PATH/Versions/A/Resources"
|
||||
|
||||
# Move files to proper locations
|
||||
mv "$FRAMEWORK_PATH/Info.plist" "$FRAMEWORK_PATH/Versions/A/Resources/"
|
||||
mv "$FRAMEWORK_PATH/libfido2" "$FRAMEWORK_PATH/Versions/A/"
|
||||
if [ -f "$FRAMEWORK_PATH/LICENSE" ]; then
|
||||
mv "$FRAMEWORK_PATH/LICENSE" "$FRAMEWORK_PATH/Versions/A/"
|
||||
fi
|
||||
|
||||
# Create symbolic links
|
||||
ln -sf A "$FRAMEWORK_PATH/Versions/Current"
|
||||
ln -sf Versions/Current/libfido2 "$FRAMEWORK_PATH/libfido2"
|
||||
ln -sf Versions/Current/Resources "$FRAMEWORK_PATH/Resources"
|
||||
|
||||
echo "libfido2.framework structure fixed"
|
||||
fi
|
||||
|
|
@ -139,6 +139,7 @@
|
|||
E8DA461125FAF7FB002E85EF /* NotificationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8DA461025FAF7FB002E85EF /* NotificationsView.swift */; };
|
||||
E8E98A9025D8631800EC89A0 /* InstallationStepRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAFBC3FF259AC17F00E2A3D8 /* InstallationStepRowView.swift */; };
|
||||
E8E98A9625D863D700EC89A0 /* InstallationStepDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E98A9525D863D700EC89A0 /* InstallationStepDetailView.swift */; };
|
||||
E8EEAD1D2E79174F00BE67E8 /* XcodesIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = E8EEAD1C2E79174F00BE67E8 /* XcodesIcon.icon */; };
|
||||
E8F44A1E296B4CD7002D6592 /* Path in Frameworks */ = {isa = PBXBuildFile; productRef = E8F44A1D296B4CD7002D6592 /* Path */; };
|
||||
E8FA00542B5B109800769CE0 /* com.xcodesorg.xcodesapp.Helper in Copy Helper */ = {isa = PBXBuildFile; fileRef = CA9FF8AE2595967A00E47BAF /* com.xcodesorg.xcodesapp.Helper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
E8FD5727291EE4AC001E004C /* AsyncNetworkService in Frameworks */ = {isa = PBXBuildFile; productRef = E8FD5726291EE4AC001E004C /* AsyncNetworkService */; };
|
||||
|
|
@ -341,6 +342,7 @@
|
|||
E8D655BF288DD04700A139C2 /* SelectedActionType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectedActionType.swift; sourceTree = "<group>"; };
|
||||
E8DA461025FAF7FB002E85EF /* NotificationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsView.swift; sourceTree = "<group>"; };
|
||||
E8E98A9525D863D700EC89A0 /* InstallationStepDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstallationStepDetailView.swift; sourceTree = "<group>"; };
|
||||
E8EEAD1C2E79174F00BE67E8 /* XcodesIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = XcodesIcon.icon; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
|
@ -560,6 +562,7 @@
|
|||
CABFAA1D2592F7F200380FEE /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E8EEAD1C2E79174F00BE67E8 /* XcodesIcon.icon */,
|
||||
CAA858DA25A3E11F00ACF8C0 /* aria2-release-1.35.0.tar.gz */,
|
||||
CAA8588025A2B63A00ACF8C0 /* aria2c */,
|
||||
CAA8588A25A2B69300ACF8C0 /* aria2c.LICENSE */,
|
||||
|
|
@ -703,6 +706,7 @@
|
|||
buildConfigurationList = CAD2E7BC2449575100113D76 /* Build configuration list for PBXNativeTarget "Xcodes" */;
|
||||
buildPhases = (
|
||||
CAD2E79A2449574E00113D76 /* Sources */,
|
||||
D971F84C2E79102E005F84C9 /* Fix libfido2 structure */,
|
||||
CAD2E79B2449574E00113D76 /* Frameworks */,
|
||||
CA9FF8292594F33200E47BAF /* Generate Acknowledgements */,
|
||||
CAD2E79C2449574E00113D76 /* Resources */,
|
||||
|
|
@ -837,6 +841,7 @@
|
|||
files = (
|
||||
CAD2E7A92449575000113D76 /* Preview Assets.xcassets in Resources */,
|
||||
9DD4FFCB2B13EC1800C974F1 /* Localizable.xcstrings in Resources */,
|
||||
E8EEAD1D2E79174F00BE67E8 /* XcodesIcon.icon in Resources */,
|
||||
CA9FF83F2594FBC000E47BAF /* Licenses.rtf in Resources */,
|
||||
CAA858DB25A3E11F00ACF8C0 /* aria2-release-1.35.0.tar.gz in Resources */,
|
||||
CAD2E7A62449575000113D76 /* Assets.xcassets in Resources */,
|
||||
|
|
@ -876,6 +881,24 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = "cd \"${SRCROOT}/Xcodes/AcknowledgementsGenerator\"\nxcrun -sdk macosx swift run AcknowledgementsGenerator \\\n -p \"${SRCROOT}/Xcodes.xcodeproj\" \\\n -o \"${SRCROOT}/Xcodes/Resources/Licenses.rtf\"\n";
|
||||
};
|
||||
D971F84C2E79102E005F84C9 /* Fix libfido2 structure */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Fix libfido2 structure";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "${SRCROOT}/Scripts/fix_libfido2_framework.sh\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
|
@ -1092,7 +1115,8 @@
|
|||
CA8FB636256E154800469DA5 /* Test */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = XcodesIcon;
|
||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
||||
CODE_SIGNING_SUBJECT_ORGANIZATIONAL_UNIT = ZU6GR6B2FY;
|
||||
CODE_SIGN_ENTITLEMENTS = Xcodes/Resources/XcodesTest.entitlements;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
|
|
@ -1344,7 +1368,8 @@
|
|||
CAD2E7BD2449575100113D76 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = XcodesIcon;
|
||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
||||
CODE_SIGNING_SUBJECT_ORGANIZATIONAL_UNIT = ZU6GR6B2FY;
|
||||
CODE_SIGN_ENTITLEMENTS = Xcodes/Resources/Xcodes.entitlements;
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
||||
|
|
@ -1372,7 +1397,8 @@
|
|||
CAD2E7BE2449575100113D76 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = XcodesIcon;
|
||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
||||
CODE_SIGNING_SUBJECT_ORGANIZATIONAL_UNIT = ZU6GR6B2FY;
|
||||
CODE_SIGN_ENTITLEMENTS = Xcodes/Resources/Xcodes.entitlements;
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
||||
|
|
|
|||
|
|
@ -63,7 +63,8 @@ extension AppState {
|
|||
if selectedXcode.version > Version(major: 16, minor: 0, patch: 0) {
|
||||
|
||||
if runtime.architectures?.isAppleSilicon ?? false {
|
||||
if selectedXcode.version > Version(major: 26, minor: 0, patch: 0) {
|
||||
// Need Xcode 26 but with some RC/Beta's its simpler to just to greater > 25
|
||||
if selectedXcode.version > Version(major: 25, minor: 0, patch: 0) {
|
||||
downloadRuntimeViaXcodeBuild(runtime: runtime)
|
||||
} else {
|
||||
// not supported
|
||||
|
|
|
|||
|
|
@ -35,21 +35,18 @@ struct PlatformsView: View {
|
|||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
if !architectures.isEmpty {
|
||||
Spacer()
|
||||
Button {
|
||||
switch selectedRuntimeArchitecture {
|
||||
case .arm64: selectedRuntimeArchitecture = .x86_64
|
||||
case .x86_64: selectedRuntimeArchitecture = .arm64
|
||||
}
|
||||
} label: {
|
||||
switch selectedRuntimeArchitecture {
|
||||
case .arm64:
|
||||
Label(selectedRuntimeArchitecture.displayString, systemImage: "m4.button.horizontal")
|
||||
.labelStyle(.trailingIcon)
|
||||
case .x86_64:
|
||||
Label(selectedRuntimeArchitecture.displayString, systemImage: "cpu.fill")
|
||||
.labelStyle(.trailingIcon)
|
||||
Picker("Architecture", selection: $selectedRuntimeArchitecture) {
|
||||
ForEach(Architecture.allCases, id: \.self) { arch in
|
||||
Label(arch.displayString, systemImage: arch.iconName)
|
||||
.tag(arch)
|
||||
}
|
||||
.labelStyle(.trailingIcon)
|
||||
}
|
||||
.pickerStyle(.menu)
|
||||
.menuStyle(.button)
|
||||
.buttonStyle(.borderless)
|
||||
.fixedSize()
|
||||
.labelsHidden()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,60 +22,44 @@ struct MainToolbarModifier: ViewModifier {
|
|||
}
|
||||
.keyboardShortcut(KeyEquivalent("r"))
|
||||
.help("RefreshDescription")
|
||||
Spacer()
|
||||
|
||||
Button(action: {
|
||||
switch architectures {
|
||||
case .universal: architectures = .appleSilicon
|
||||
case .appleSilicon: architectures = .universal
|
||||
}
|
||||
}) {
|
||||
switch architectures {
|
||||
case .universal:
|
||||
Label("Universal", systemImage: "cpu.fill")
|
||||
case .appleSilicon:
|
||||
Label("Apple Silicon", systemImage: "m4.button.horizontal")
|
||||
.labelStyle(.trailingIcon)
|
||||
.foregroundColor(.accentColor)
|
||||
}
|
||||
}
|
||||
.help("FilterAvailableDescription")
|
||||
.disabled(architectures.isManaged)
|
||||
|
||||
Button(action: {
|
||||
switch category {
|
||||
case .all: category = .release
|
||||
case .release: category = .beta
|
||||
case .beta: category = .all
|
||||
Spacer()
|
||||
|
||||
let isFiltering = isInstalledOnly || category != .all || architectures != .universal
|
||||
Menu("Filter", systemImage: "line.horizontal.3.decrease.circle") {
|
||||
Section {
|
||||
Toggle("Installed Only", systemImage: "arrow.down.app", isOn: $isInstalledOnly) .labelStyle(.titleAndIcon)
|
||||
}
|
||||
}) {
|
||||
switch category {
|
||||
case .all:
|
||||
Label("All", systemImage: "line.horizontal.3.decrease.circle")
|
||||
case .release:
|
||||
.help("FilterInstalledDescription")
|
||||
|
||||
Section {
|
||||
Picker("Category", selection: $category) {
|
||||
Label("All", systemImage: "line.horizontal.3.decrease.circle")
|
||||
.tag(XcodeListCategory.all)
|
||||
Label("ReleaseOnly", systemImage: "line.horizontal.3.decrease.circle.fill")
|
||||
.labelStyle(.trailingIcon)
|
||||
.tag(XcodeListCategory.release)
|
||||
Label("BetaOnly", systemImage: "line.horizontal.3.decrease.circle.fill")
|
||||
.tag(XcodeListCategory.beta)
|
||||
}
|
||||
}
|
||||
.help("FilterAvailableDescription")
|
||||
.disabled(category.isManaged)
|
||||
|
||||
Section {
|
||||
Picker("Architecture", selection: $architectures) {
|
||||
Label("Universal", systemImage: "cpu.fill")
|
||||
.tag(XcodeListArchitecture.universal)
|
||||
Label("Apple Silicon", systemImage: "m4.button.horizontal")
|
||||
.foregroundColor(.accentColor)
|
||||
case .beta:
|
||||
Label("BetaOnly", systemImage: "line.horizontal.3.decrease.circle.fill")
|
||||
.labelStyle(.trailingIcon)
|
||||
.foregroundColor(.accentColor)
|
||||
.tag(XcodeListArchitecture.appleSilicon)
|
||||
}
|
||||
.help("FilterArchitecturesDescription")
|
||||
.disabled(architectures.isManaged)
|
||||
}
|
||||
.labelStyle(.titleAndIcon)
|
||||
}
|
||||
.help("FilterAvailableDescription")
|
||||
.disabled(category.isManaged)
|
||||
|
||||
Button(action: {
|
||||
isInstalledOnly.toggle()
|
||||
}) {
|
||||
if isInstalledOnly {
|
||||
Label("Filter", systemImage: "arrow.down.app.fill")
|
||||
.foregroundColor(.accentColor)
|
||||
} else {
|
||||
Label("Filter", systemImage: "arrow.down.app")
|
||||
}
|
||||
}
|
||||
.help("FilterInstalledDescription")
|
||||
.pickerStyle(.inline)
|
||||
.symbolVariant(isFiltering ? .fill : .none)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1547,7 +1547,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Are you sure you want to stop the installation of Xcode %@?"
|
||||
"value" : "Tem certeza que deseja interromper a instalação do Xcode %@?"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -1798,7 +1798,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Delete"
|
||||
"value" : "Remover"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -1923,7 +1923,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Are you sure you want to delete %@?"
|
||||
"value" : "Tem certeza que deseja remover %@?"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -2172,7 +2172,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Apple only supports downloading runtimes iOS 16.0+, watchOS 9.0+, tvOS 16+, visionOS 1.0+ with Xcode 16.1+. Please download, make active and try again."
|
||||
"value" : "A Apple oferece suporte para download somente nos sistemas operacionais iOS 16.0+, watchOS 9.0+, tvOS 16+ e visionOS 1.0+ com Xcode 16.1+. Baixe, ative e tente novamente."
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -2297,7 +2297,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Apple supports downloading Apple Silicon runtimes only when Xcode 26+ is selected. Please Select and try downloading again or download the universal build."
|
||||
"value" : "A Apple oferece suporte ao download de runtimes do Apple Silicon somente quando o Xcode 26+ estiver selecionado. Selecione e tente baixar novamente ou baixe a compilação universal."
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -3800,7 +3800,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Could not find file \"%@\"."
|
||||
"value" : "Não foi possível encontrar o arquivo \"%@\"."
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -4910,7 +4910,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Authenticating"
|
||||
"value" : "Autenticando"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -6860,7 +6860,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Copy URL"
|
||||
"value" : "Copiar URL"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -6984,7 +6984,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Criar Symlink como Xcode.app"
|
||||
"value" : "Criar link simbólico como Xcode.app"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -7108,7 +7108,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Create Symlink as Xcode-Beta.app"
|
||||
"value" : "Criar link simbólico como Xcode-Beta.app"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -8719,7 +8719,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Error"
|
||||
"value" : "Erro"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -8838,7 +8838,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Experiments"
|
||||
"value" : "Experimentos"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -10810,7 +10810,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Install Apple Silicon"
|
||||
"value" : "Instalar Apple Silicon"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -10928,7 +10928,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Install Universal"
|
||||
"value" : "Instalar Universal"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -13428,7 +13428,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Install Directory"
|
||||
"value" : "Diretório de instalação"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -13676,7 +13676,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Xcodes searches and installs to a single directory. By default (and recommended) is to keep this /Applications. Any changes to where Xcode is stored may result in other apps/services to stop working. "
|
||||
"value" : "Xcodes procura e instala em um diretório único. Por padrão (e recomendado) é mantido no /Applications. Qualquer mudança onde o Xcode é instalado pode resultar na falha de outros aplicativos/serviços."
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -13919,7 +13919,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Licensa"
|
||||
"value" : "Licença"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -15529,7 +15529,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Requerir uma nova funcionalidade"
|
||||
"value" : "Solicitar uma nova funcionalidade"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -15653,7 +15653,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Misc"
|
||||
"value" : "Diversos"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -16890,7 +16890,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Sua conta não possui nenhum telefone confiável, mas é necessário para autenticação de dois fatores.\n\nVer https://support.apple.com/en-ca/HT204915."
|
||||
"value" : "Sua conta não possui nenhum telefone confiável, mas é necessário para autenticação de dois fatores.\n\nVeja https://support.apple.com/en-ca/HT204915."
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -17382,7 +17382,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "On select, will keep the name as the version eg. Xcode-13.4.1.app"
|
||||
"value" : "Quando selecionado, será mantido o nome com a versão ex. Xcode-13.4.1.app"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -17868,7 +17868,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Open In Rosetta"
|
||||
"value" : "Abrir com Rosetta"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -18234,7 +18234,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Perform post-install steps"
|
||||
"value" : "Executar passos pós-instalação"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -18482,7 +18482,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "PIN not set"
|
||||
"value" : "PIN não definido"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -18506,7 +18506,7 @@
|
|||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "PIN not set"
|
||||
"value" : "没有设置 PIN"
|
||||
}
|
||||
},
|
||||
"zh-Hant" : {
|
||||
|
|
@ -18606,7 +18606,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Platforms"
|
||||
"value" : "Plataformas"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -18730,7 +18730,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Installed Platforms"
|
||||
"value" : "Plataformas instaladas"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -18855,7 +18855,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Below are a list of platforms that are installed on this machine. "
|
||||
"value" : "Abaixo contém uma lista de plataformas que estão instalada nesse computador."
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -20581,7 +20581,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Insert your physical security key and enter the PIN"
|
||||
"value" : "Insira sua chave de segurança física e digite o PIN"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -20706,7 +20706,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Touch your security key to verify that it’s you"
|
||||
"value" : "Toque na sua chave de segurança para verificar que é você"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -21315,7 +21315,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Mostrar opçao abrir com Rosetta"
|
||||
"value" : "Mostrar opção abrir com Rosetta"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -22061,7 +22061,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Support Xcodes"
|
||||
"value" : "Ajude o Xcodes"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
@ -22185,7 +22185,7 @@
|
|||
"pt-BR" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Terminate App after last window is closed"
|
||||
"value" : "Encerrar o aplicativo quando a ultima janela for fechada"
|
||||
}
|
||||
},
|
||||
"ru" : {
|
||||
|
|
|
|||
BIN
Xcodes/Resources/XcodesIcon.icon/Assets/Dark.png
Normal file
BIN
Xcodes/Resources/XcodesIcon.icon/Assets/Dark.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
BIN
Xcodes/Resources/XcodesIcon.icon/Assets/Light.png
Normal file
BIN
Xcodes/Resources/XcodesIcon.icon/Assets/Light.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
BIN
Xcodes/Resources/XcodesIcon.icon/Assets/Mono.png
Normal file
BIN
Xcodes/Resources/XcodesIcon.icon/Assets/Mono.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 716 KiB |
50
Xcodes/Resources/XcodesIcon.icon/icon.json
Normal file
50
Xcodes/Resources/XcodesIcon.icon/icon.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"fill" : {
|
||||
"automatic-gradient" : "extended-srgb:0.00000,0.47843,1.00000,1.00000"
|
||||
},
|
||||
"groups" : [
|
||||
{
|
||||
"layers" : [
|
||||
{
|
||||
"glass" : false,
|
||||
"hidden" : false,
|
||||
"image-name-specializations" : [
|
||||
{
|
||||
"value" : "Light.png"
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : "Dark.png"
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : "Mono.png"
|
||||
}
|
||||
],
|
||||
"name" : "Dark",
|
||||
"position" : {
|
||||
"scale" : 1,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"shadow" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 0.5
|
||||
},
|
||||
"specular" : false,
|
||||
"translucency" : {
|
||||
"enabled" : false,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"squares" : [
|
||||
"macOS"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
import Foundation
|
||||
|
||||
/// The name of an Architecture.
|
||||
public enum Architecture: String, Codable, Equatable, Hashable, Identifiable {
|
||||
public enum Architecture: String, Codable, Equatable, Hashable, Identifiable, CaseIterable {
|
||||
public var id: Self { self }
|
||||
|
||||
/// The Arm64 architecture (Apple Silicon)
|
||||
|
|
@ -24,6 +24,15 @@ public enum Architecture: String, Codable, Equatable, Hashable, Identifiable {
|
|||
return "Intel"
|
||||
}
|
||||
}
|
||||
|
||||
public var iconName: String {
|
||||
switch self {
|
||||
case .arm64:
|
||||
return "m4.button.horizontal"
|
||||
case .x86_64:
|
||||
return "cpu.fill"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension Array where Element == Architecture {
|
||||
|
|
|
|||
Loading…
Reference in a new issue