Skip to content

Commit d5aead5

Browse files
committed
Merge tag '0.20.0' into xip-multivolume-expasion
# Conflicts: # Sources/XcodesKit/XcodeInstaller.swift # Sources/xcodes/main.swift
2 parents 6fe3a3e + bfefa45 commit d5aead5

File tree

10 files changed

+614
-65
lines changed

10 files changed

+614
-65
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jobs:
44
test:
55
runs-on: macOS-10.15
66
steps:
7-
- uses: actions/checkout@v2.4.0
7+
- uses: actions/checkout@v3
88
- name: Run tests
99
env:
1010
DEVELOPER_DIR: /Applications/Xcode_12.3.app

.swiftpm/xcode/xcshareddata/xcschemes/xcodes-Package.xcscheme

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,34 @@
9090
ReferencedContainer = "container:">
9191
</BuildableReference>
9292
</BuildActionEntry>
93+
<BuildActionEntry
94+
buildForTesting = "YES"
95+
buildForRunning = "YES"
96+
buildForProfiling = "YES"
97+
buildForArchiving = "YES"
98+
buildForAnalyzing = "YES">
99+
<BuildableReference
100+
BuildableIdentifier = "primary"
101+
BlueprintIdentifier = "xcodes_AppleAPITests"
102+
BuildableName = "xcodes_AppleAPITests"
103+
BlueprintName = "xcodes_AppleAPITests"
104+
ReferencedContainer = "container:">
105+
</BuildableReference>
106+
</BuildActionEntry>
107+
<BuildActionEntry
108+
buildForTesting = "YES"
109+
buildForRunning = "YES"
110+
buildForProfiling = "YES"
111+
buildForArchiving = "YES"
112+
buildForAnalyzing = "YES">
113+
<BuildableReference
114+
BuildableIdentifier = "primary"
115+
BlueprintIdentifier = "Unxip"
116+
BuildableName = "Unxip"
117+
BlueprintName = "Unxip"
118+
ReferencedContainer = "container:">
119+
</BuildableReference>
120+
</BuildActionEntry>
93121
</BuildActionEntries>
94122
</BuildAction>
95123
<TestAction

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ srcdir = Sources
77
REPODIR = $(shell pwd)
88
BUILDDIR = $(REPODIR)/.build
99
SOURCES = $(wildcard $(srcdir)/**/*.swift)
10-
10+
RELEASEBUILDDIR = $(BUILDDIR)/apple/Products/Release/xcodes
1111
.DEFAULT_GOAL = all
1212

1313
.PHONY: all
@@ -33,19 +33,19 @@ sign: xcodes
3333
--prefix com.robotsandpencils. \
3434
--options runtime \
3535
--timestamp \
36-
"$(BUILDDIR)/release/xcodes"
36+
"$(RELEASEBUILDDIR)"
3737

3838
.PHONY: zip
3939
zip: sign
4040
@rm xcodes.zip 2> /dev/null || true
41-
@zip --junk-paths xcodes.zip "$(BUILDDIR)/release/xcodes"
41+
@zip --junk-paths xcodes.zip "$(RELEASEBUILDDIR)"
4242
@open -R xcodes.zip
4343

4444
# E.g.
45-
# make notarize USERNAME="[email protected]" PASSWORD="@keychain:altool" ASC_PROVIDER=MyOrg
45+
# make notarize TEAMID="ABCD123"
4646
.PHONY: notarize
4747
notarize: zip
48-
./notarize.sh "$(USERNAME)" "$(PASSWORD)" "$(ASC_PROVIDER)" xcodes.zip
48+
./notarize.sh xcodes.zip "$(TEAMID)"
4949

5050
# E.g.
5151
# make bottle VERSION=0.4.0
@@ -54,23 +54,23 @@ bottle: sign
5454
@rm -r xcodes 2> /dev/null || true
5555
@rm *.tar.gz 2> /dev/null || true
5656
@mkdir -p xcodes/$(VERSION)/bin
57-
@cp "$(BUILDDIR)/release/xcodes" xcodes/$(VERSION)/bin
57+
@cp "$(RELEASEBUILDDIR)" xcodes/$(VERSION)/bin
5858
@tar -zcvf xcodes-$(VERSION).mojave.bottle.tar.gz -C "$(REPODIR)" xcodes
5959
shasum -a 256 xcodes-$(VERSION).mojave.bottle.tar.gz | cut -f1 -d' '
6060
@open -R xcodes-$(VERSION).mojave.bottle.tar.gz
6161

6262
.PHONY: install
6363
install: xcodes
6464
@install -d "$(bindir)"
65-
@install "$(BUILDDIR)/release/xcodes" "$(bindir)"
65+
@install "$(RELEASEBUILDDIR)" "$(bindir)"
6666

6767
.PHONY: uninstall
6868
uninstall:
6969
@rm -rf "$(bindir)/xcodes"
7070

7171
.PHONY: distclean
7272
distclean:
73-
@rm -f $(BUILDDIR)/release
73+
@rm -f $(RELEASEBUILDDIR)
7474

7575
.PHONY: clean
7676
clean: distclean

Package.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ let package = Package(
4545
"PromiseKit",
4646
"PMKFoundation",
4747
"SwiftSoup",
48+
"Unxip",
4849
"Version",
4950
.product(name: "XCModel", package: "XcodeReleases"),
5051
"Rainbow",
@@ -58,6 +59,7 @@ let package = Package(
5859
resources: [
5960
.copy("Fixtures"),
6061
]),
62+
.target(name: "Unxip"),
6163
.target(
6264
name: "AppleAPI",
6365
dependencies: [

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ xcodes install 11.2 GM seed
6969
xcodes install 9.0 --path ~/Archive/Xcode_9.xip
7070
xcodes install --latest-prerelease
7171
xcodes install --latest --directory "/Volumes/Bag Of Holding/"
72+
xcodes install --latest --experimental-unxip
7273
```
7374

7475
You'll then be prompted to enter your Apple ID username and password. You can also provide these with the `XCODES_USERNAME` and `XCODES_PASSWORD` environment variables.
@@ -106,6 +107,14 @@ Xcode will be installed to /Applications by default, but you can provide the pat
106107
- `version`: Print the version number of xcodes itself
107108
- `signout`: Clears the stored username and password
108109

110+
### Experimental Unxip - for faster unxipping
111+
112+
Thanks to the amazing work by [saagarjhi](https://github.com/saagarjha/unxip) - Xcodes now includes the ability to unxip up to 70% faster on some systems.
113+
114+
```
115+
xcodes install --latest --experimental-unxip
116+
```
117+
109118
### Shell Completion Scripts
110119

111120
xcodes can generate completion scripts which allow you to press the tab key on your keyboard to autocomplete commands and arguments when typing an xcodes command. The steps to install a completion script depend on the shell that you use. More information about installation instructions for different shells and the underlying implementation is available in the [swift-argument-parser repo](https://github.com/apple/swift-argument-parser/blob/main/Sources/ArgumentParser/Documentation.docc/Articles/InstallingCompletionScripts.md).
@@ -123,7 +132,7 @@ xcodes --generate-completion-script > ~/.oh-my-zsh/completions/_xcodes
123132

124133
## Development
125134

126-
You'll need Xcode 12 in order to build and run xcodes.
135+
You'll need Xcode 13 in order to build and run xcodes.
127136

128137
<details>
129138
<summary>Using Xcode</summary>
@@ -166,9 +175,7 @@ make bottle VERSION="$VERSION"
166175
# Notarize the release build
167176
# This can take a while
168177
make notarize \
169-
USERNAME="[email protected]" \
170-
PASSWORD="@keychain:ALTool Notarization" \
171-
ASC_PROVIDER="YourAppStoreConnectTeamName"
178+
TEAMID="ABC123"
172179

173180
# Push the new version bump commit and tag
174181
git push --follow-tags

0 commit comments

Comments
 (0)