@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,573 @@
|
|
|
1
|
+
# Installing Xcode
|
|
2
|
+
|
|
3
|
+
## Dependencies
|
|
4
|
+
|
|
5
|
+
### macOS (Homebrew)
|
|
6
|
+
- **Required:**
|
|
7
|
+
- Homebrew - Install via `NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
|
|
8
|
+
- Apple ID - Free account required for download from Apple servers
|
|
9
|
+
- **Optional:**
|
|
10
|
+
- `aria2` - Install via `brew install --quiet aria2` for 3-5x faster downloads
|
|
11
|
+
- **Auto-installed:**
|
|
12
|
+
- Xcode Command Line Tools (included with full Xcode)
|
|
13
|
+
- iOS, macOS, watchOS, tvOS, visionOS SDKs
|
|
14
|
+
- Simulators for all Apple platforms
|
|
15
|
+
|
|
16
|
+
### Ubuntu (APT/Snap)
|
|
17
|
+
- **Not Supported** - Xcode is a macOS-exclusive application
|
|
18
|
+
|
|
19
|
+
### Raspberry Pi OS (APT/Snap)
|
|
20
|
+
- **Not Supported** - Xcode is a macOS-exclusive application
|
|
21
|
+
|
|
22
|
+
### Amazon Linux (DNF/YUM)
|
|
23
|
+
- **Not Supported** - Xcode is a macOS-exclusive application
|
|
24
|
+
|
|
25
|
+
### Windows (Chocolatey/winget)
|
|
26
|
+
- **Not Supported** - Xcode is a macOS-exclusive application
|
|
27
|
+
|
|
28
|
+
### WSL (Windows Subsystem for Linux)
|
|
29
|
+
- **Not Supported** - Xcode is a macOS-exclusive application
|
|
30
|
+
|
|
31
|
+
### Git Bash (Manual/Portable)
|
|
32
|
+
- **Not Supported** - Xcode is a macOS-exclusive application
|
|
33
|
+
|
|
34
|
+
## Overview
|
|
35
|
+
|
|
36
|
+
Xcode is Apple's integrated development environment (IDE) for developing software for all Apple platforms: iOS, iPadOS, macOS, watchOS, tvOS, and visionOS. It is a large application (~40+ GB) that includes:
|
|
37
|
+
|
|
38
|
+
- **Xcode IDE**: Full-featured code editor with syntax highlighting, code completion, and debugging
|
|
39
|
+
- **Swift and Objective-C Compilers**: Build tools for Apple's programming languages
|
|
40
|
+
- **Interface Builder**: Visual UI design tool for building app interfaces
|
|
41
|
+
- **Instruments**: Performance analysis and profiling tools
|
|
42
|
+
- **Simulators**: Virtual devices for testing on iPhone, iPad, Apple Watch, Apple TV, and Vision Pro
|
|
43
|
+
- **SDKs**: Software Development Kits for all Apple platforms
|
|
44
|
+
- **Asset Catalog Compiler**: Tools for managing app icons and images
|
|
45
|
+
- **Core Data Model Editor**: Visual database schema designer
|
|
46
|
+
|
|
47
|
+
**Important**: This documentation covers the **full Xcode IDE**. If you only need compilers and command-line tools (git, make, clang), see `xcode-clt.md` for the lightweight Xcode Command Line Tools (~2.5 GB).
|
|
48
|
+
|
|
49
|
+
**Platform Limitation**: Xcode is an Apple-exclusive product and **only runs on macOS**. There is no legitimate way to install or run Xcode on Windows, Linux, or other operating systems. Apple does not support virtualization of macOS on non-Apple hardware.
|
|
50
|
+
|
|
51
|
+
## Prerequisites
|
|
52
|
+
|
|
53
|
+
### Universal Requirements (macOS Only)
|
|
54
|
+
|
|
55
|
+
- **macOS Version**: See compatibility table below
|
|
56
|
+
- **Disk Space**: Minimum 50 GB free (Xcode ~40 GB + build artifacts)
|
|
57
|
+
- **RAM**: 8 GB minimum, 16 GB recommended
|
|
58
|
+
- **Apple ID**: Free account required for downloading Xcode
|
|
59
|
+
- **Internet Connection**: Required for download (~40 GB)
|
|
60
|
+
|
|
61
|
+
### Xcode Version Compatibility
|
|
62
|
+
|
|
63
|
+
| Xcode Version | Minimum macOS Required |
|
|
64
|
+
|---------------|------------------------|
|
|
65
|
+
| Xcode 26.x | macOS Sequoia 15.6 |
|
|
66
|
+
| Xcode 16.4 | macOS Sequoia 15.3 |
|
|
67
|
+
| Xcode 16.2-16.3 | macOS Sonoma 14.5 |
|
|
68
|
+
| Xcode 16.0-16.1 | macOS Sonoma 14.5 |
|
|
69
|
+
| Xcode 15.2-15.4 | macOS Ventura 13.5 |
|
|
70
|
+
| Xcode 14.3.x | macOS Ventura 13.0 |
|
|
71
|
+
| Xcode 14.0-14.2 | macOS Monterey 12.5 |
|
|
72
|
+
|
|
73
|
+
**Note**: visionOS development requires a Mac with Apple silicon (M1 or later).
|
|
74
|
+
|
|
75
|
+
### Check Your macOS Version
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
sw_vers -productVersion
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Platform-Specific Installation
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### macOS (Homebrew)
|
|
86
|
+
|
|
87
|
+
Xcode can be installed via the `xcodes` command-line tool, which provides version management and faster downloads than the Mac App Store. This is the recommended method for developers who need to manage multiple Xcode versions or automate installation.
|
|
88
|
+
|
|
89
|
+
#### Prerequisites
|
|
90
|
+
|
|
91
|
+
- macOS Sonoma 14.5 or later (for latest Xcode 16.x)
|
|
92
|
+
- Homebrew package manager installed
|
|
93
|
+
- Apple ID credentials
|
|
94
|
+
- At least 50 GB free disk space
|
|
95
|
+
|
|
96
|
+
If Homebrew is not installed, install it first:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
#### Installation Steps
|
|
103
|
+
|
|
104
|
+
**Step 1: Install xcodes and aria2**
|
|
105
|
+
|
|
106
|
+
Install the xcodes CLI tool and aria2 for faster downloads:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
brew install --quiet xcodesorg/made/xcodes aria2
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The `xcodes` tool downloads Xcode directly from Apple's servers using your Apple ID credentials. The `aria2` download accelerator enables 3-5x faster downloads using parallel connections.
|
|
113
|
+
|
|
114
|
+
**Step 2: Set Apple ID Credentials**
|
|
115
|
+
|
|
116
|
+
Set your Apple ID credentials as environment variables for non-interactive installation:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
export XCODES_USERNAME="your-apple-id@example.com"
|
|
120
|
+
export XCODES_PASSWORD="your-apple-id-password"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Security Note**: For CI/CD pipelines, store these credentials as secrets. For interactive use, you can omit this step and xcodes will prompt for credentials (then save them to the macOS Keychain).
|
|
124
|
+
|
|
125
|
+
**Step 3: Install Latest Xcode**
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
xcodes install --latest
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This command downloads and installs the latest stable Xcode release to `/Applications/Xcode.app`.
|
|
132
|
+
|
|
133
|
+
**Alternative**: Install a specific version:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# List available versions
|
|
137
|
+
xcodes list
|
|
138
|
+
|
|
139
|
+
# Install a specific version
|
|
140
|
+
xcodes install 16.2
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Step 4: Accept Xcode License**
|
|
144
|
+
|
|
145
|
+
After installation, accept the Xcode license agreement:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
sudo xcodebuild -license accept
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Step 5: Install Additional Components**
|
|
152
|
+
|
|
153
|
+
Install additional required components (simulators, platforms):
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
sudo xcodebuild -runFirstLaunch
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### Verification
|
|
160
|
+
|
|
161
|
+
Confirm the installation succeeded:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
xcodebuild -version
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Expected output (version numbers may vary):
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Xcode 16.2
|
|
171
|
+
Build version 16C5032a
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Verify the developer directory is correctly set:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
xcode-select -p
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Expected output:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
/Applications/Xcode.app/Contents/Developer
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Verify Swift compiler is available:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
swift --version
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
#### Troubleshooting
|
|
193
|
+
|
|
194
|
+
**Problem**: `xcodes install` fails with authentication error
|
|
195
|
+
|
|
196
|
+
**Solution**: Verify your Apple ID credentials are correct. If using two-factor authentication, you may need to generate an app-specific password:
|
|
197
|
+
|
|
198
|
+
1. Go to https://appleid.apple.com/account/manage
|
|
199
|
+
2. Sign in with your Apple ID
|
|
200
|
+
3. Navigate to "Sign-In and Security" > "App-Specific Passwords"
|
|
201
|
+
4. Generate a new password and use it as `XCODES_PASSWORD`
|
|
202
|
+
|
|
203
|
+
**Problem**: Download speed is slow
|
|
204
|
+
|
|
205
|
+
**Solution**: Ensure aria2 is installed for parallel downloads:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
brew install --quiet aria2
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Problem**: "Xcode cannot be installed on this Mac" error
|
|
212
|
+
|
|
213
|
+
**Solution**: Your macOS version is too old for the Xcode version you are trying to install. Check the compatibility table above and either:
|
|
214
|
+
- Update macOS to a supported version
|
|
215
|
+
- Install an older Xcode version compatible with your macOS:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
xcodes list
|
|
219
|
+
xcodes install 15.4 # For older macOS versions
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Problem**: `xcodebuild -license accept` requires manual interaction
|
|
223
|
+
|
|
224
|
+
**Solution**: This command should work non-interactively with sudo. If it still prompts, run:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
sudo xcodebuild -license accept <<< "agree"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Problem**: Multiple Xcode versions conflict
|
|
231
|
+
|
|
232
|
+
**Solution**: Use `xcode-select` to switch between versions:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# List installed Xcode versions
|
|
236
|
+
xcodes installed
|
|
237
|
+
|
|
238
|
+
# Select a specific version
|
|
239
|
+
sudo xcode-select -s /Applications/Xcode-16.2.app/Contents/Developer
|
|
240
|
+
|
|
241
|
+
# Verify the switch
|
|
242
|
+
xcode-select -p
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
### Ubuntu/Debian (APT)
|
|
248
|
+
|
|
249
|
+
#### Not Supported
|
|
250
|
+
|
|
251
|
+
Xcode is an Apple-exclusive product and is **not available for Ubuntu or Debian**. Apple does not provide Xcode for any Linux distribution, and running macOS or Xcode on non-Apple hardware violates Apple's End User License Agreement.
|
|
252
|
+
|
|
253
|
+
#### Alternatives for Linux Developers
|
|
254
|
+
|
|
255
|
+
For iOS development on Linux, consider these alternatives:
|
|
256
|
+
|
|
257
|
+
**Cross-Platform Mobile Development Frameworks:**
|
|
258
|
+
- Flutter - Build iOS apps on Linux, deploy via macOS build server
|
|
259
|
+
- React Native - Similar cross-platform approach
|
|
260
|
+
- Capacitor/Ionic - Web-based mobile development
|
|
261
|
+
|
|
262
|
+
**Remote macOS Build Services:**
|
|
263
|
+
- MacStadium - Cloud-hosted Mac infrastructure
|
|
264
|
+
- AWS EC2 Mac instances - Mac mini in AWS
|
|
265
|
+
- GitHub Actions macOS runners - CI/CD on macOS
|
|
266
|
+
|
|
267
|
+
**Note**: All alternatives still require access to a macOS machine (physical or cloud) to compile and submit iOS apps to the App Store.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
### Raspberry Pi OS (APT)
|
|
272
|
+
|
|
273
|
+
#### Not Supported
|
|
274
|
+
|
|
275
|
+
Xcode is an Apple-exclusive product and is **not available for Raspberry Pi OS**. The Raspberry Pi's ARM architecture is incompatible with macOS, and Apple does not provide Xcode for any non-macOS operating system.
|
|
276
|
+
|
|
277
|
+
#### Alternatives
|
|
278
|
+
|
|
279
|
+
There are no direct alternatives for iOS development on Raspberry Pi. iOS apps must be compiled on macOS using Xcode.
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### Amazon Linux/RHEL (YUM/DNF)
|
|
284
|
+
|
|
285
|
+
#### Not Supported
|
|
286
|
+
|
|
287
|
+
Xcode is an Apple-exclusive product and is **not available for Amazon Linux or RHEL**. Apple does not provide Xcode for any Linux distribution.
|
|
288
|
+
|
|
289
|
+
#### Alternatives
|
|
290
|
+
|
|
291
|
+
For iOS development in cloud environments:
|
|
292
|
+
|
|
293
|
+
**AWS EC2 Mac Instances:**
|
|
294
|
+
AWS provides Mac mini instances that can run macOS and Xcode:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
# Launch via AWS CLI (requires appropriate permissions and Dedicated Host)
|
|
298
|
+
aws ec2 run-instances \
|
|
299
|
+
--instance-type mac2.metal \
|
|
300
|
+
--image-id ami-xxxxxxxxxxxxxxxxx \
|
|
301
|
+
--key-name your-key-pair
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Note: EC2 Mac instances have a minimum 24-hour billing period and require a Dedicated Host.
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
### Windows (Chocolatey/winget)
|
|
309
|
+
|
|
310
|
+
#### Not Supported
|
|
311
|
+
|
|
312
|
+
Xcode is an Apple-exclusive product and is **not available for Windows**. Apple does not provide Xcode for Windows, and macOS cannot legally be virtualized on non-Apple hardware.
|
|
313
|
+
|
|
314
|
+
#### Alternatives
|
|
315
|
+
|
|
316
|
+
For iOS development on Windows:
|
|
317
|
+
|
|
318
|
+
**Cross-Platform Mobile Development:**
|
|
319
|
+
|
|
320
|
+
```powershell
|
|
321
|
+
# Flutter (requires macOS for iOS builds)
|
|
322
|
+
choco install flutter -y
|
|
323
|
+
|
|
324
|
+
# React Native (requires macOS for iOS builds)
|
|
325
|
+
npm install -g react-native-cli
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Remote Build Services:**
|
|
329
|
+
- MacStadium for cloud-hosted Macs
|
|
330
|
+
- GitHub Actions with macOS runners
|
|
331
|
+
- Azure DevOps with macOS agents
|
|
332
|
+
|
|
333
|
+
**Hackintosh (Not Recommended)**: Installing macOS on non-Apple hardware violates Apple's EULA and is not supported.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
### WSL (Windows Subsystem for Linux)
|
|
338
|
+
|
|
339
|
+
#### Not Supported
|
|
340
|
+
|
|
341
|
+
Xcode is an Apple-exclusive product and is **not available for WSL**. WSL runs Linux distributions, not macOS, and Apple does not provide Xcode for Linux.
|
|
342
|
+
|
|
343
|
+
#### Alternatives
|
|
344
|
+
|
|
345
|
+
See the Windows section above for cross-platform development alternatives.
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
### Git Bash (Manual/Portable)
|
|
350
|
+
|
|
351
|
+
#### Not Supported
|
|
352
|
+
|
|
353
|
+
Xcode is an Apple-exclusive product and is **not available for Git Bash on Windows**. Git Bash runs on Windows, and Apple does not provide Xcode for Windows.
|
|
354
|
+
|
|
355
|
+
#### Alternatives
|
|
356
|
+
|
|
357
|
+
See the Windows section above for cross-platform development alternatives.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## Post-Installation Configuration
|
|
362
|
+
|
|
363
|
+
These steps apply only to macOS installations.
|
|
364
|
+
|
|
365
|
+
### Accept the License Agreement
|
|
366
|
+
|
|
367
|
+
If you skipped this during installation:
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
sudo xcodebuild -license accept
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
### Install First-Launch Components
|
|
374
|
+
|
|
375
|
+
Run first-launch tasks to install additional components:
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
sudo xcodebuild -runFirstLaunch
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Set the Active Developer Directory
|
|
382
|
+
|
|
383
|
+
If you have multiple Xcode versions installed, set the active one:
|
|
384
|
+
|
|
385
|
+
```bash
|
|
386
|
+
# Point to the default Xcode.app
|
|
387
|
+
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
|
|
388
|
+
|
|
389
|
+
# Or point to a specific version
|
|
390
|
+
sudo xcode-select -s /Applications/Xcode-16.2.app/Contents/Developer
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Install Additional Simulators
|
|
394
|
+
|
|
395
|
+
Xcode includes some simulators by default. To install additional simulators:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# List available platforms
|
|
399
|
+
xcodebuild -downloadAllPlatforms
|
|
400
|
+
|
|
401
|
+
# Or install specific platforms via Xcode
|
|
402
|
+
# Xcode > Settings > Platforms > + button
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Note: The `xcodebuild -downloadAllPlatforms` command may require interaction. For fully automated simulator installation, use:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
# Install iOS simulator
|
|
409
|
+
xcrun simctl runtime add "iOS 17.2"
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### Configure Code Signing
|
|
413
|
+
|
|
414
|
+
For deploying to physical devices or submitting to App Store:
|
|
415
|
+
|
|
416
|
+
1. Sign in to Xcode with your Apple ID: Xcode > Settings > Accounts > +
|
|
417
|
+
2. Create or download signing certificates
|
|
418
|
+
3. Register your devices in the Apple Developer portal
|
|
419
|
+
|
|
420
|
+
### Enable Command Line Tools
|
|
421
|
+
|
|
422
|
+
Ensure command-line tools use the full Xcode installation:
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
# Verify command line tools point to Xcode (not standalone CLT)
|
|
426
|
+
xcode-select -p
|
|
427
|
+
# Should output: /Applications/Xcode.app/Contents/Developer
|
|
428
|
+
|
|
429
|
+
# If it points to /Library/Developer/CommandLineTools, switch to Xcode:
|
|
430
|
+
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
## Common Issues
|
|
434
|
+
|
|
435
|
+
### Issue: "No such file or directory" Errors When Building
|
|
436
|
+
|
|
437
|
+
**Symptoms**: Build fails with missing header or SDK errors
|
|
438
|
+
|
|
439
|
+
**Solution**: Reset the developer directory and verify Xcode installation:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
sudo xcode-select --reset
|
|
443
|
+
xcodebuild -version
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Issue: Simulators Not Available
|
|
447
|
+
|
|
448
|
+
**Symptoms**: No simulators appear in Xcode or `xcrun simctl list`
|
|
449
|
+
|
|
450
|
+
**Solution**: Install simulator runtimes:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
# List available runtimes
|
|
454
|
+
xcrun simctl runtime list
|
|
455
|
+
|
|
456
|
+
# Download missing platforms
|
|
457
|
+
xcodebuild -downloadAllPlatforms
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Issue: Code Signing Fails
|
|
461
|
+
|
|
462
|
+
**Symptoms**: "No signing certificate" or "Provisioning profile" errors
|
|
463
|
+
|
|
464
|
+
**Solution**:
|
|
465
|
+
1. Ensure you are signed in to Xcode with a valid Apple ID
|
|
466
|
+
2. For development: Enable "Automatically manage signing" in project settings
|
|
467
|
+
3. For distribution: Create certificates at https://developer.apple.com/account/resources/certificates
|
|
468
|
+
|
|
469
|
+
### Issue: Xcode Updates Fail
|
|
470
|
+
|
|
471
|
+
**Symptoms**: Mac App Store shows update but installation fails
|
|
472
|
+
|
|
473
|
+
**Solution**: Use xcodes to manage updates:
|
|
474
|
+
|
|
475
|
+
```bash
|
|
476
|
+
# Check for updates
|
|
477
|
+
xcodes list
|
|
478
|
+
|
|
479
|
+
# Install latest version
|
|
480
|
+
xcodes install --latest
|
|
481
|
+
|
|
482
|
+
# Remove old version after verifying new one works
|
|
483
|
+
xcodes uninstall 16.1
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Issue: "Xcode.app is damaged" Error
|
|
487
|
+
|
|
488
|
+
**Symptoms**: macOS reports Xcode is damaged and cannot be opened
|
|
489
|
+
|
|
490
|
+
**Solution**: This can occur if the download was interrupted. Remove and reinstall:
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
sudo rm -rf /Applications/Xcode.app
|
|
494
|
+
xcodes install --latest
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
### Issue: Build Takes Very Long Time
|
|
498
|
+
|
|
499
|
+
**Symptoms**: Projects take much longer to build than expected
|
|
500
|
+
|
|
501
|
+
**Solutions**:
|
|
502
|
+
|
|
503
|
+
1. **Enable parallel builds**: Xcode > Settings > Locations > Derived Data > adjust parallel build settings
|
|
504
|
+
|
|
505
|
+
2. **Increase build threads**:
|
|
506
|
+
```bash
|
|
507
|
+
defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration -bool YES
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
3. **Clear derived data**:
|
|
511
|
+
```bash
|
|
512
|
+
rm -rf ~/Library/Developer/Xcode/DerivedData
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
### Issue: Disk Space Running Low
|
|
516
|
+
|
|
517
|
+
**Symptoms**: macOS warns about low disk space after installing Xcode
|
|
518
|
+
|
|
519
|
+
**Solution**: Clean up old archives and derived data:
|
|
520
|
+
|
|
521
|
+
```bash
|
|
522
|
+
# Remove derived data (~5-20 GB typically)
|
|
523
|
+
rm -rf ~/Library/Developer/Xcode/DerivedData
|
|
524
|
+
|
|
525
|
+
# Remove old archives
|
|
526
|
+
rm -rf ~/Library/Developer/Xcode/Archives
|
|
527
|
+
|
|
528
|
+
# Remove old device support files
|
|
529
|
+
rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport
|
|
530
|
+
|
|
531
|
+
# Remove old simulators
|
|
532
|
+
xcrun simctl delete unavailable
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
## Alternative Installation Method: Mac App Store via mas-cli
|
|
536
|
+
|
|
537
|
+
For environments where the xcodes tool is not preferred, Xcode can be installed via the Mac App Store using the `mas` command-line interface.
|
|
538
|
+
|
|
539
|
+
**Note**: As of mas-cli 4.0.0, root privileges are required for installation due to macOS security changes (CVE-2025-43411).
|
|
540
|
+
|
|
541
|
+
```bash
|
|
542
|
+
# Install mas-cli
|
|
543
|
+
brew install --quiet mas
|
|
544
|
+
|
|
545
|
+
# Sign in to App Store (interactive - requires GUI)
|
|
546
|
+
# You must be signed into the Mac App Store app first
|
|
547
|
+
|
|
548
|
+
# Install Xcode (App ID: 497799835)
|
|
549
|
+
sudo mas install 497799835
|
|
550
|
+
|
|
551
|
+
# Accept license after installation
|
|
552
|
+
sudo xcodebuild -license accept
|
|
553
|
+
sudo xcodebuild -runFirstLaunch
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
**Limitations of mas-cli method**:
|
|
557
|
+
- Cannot install older Xcode versions (only current App Store version)
|
|
558
|
+
- Cannot manage multiple Xcode installations
|
|
559
|
+
- Requires prior Mac App Store sign-in via GUI
|
|
560
|
+
- Slower downloads compared to xcodes with aria2
|
|
561
|
+
|
|
562
|
+
For version management and automation, the xcodes method documented above is recommended.
|
|
563
|
+
|
|
564
|
+
## References
|
|
565
|
+
|
|
566
|
+
- [Xcode - Apple Developer](https://developer.apple.com/xcode/)
|
|
567
|
+
- [Xcode Release Notes - Apple Developer Documentation](https://developer.apple.com/documentation/xcode-release-notes)
|
|
568
|
+
- [Xcode Support - Minimum OS Requirements](https://developer.apple.com/support/xcode/)
|
|
569
|
+
- [xcodes CLI - GitHub](https://github.com/XcodesOrg/xcodes)
|
|
570
|
+
- [mas-cli - Mac App Store CLI](https://github.com/mas-cli/mas)
|
|
571
|
+
- [Downloading and Installing Xcode - Apple Documentation](https://developer.apple.com/documentation/xcode/downloading-and-installing-additional-xcode-components)
|
|
572
|
+
- [Apple Developer Downloads](https://developer.apple.com/download/)
|
|
573
|
+
- [xcodereleases.com - Xcode Version History](https://xcodereleases.com/)
|