mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a0d3353b9 | ||
|
|
da8d22c6d3 | ||
|
|
4f9b7f8f6a | ||
|
|
f34e291433 | ||
|
|
789eedcdb7 | ||
|
|
f9262d9a05 |
7 changed files with 43 additions and 45 deletions
BIN
IconDark.png
Normal file
BIN
IconDark.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
IconMono.png
Normal file
BIN
IconMono.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
12
README.md
12
README.md
|
|
@ -1,4 +1,4 @@
|
||||||
<h1><img src="icon.png" align="center" width=50 height=50 /> Xcodes.app</h1>
|
<h1><img src="icon.png" align="center" width=50 height=50 /> <img src="IconDark.png" align="center" width=50 height=50 /> <img src="IconMono.png" align="center" width=50 height=50 /> Xcodes.app</h1>
|
||||||
|
|
||||||
The easiest way to install and switch between multiple versions of Xcode.
|
The easiest way to install and switch between multiple versions of Xcode.
|
||||||
|
|
||||||
|
|
@ -23,6 +23,8 @@ XcodesApp is now part of the `XcodesOrg` - [read more here](nextstep.md)
|
||||||
- View release notes, OS compatibility, included SDKs and compilers from [Xcode Releases](https://xcodereleases.com).
|
- View release notes, OS compatibility, included SDKs and compilers from [Xcode Releases](https://xcodereleases.com).
|
||||||
- Dark/Light Mode supported
|
- Dark/Light Mode supported
|
||||||
- Security Key Authentication supported
|
- Security Key Authentication supported
|
||||||
|
- Support installing Platforms/Runtimes
|
||||||
|
- Support installing Apple Silicon variants
|
||||||
|
|
||||||
## Platforms/Runtimes
|
## Platforms/Runtimes
|
||||||
|
|
||||||
|
|
@ -30,6 +32,10 @@ XcodesApp is now part of the `XcodesOrg` - [read more here](nextstep.md)
|
||||||
|
|
||||||
**Note: iOS 18+, tvOS 18+, watchOS 11+, visionOS 2+ requires that Xcode 16.1 Beta 3+ be installed and active.**
|
**Note: iOS 18+, tvOS 18+, watchOS 11+, visionOS 2+ requires that Xcode 16.1 Beta 3+ be installed and active.**
|
||||||
|
|
||||||
|
## Apple Silicon Variants
|
||||||
|
|
||||||
|
As of Xcode 26, Apple provides Apple Silicon as well as Universal variants for Xcode versions as well as each runtime. Simply tap on which variant you want installed. To install the Apple Silicon runtime variant Xcode 26 is required to be active.
|
||||||
|
|
||||||
## Experiments
|
## Experiments
|
||||||
|
|
||||||
- Thanks to the wonderful work of [https://github.com/saagarjha/unxip](https://github.com/saagarjha/unxip), turn on the experiment to increase your unxipping time by up to 70%! More can be found on his repo, but bugs, high memory may occur if used.
|
- Thanks to the wonderful work of [https://github.com/saagarjha/unxip](https://github.com/saagarjha/unxip), turn on the experiment to increase your unxipping time by up to 70%! More can be found on his repo, but bugs, high memory may occur if used.
|
||||||
|
|
@ -61,6 +67,7 @@ Want to add more languages? Simply create a PR with the updated strings file.
|
||||||
## Installation
|
## Installation
|
||||||
v1.X - requires macOS 11 or newer
|
v1.X - requires macOS 11 or newer
|
||||||
v2.X - requires macOS 13
|
v2.X - requires macOS 13
|
||||||
|
v3.X - requires macOS 13 - architecture variants and updated icon.
|
||||||
|
|
||||||
### Install with Homebrew
|
### Install with Homebrew
|
||||||
|
|
||||||
|
|
@ -85,7 +92,7 @@ Xcodes.app and CLI is updated, maintained with contributors like yourself. Even
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
You'll need macOS 13.5 Ventura and Xcode 15 in order to build and run Xcodes.app.
|
You'll need macOS 15.6 Ventura and Xcode 26 in order to build and run Xcodes.app.
|
||||||
|
|
||||||
`Unxip` and `aria2` must be compiled as a universal binary
|
`Unxip` and `aria2` must be compiled as a universal binary
|
||||||
```
|
```
|
||||||
|
|
@ -100,7 +107,6 @@ You'll need macOS 13.5 Ventura and Xcode 15 in order to build and run Xcodes.app
|
||||||
lipo -archs unxip
|
lipo -archs unxip
|
||||||
```
|
```
|
||||||
|
|
||||||
Notable design decisions are recorded in [DECISIONS.md](./DECISIONS.md). The Apple authentication flow is described in [Apple.paw](./Apple.paw), which will allow you to play with the API endpoints that are involved using the [Paw](https://paw.cloud) app.
|
|
||||||
|
|
||||||
[`xcode-install`](https://github.com/xcpretty/xcode-install) and [fastlane/spaceship](https://github.com/fastlane/fastlane/tree/master/spaceship) both deserve credit for figuring out the hard parts of what makes this possible.
|
[`xcode-install`](https://github.com/xcpretty/xcode-install) and [fastlane/spaceship](https://github.com/fastlane/fastlane/tree/master/spaceship) both deserve credit for figuring out the hard parts of what makes this possible.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -706,7 +706,6 @@
|
||||||
buildConfigurationList = CAD2E7BC2449575100113D76 /* Build configuration list for PBXNativeTarget "Xcodes" */;
|
buildConfigurationList = CAD2E7BC2449575100113D76 /* Build configuration list for PBXNativeTarget "Xcodes" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
CAD2E79A2449574E00113D76 /* Sources */,
|
CAD2E79A2449574E00113D76 /* Sources */,
|
||||||
D971F84C2E79102E005F84C9 /* Fix libfido2 structure */,
|
|
||||||
CAD2E79B2449574E00113D76 /* Frameworks */,
|
CAD2E79B2449574E00113D76 /* Frameworks */,
|
||||||
CA9FF8292594F33200E47BAF /* Generate Acknowledgements */,
|
CA9FF8292594F33200E47BAF /* Generate Acknowledgements */,
|
||||||
CAD2E79C2449574E00113D76 /* Resources */,
|
CAD2E79C2449574E00113D76 /* Resources */,
|
||||||
|
|
@ -882,24 +881,6 @@
|
||||||
shellPath = /bin/sh;
|
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";
|
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 */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
|
@ -1123,7 +1104,7 @@
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 33;
|
CURRENT_PROJECT_VERSION = 34;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"Xcodes/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"Xcodes/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
ENABLE_HARDENED_RUNTIME = NO;
|
ENABLE_HARDENED_RUNTIME = NO;
|
||||||
|
|
@ -1135,7 +1116,7 @@
|
||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 3.0.1;
|
MARKETING_VERSION = 3.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.xcodesorg.xcodesapp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.xcodesorg.xcodesapp;
|
||||||
PRODUCT_NAME = Xcodes;
|
PRODUCT_NAME = Xcodes;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
|
@ -1376,7 +1357,7 @@
|
||||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 33;
|
CURRENT_PROJECT_VERSION = 34;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"Xcodes/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"Xcodes/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = ZU6GR6B2FY;
|
DEVELOPMENT_TEAM = ZU6GR6B2FY;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
|
|
@ -1388,7 +1369,7 @@
|
||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 3.0.1;
|
MARKETING_VERSION = 3.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.xcodesorg.xcodesapp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.xcodesorg.xcodesapp;
|
||||||
PRODUCT_NAME = Xcodes;
|
PRODUCT_NAME = Xcodes;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
|
@ -1405,7 +1386,7 @@
|
||||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 33;
|
CURRENT_PROJECT_VERSION = 34;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"Xcodes/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"Xcodes/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = ZU6GR6B2FY;
|
DEVELOPMENT_TEAM = ZU6GR6B2FY;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
|
|
@ -1417,7 +1398,7 @@
|
||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
MACOSX_DEPLOYMENT_TARGET = 13.0;
|
||||||
MARKETING_VERSION = 3.0.1;
|
MARKETING_VERSION = 3.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.xcodesorg.xcodesapp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.xcodesorg.xcodesapp;
|
||||||
PRODUCT_NAME = Xcodes;
|
PRODUCT_NAME = Xcodes;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
|
@ -1517,10 +1498,10 @@
|
||||||
/* Begin XCRemoteSwiftPackageReference section */
|
/* Begin XCRemoteSwiftPackageReference section */
|
||||||
33027E282CA8BB5800CB387C /* XCRemoteSwiftPackageReference "LibFido2Swift" */ = {
|
33027E282CA8BB5800CB387C /* XCRemoteSwiftPackageReference "LibFido2Swift" */ = {
|
||||||
isa = XCRemoteSwiftPackageReference;
|
isa = XCRemoteSwiftPackageReference;
|
||||||
repositoryURL = "https://github.com/kinoroy/LibFido2Swift.git";
|
repositoryURL = "https://github.com/kinoroy/LibFido2Swift";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = upToNextMinorVersion;
|
branch = main;
|
||||||
minimumVersion = 0.1.4;
|
kind = branch;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
CAA858CB25A3D8BC00ACF8C0 /* XCRemoteSwiftPackageReference "ErrorHandling" */ = {
|
CAA858CB25A3D8BC00ACF8C0 /* XCRemoteSwiftPackageReference "ErrorHandling" */ = {
|
||||||
|
|
|
||||||
|
|
@ -66,11 +66,11 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"package": "LibFido2Swift",
|
"package": "LibFido2Swift",
|
||||||
"repositoryURL": "https://github.com/kinoroy/LibFido2Swift.git",
|
"repositoryURL": "https://github.com/kinoroy/LibFido2Swift",
|
||||||
"state": {
|
"state": {
|
||||||
"branch": null,
|
"branch": "main",
|
||||||
"revision": "94d496d6f850dcbb3e8c4a27cd7eeabfad9f14e3",
|
"revision": "b87a93300c5b35307c9f26ae490963196bd927f1",
|
||||||
"version": "0.1.4"
|
"version": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@ struct XcodeListView: View {
|
||||||
PlatformsPocket()
|
PlatformsPocket()
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
.padding(.vertical, 8)
|
.padding(.vertical, 8)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -83,6 +84,20 @@ struct PlatformsPocket: View {
|
||||||
openWindow(id: "platforms")
|
openWindow(id: "platforms")
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
|
if #available(macOS 26.0, *) {
|
||||||
|
platformsLabel
|
||||||
|
.glassEffect(in: .rect(cornerRadius: 8, style: .continuous))
|
||||||
|
} else {
|
||||||
|
platformsLabel
|
||||||
|
.background(.quaternary.opacity(0.75))
|
||||||
|
.clipShape(RoundedRectangle(cornerRadius: 8, style: .continuous))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.buttonStyle(.plain)
|
||||||
|
}
|
||||||
|
|
||||||
|
var platformsLabel: some View {
|
||||||
HStack(spacing: 5) {
|
HStack(spacing: 5) {
|
||||||
Image(systemName: "square.3.layers.3d")
|
Image(systemName: "square.3.layers.3d")
|
||||||
.font(.title3.weight(.medium))
|
.font(.title3.weight(.medium))
|
||||||
|
|
@ -92,10 +107,6 @@ struct PlatformsPocket: View {
|
||||||
.font(.body.weight(.medium))
|
.font(.body.weight(.medium))
|
||||||
.padding(.horizontal)
|
.padding(.horizontal)
|
||||||
.padding(.vertical, 12)
|
.padding(.vertical, 12)
|
||||||
.background(.quaternary.opacity(0.75))
|
|
||||||
.clipShape(RoundedRectangle(cornerRadius: 8, style: .continuous))
|
|
||||||
}
|
|
||||||
.buttonStyle(.plain)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
BIN
icon.png
BIN
icon.png
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 22 KiB |
Loading…
Reference in a new issue