Skip to content

Commit d015776

Browse files
Merge pull request circleci#5557 from circleci/BytesGuy-patch-1
Add NVM info and clarify Apple Silicon support
2 parents 2088f2d + f0ddfc9 commit d015776

File tree

1 file changed

+50
-5
lines changed

1 file changed

+50
-5
lines changed

jekyll/_cci2/testing-ios.md

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,16 @@ To read about our customer support policy regarding beta images, please check ou
4343
### Apple silicon support
4444
{: #apple-silicon-support }
4545

46-
**Please Note:** Apple has indicated that Apple Silicon developers should continue to use Xcode 12 beta 6, rather than the GM. We have retained this image and you can access it by requesting the `12.0.0-beta` image.
46+
It is possible to build Apple Silicon/Universal binaries using Xcode `12.0.0` and higher as Apple provides both the Intel (`x86_64`) and Apple Silicon (`arm64`) toolchains in this release. Cross-compiling Apple Silicon binaries on Intel hosts has an additional overhead and as a result compilation times will be longer than native compilation for Intel.
4747

48-
It is possible to build Apple Silicon/Universal binaries using the Xcode `12.0.0-beta` image as Apple provides both the Intel (`x86_64`) and Apple Silicon (`arm64`) toolchains in this release. Cross-compiling Apple Silicon binaries on Intel hosts has an additional overhead and as a result compilation times will be longer than native compilation for Intel.
49-
50-
Running or testing Apple Silicon apps natively is currently not possible as CircleCI build hosts are Intel-based Macs. Binaries will need to be exported as [artifacts](https://circleci.com/docs/2.0/artifacts/) for testing apps locally.
48+
Running or testing Apple Silicon apps natively is currently not possible as CircleCI build hosts are Intel-based Macs. Binaries will need to be exported as [artifacts](https://circleci.com/docs/2.0/artifacts/) for testing apps locally. Alternatively, [CircleCI runner](https://circleci.com/docs/2.0/runner-overview/#supported) can also be used to run jobs natively on Apple Silicon.
5149

5250
## Supported Xcode versions
5351
{: #supported-xcode-versions }
5452

5553
Config | Xcode Version | macOS Version | macOS UI Testing Supported | Software Manifest | Release Notes
5654
----------|---------------------------------|---------------|----------------------------|-------------------|--------------
57-
`13.0.0` | Xcode 13.0 Beta 2 (13A5155e) | 11.4.0 | Yes | [Installed software](https://circle-macos-docs.s3.amazonaws.com/image-manifest/v5801/index.html) | [Release Notes](https://discuss.circleci.com/t/xcode-13-beta-2-released/40583)
55+
`13.0.0` | Xcode 13.0 Beta 4 (13A5201i) | 11.5.1 | Yes | [Installed software](https://circle-macos-docs.s3.amazonaws.com/image-manifest/v5901/index.html) | [Release Notes](https://discuss.circleci.com/t/xcode-13-beta-4-released/40876)
5856
`12.5.1` | Xcode 12.5.1 (12E507) | 11.4.0 | Yes | [Installed software](https://circle-macos-docs.s3.amazonaws.com/image-manifest/v5775/index.html) | [Release Notes](https://discuss.circleci.com/t/xcode-12-5-1-released/40490)
5957
`12.4.0` | Xcode 12.4 (12D4e) | 10.15.5 | Yes | [Installed software](https://circle-macos-docs.s3.amazonaws.com/image-manifest/v4519/index.html) | [Release Notes](https://discuss.circleci.com/t/xcode-12-4-release/38993)
6058
`12.3.0` | Xcode 12.3 (12C33) | 10.15.5 | Yes | [Installed software](https://circle-macos-docs.s3.amazonaws.com/image-manifest/v4250/index.html) | [Release Notes](https://discuss.circleci.com/t/xcode-12-3-release/38570)
@@ -334,6 +332,53 @@ steps:
334332
- run: bundle exec pod install
335333
```
336334

335+
## Using NodeJS
336+
{: #using-nodejs }
337+
338+
The Xcode images are supplied with at least one version of NodeJS ready to use.
339+
340+
### Images using Xcode 13 and later
341+
{: #images-using-xcode-13-and-later }
342+
343+
These images have NodeJS installations managed by `nvm` and will always be supplied with the latest `current` and `lts` release as of the time the image was built. Additionally, `lts` is set as the default NodeJS version.
344+
345+
Version information for the installed NodeJS versions can be found in [the software manifests for the image](#supported-xcode-versions)], or by running `nvm ls` during a job.
346+
347+
To set the `current` version as the default:
348+
349+
```yaml
350+
# ...
351+
steps:
352+
- run: nvm alias default node
353+
```
354+
355+
To revert to the `lts` release:
356+
357+
```yaml
358+
# ...
359+
steps:
360+
- run: nvm alias default --lts
361+
```
362+
363+
To install a specific version of NodeJS and use it:
364+
365+
```yaml
366+
# ...
367+
steps:
368+
- run: nvm install 12.22.3 && nvm alias default 12.22.3
369+
```
370+
371+
These images are also compatiable with the official [CircleCI Node orb](https://circleci.com/developer/orbs/orb/circleci/node), which helps to manage your NodeJS installation along with caching packages.
372+
373+
### Images using Xcode 12.5 and earlier
374+
{: #images-using-xcode-125-and-earlier }
375+
376+
These images come with at least one version of NodeJS installed directly using `brew`.
377+
378+
Version information for the installed NodeJS versions can be found in [the software manifests for the image](#supported-xcode-versions)].
379+
380+
These images are also compatiable with the official [CircleCI Node orb](https://circleci.com/developer/orbs/orb/circleci/node) which helps to manage your NodeJS installation, by installing `nvm`, along with caching packages.
381+
337382
## Using Homebrew
338383
{: #using-homebrew }
339384

0 commit comments

Comments
 (0)