Swift.org
Mục lục bài viết
Download Swift
Releases
Swift 5.8
Date: March 30, 2023
Tag: swift-5.8-RELEASE
1 Swift 5.8 is available as part of Xcode 14.3.
2 Swift 5.8 Windows 10 toolchain is provided by Saleem Abdulrasool. Saleem is the platform champion for the Windows port of Swift and this is an official build from the Swift project.
RPM
Swift 5.8 RPMs for Amazon Linux 2 and CentOS 7 are for experimental use only. Please provide your feedback.
Use the instructions below for RPM installation:
Amazon Linux 2
$
curl https://download.swift.org/experimental-use-only/repo/amazonlinux/releases/2/swiftlang.repo >
/etc/yum.repos.d/swiftlang.repo
$
amazon-linux-extras install
epel
$
yum install
swiftlang
CentOS 7
$
curl https://download.swift.org/experimental-use-only/repo/centos/releases/7/swiftlang.repo >
/etc/yum.repos.d/swiftlang.repo
$
yum install
epel-release
$
yum install
swiftlang
Snapshots
Trunk Development (main)
Development Snapshots are prebuilt binaries
that are automatically created from mainline development branches.
These snapshots are not official releases.
They have gone through automated unit testing,
but they have not gone through the full testing that is performed for official releases.
1 Swift Windows 10 toolchain is provided by Saleem Abdulrasool. Saleem is the platform champion for the Windows port of Swift and this is an official build from the Swift project.
Swift 5.9 Development
Swift 5.9 Snapshots are prebuilt binaries
that are automatically created from release/5.9
branch.
These snapshots are not official releases.
They have gone through automated unit testing,
but they have not gone through the full testing that is performed for official releases.
Swift 5.8 Development
Swift 5.8 Snapshots are prebuilt binaries
that are automatically created from release/5.8
branch.
These snapshots are not official releases.
They have gone through automated unit testing,
but they have not gone through the full testing that is performed for official releases.
1 Swift Windows 10 toolchain is provided by Saleem Abdulrasool. Saleem is the platform champion for the Windows port of Swift and this is an official build from the Swift project.
Swift is covered by the Swift License at swift.org/LICENSE.txt.
Using Downloads
Apple Platforms
Xcode includes a release of Swift that is supported by Apple.
You can try out a version that is still in development
by downloading one of the packages above.
To submit to the App Store you must build your app using a version of Swift that comes included within Xcode.
Xcode is not required to run the package installer or use an installed
toolchain. However, when Xcode is not installed, the functionality of the Swift
Package Manager may be limited due to some outstanding issues.
Swift 5.1
- macOS 10.14.6
- Xcode 11 or later
Swift 5.0
Swift 4.2
Swift 4.1
Swift 4.0
Swift 3.1
Swift 3.0
Swift 2.2.x
Supported Target Platforms
- macOS 10.9.0 or later
- iOS 7.0 or later
- watchOS 2.0 or later
- tvOS 9.0 or later
Installation
-
Download a snapshot or release
package. Make sure that your system meets the aforecited requirements for
this package. -
Run the package installer,
which will install an Xcode toolchain into
/Library/Developer/Toolchains/
.An Xcode toolchain (
.xctoolchain
) includes a copy of the compiler, LLDB,
and other related tools needed to provide a cohesive development experience
for working in a specific version of Swift.
-
To select the installed toolchain in Xcode, navigate to
Xcode > Toolchains
.Xcode uses the selected toolchain for building Swift code, debugging, and
even code completion and syntax coloring. You’ll see a new toolchain
indicator in Xcode’s toolbar when Xcode is using an installed toolchain.
Select the default toolchain to go back to Xcode’s built-in tools. -
Selecting a toolchain in Xcode affects the IDE only. To use the installed
toolchain with-
xcrun
, pass the--toolchain swift
option. For example:xcrun
--toolchain
swift swift--version
-
xcodebuild
, pass the-toolchain swift
option.
Alternatively, you may select the toolchain on the command line by exporting
theTOOLCHAINS
environment variable as follows:export
TOOLCHAINS
=
$(
plutil-extract
CFBundleIdentifier raw /Library/Developer/Toolchains/<toolchain name>.xctoolchain/Info.plist)
-
Code Signing on macOS
The macOS .pkg
files are digitally signed
by the developer ID of the Swift open source project
to allow verification that they have not been tampered with.
All binaries in the package are signed as well.
The Swift toolchain installer on macOS
should display a lock icon on the right side of the title bar.
Clicking the lock brings up detailed information about the signature.
The signature should be produced by
Developer ID Installer: Swift Open Source (V9AUD2URP3)
.
If the lock is not displayed
or the signature is not produced by the Swift open source developer ID,
do not proceed with the installation.
Instead, quit the installer
and please email [email protected]
with as much detail as possible,
so that we can investigate the problem.
Linux
Packages for Linux are tar archives including a copy of the Swift compiler, lldb, and related tools.
You can install them anywhere as long as the extracted tools are in your PATH
.
Note that nothing prevents Swift from being ported to other Linux distributions beyond the ones mentioned below. These are only the distributions where these binaries have been built and tested.
Requirements
- Ubuntu 18.04, 20.04, or 22.04
- CentOS 7
- Amazon Linux 2
Supported Target Platforms
- Ubuntu 18.04, 20.04, or 22.04
- CentOS 7
- Amazon Linux 2
Installation
- Install required dependencies:
Ubuntu 18.04
Ubuntu 20.04
Ubuntu 22.04
CentOS 7
Amazon Linux 2
$
apt-get install
\
binutils \
git \
libc6-dev \
libcurl4 \
libedit2 \
libgcc-5-dev \
libpython2.7 \
libsqlite3-0 \
libstdc++-5-dev \
libxml2 \
pkg-config \
tzdata \
zlib1g-dev
$
apt-get install
\
binutils \
git \
gnupg2 \
libc6-dev \
libcurl4 \
libedit2 \
libgcc-9-dev \
libpython2.7 \
libsqlite3-0 \
libstdc++-9-dev \
libxml2 \
libz3-dev \
pkg-config \
tzdata \
uuid-dev \
zlib1g-dev
$
apt-get install
\
binutils \
git \
gnupg2 \
libc6-dev \
libcurl4-openssl-dev \
libedit2 \
libgcc-9-dev \
libpython3.8 \
libsqlite3-0 \
libstdc++-9-dev \
libxml2-dev \
libz3-dev \
pkg-config \
tzdata \
unzip \
zlib1g-dev
$
yum install
\
binutils \
gcc \
git \
glibc-static \
libbsd-devel \
libedit \
libedit-devel \
libicu-devel \
libstdc++-static \
pkg-config \
python2 \
sqlite
# __block conflicts with clang's __block qualifier
sed
-i
-e
's/\*__block/\*__libc_block/g'
/usr/include/unistd.h
$
yum install
\
binutils \
gcc \
git \
glibc-static \
gzip
\
libbsd \
libcurl \
libedit \
libicu \
libsqlite \
libstdc++-static \
libuuid \
libxml2 \
tar
\
tzdata
-
Download the latest binary release above.
The
swift-<VERSION>-<PLATFORM>.tar.gz
file is the toolchain itself.
The.sig
file is the digital signature. -
If you are downloading Swift packages for the first time, import the PGP
keys into your keyring:$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD'
\
'1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F'
\
'A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6'
\
'5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235'
\
'8513 444E 2DA3 6B7C 1659 AF4D 7638 F1FB 2B2B 08C4'
\
'A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561'
\
'8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA'
\
'E813 C892 820A 6FA1 3755 B268 F167 DF1A CF9C E069'
or:
$
wget-q
-O
- https://swift.org/keys/all-keys.asc |\
gpg--import
-Skip this step if you have imported the keys in the past.
-
Verify the PGP signature.
The
.tar.gz
archives for Linux are signed using GnuPG
with one of the keys of the Swift open source project.
Everyone is strongly encouraged to verify the signatures
before using the software.First, refresh the keys to download new key revocation certificates,
if any are available:$
gpg--keyserver
hkp://keyserver.ubuntu.com--refresh-keys
SwiftThen, use the signature file to verify that the archive is intact:
$
gpg--verify
swift-<VERSION>-<PLATFORM>.tar.gz.sig ... gpg: Good signature from"Swift Automatic Signing Key #4 <[email protected]>"
If
gpg
fails to verify because you don’t have the public key (gpg: Can't
), please follow the instructions in
check signature: No public key
Active Signing Keys below to
import the keys into your keyring.You might see a warning:
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
This warning means that there is no path in the Web of Trust between this
key and you. The warning is harmless as long as you have followed the steps
above to retrieve the key from a trusted source.If
gpg
fails to verify and reports “BAD signature”,
do not use the downloaded toolchain.
Instead, please email [email protected]
with as much detail as possible,
so that we can investigate the problem. -
Extract the archive with the following command:
$
tar
xzf swift-<VERSION>-<PLATFORM>.tar.gzThis creates a
usr/
directory in the location of the archive. -
Add the Swift toolchain to your path as follows:
$
export
PATH
=
/path/to/usr/bin:"
${
PATH
}
"
You can now execute the
swift
command to run the REPL or build Swift projects.
Active Signing Keys
The Swift project uses one set of keys for snapshot builds, and separate keys for
every official release. We are using 4096-bit RSA keys.
The following keys are being used to sign toolchain packages:
-
Swift Automatic Signing Key #4 <[email protected]>
- Download
- https://swift.org/keys/automatic-signing-key-4.asc
- Fingerprint
E813 C892 820A 6FA1 3755 B268 F167 DF1A CF9C E069
- Long ID
F167DF1ACF9CE069
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'E813 C892 820A 6FA1 3755 B268 F167 DF1A CF9C E069'
Or:
$
wget-q
-O
- https://swift.org/keys/automatic-signing-key-4.asc |\
gpg--import
- -
Swift 2.2 Release Signing Key <[email protected]>
- Download
- https://swift.org/keys/release-key-swift-2.2.asc
- Fingerprint
1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F
- Long ID
9F597F4D21A56D5F
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F'
Or:
$
wget-q
-O
- https://swift.org/keys/release-key-swift-2.2.asc |\
gpg--import
- -
Swift 3.x Release Signing Key <[email protected]>
- Download
- https://swift.org/keys/release-key-swift-3.x.asc
- Fingerprint
A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6
- Long ID
63BC1CFE91D306C6
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6'
Or:
$
wget-q
-O
- https://swift.org/keys/release-key-swift-3.x.asc |\
gpg--import
- -
Swift 4.x Release Signing Key <[email protected]>
- Download
- https://swift.org/keys/release-key-swift-4.x.asc
- Fingerprint
5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235
- Long ID
EF5430F071E1B235
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235'
Or:
$
wget-q
-O
- https://swift.org/keys/release-key-swift-4.x.asc |\
gpg--import
- -
Swift 5.x Release Signing Key <[email protected]>
- Download
- https://swift.org/keys/release-key-swift-5.x.asc
- Fingerprint
A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561
- Long ID
925CC1CCED3D1561
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561'
Or:
$
wget-q
-O
- https://swift.org/keys/release-key-swift-5.x.asc |\
gpg--import
-
Expired Signing Keys
-
Swift Automatic Signing Key #3 <[email protected]>
- Download
- https://swift.org/keys/automatic-signing-key-3.asc
- Fingerprint
8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA
- Long ID
FAF6989E1BC16FEA
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA'
Or:
$
wget-q
-O
- https://swift.org/keys/automatic-signing-key-3.asc |\
gpg--import
- -
Swift Automatic Signing Key #2 <[email protected]>
- Download
- https://swift.org/keys/automatic-signing-key-2.asc
- Fingerprint
8513 444E 2DA3 6B7C 1659 AF4D 7638 F1FB 2B2B 08C4
- Long ID
7638F1FB2B2B08C4
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'8513 444E 2DA3 6B7C 1659 AF4D 7638 F1FB 2B2B 08C4'
Or:
$
wget-q
-O
- https://swift.org/keys/automatic-signing-key-2.asc |\
gpg--import
- -
Swift Automatic Signing Key #1 <[email protected]>
- Download
- https://swift.org/keys/automatic-signing-key-1.asc
- Fingerprint
7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD
- Long ID
D441C977412B37AD
To import the key, run:
$
gpg--keyserver
hkp://keyserver.ubuntu.com\
--recv-keys
\
'7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD'
Or:
$
wget-q
-O
- https://swift.org/keys/automatic-signing-key-1.asc |\
gpg--import
-
Windows
Dependencies
Swift has the following general dependencies:
-
Git (used by Swift Package Manager)
-
Python (used by the debugger – lldb)
Windows has the following additional platform specific dependencies:
-
Windows SDK (provides the Windows headers and import libraries)
-
Visual Studio (provides the Visual C++ SDK/Build Tools for additional headers)
Installation Instructions
Install using the Windows Package Manager
The Windows Package Manager can be found in the App Store or be installed directly.
Install using Scoop
# Optional: Needed to run a remote script the first time
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# Command for installing scoop
Invoke-RestMethod -Url 'get.scoop.sh' | Invoke-Expression
-
Install required dependencies:
The platform dependencies cannot be installed through the Windows Package Manager as the install rules do not install the components necessary. They will be installed through Visual Studio installer.
With Winget (Windows Package Manager):
winget install Git.Git winget install Python.Python.3.10 curl -sOL https://aka.ms/vs/16/release/vs_community.exe start /w vs_community.exe --passive --wait --norestart --nocache ^ --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community" ^ --add Microsoft.VisualStudio.Component.Windows10SDK.19041 ^ --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 del /q vs_community.exe
With Scoop:
# Scoop already comes pre-installed with Git, so no need to re-install it. scoop bucket add versions scoop install python310 curl -sOL https://aka.ms/vs/16/release/vs_community.exe start /w vs_community.exe --passive --wait --norestart --nocache ^ --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community" ^ --add Microsoft.VisualStudio.Component.Windows10SDK.19041 ^ --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 del /q vs_community.exe
Start up a new Command Prompt/Powershell Prompt and install the Python library six.
pip install six
-
Install Swift:
Swift can be installed through the official installer directly, using the Windows Package Manager, or using Scoop as well. Notice that Windows Package Manager release may be behind the official release, Scoop won’t have this issue.
- Using the official installer:
- Download the latest package release.
- Run the package installer.
- Using the Windows Package Manager:
winget install Swift.Toolchain
- Using Scoop:
scoop install swift
- Using the official installer:
A Swift toolchain will be installed at %SystemDrive%\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain
. A compatible Swift SDK will be installed at %SystemDrive%\Library\Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk
.
Traditional Installation
NOTE: The traditional installation process is required for Swift older than 5.4.2.
Swift has been tested with Visual Studio 2019. You will need to install Visual Studio with the following components. The installer for Swift is available in the Download section. The toolchain on Windows is installed to %SystemDrive%\Library\Developer\Toolchains
.
The following Visual Studio components are required:
Component
Visual Studio ID
MSVC v142 – VS 2019 C++ x64/x86 build tools (Latest)
Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Windows 10 SDK (10.0.17763.0)
Microsoft.VisualStudio.Component.Windows10SDK.17763
The following additional Visual Studio components are recommended:
Component
Visual Studio ID
Git for Windows
Microsoft.VisualStudio.Component.Git
Python 3 64-bit (3.7.8)
Component.CPython.x64
The following additional Visual Studio component is suggested:
Component
Visual Studio ID
C++ CMake tools for Windows
Microsoft.VisualStudio.Component.VC.CMake.Project
Support Files
NOTE: This is only required for versions older than 5.4.2
You must use the x64 Native Tools for VS2019 Command Prompt
to run the following steps. The x64 Native Tools for VS2019 Command Prompt
runs the DevEnv
script from Visual Studio that sets up the necessary environment variables to find the system headers.
In order to make the Windows SDK accessible to Swift, it is necessary to deploy a few files into the Windows SDK. The following will modify your Visual Studio Installation, and as such will require to be run from an (elevated) “Administrator” x86 Native Tools for VS2019 Command Prompt
.
copy /Y %SDKROOT%\usr\share\ucrt.modulemap "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap"
copy /Y %SDKROOT%\usr\share\visualc.modulemap "%VCToolsInstallDir%\include\module.modulemap"
copy /Y %SDKROOT%\usr\share\visualc.apinotes "%VCToolsInstallDir%\include\visualc.apinotes"
copy /Y %SDKROOT%\usr\share\winsdk.modulemap "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap"
Because it is installing the files into the Visual Studio image, the files will need to be copied each time Visual Studio is updated.
If Visual Studio is updated, you may have to repair the installation. See Microsoft’s instructions for repairing installed programs.
Code Signing on Windows
-
Install GPG from GnuPG.org
-
If you are downloading Swift packages for the first time, import the PGP keys into your keyring:
$ gpg.exe --keyserver hkp://keyserver.ubuntu.com ` --receive-keys ` 'A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561' ` '8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA'
or:
$ wget https://swift.org/keys/all-keys.asc -UseBasicParsing | ` Select-Object -Expand Content | gpg.exe --import -
Skip this step if you have imported the keys in the past.
-
Verify the PGP signature.
The
.exe
installer for Windows are signed using GnuPG with one of the keys of the Swift open source project. Everyone is strongly encouraged to verify the signatures before using the software.First, refresh the keys to download new key revocation certificates, if any are available:
$
gpg.exe--keyserver
hkp://keyserver.ubuntu.com--refresh-keys
SwiftThen, use the signature file to verify that the archive is intact:
$
gpg.exe--verify
swift-<VERSION>-<PLATFORM>.exe.sig ... gpg: Good signature from"Swift Automatic Signing Key #3 <[email protected]>"
If
gpg
fails to verify because you don’t have the public key (gpg: Can't check signature: No public key
), please follow the instructions in Active Signing Keys below to import the keys into your keyring.You might see a warning:
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
This warning means that there is no path in the Web of Trust between this key and you. The warning is harmless as long as you have followed the steps above to retrieve the key from a trusted source.
If
gpg
fails to verify and reports “BAD signature”, do not use the downloaded toolchain. Instead, please email [email protected] with as much detail as possible, so that we can investigate the problem.
Active Signing Keys
The Swift project uses one set of keys for snapshot builds, and separate keys for every official release. We are using 4096-bit RSA keys.
The following keys are being used to sign toolchain packages:
-
Swift Automatic Signing Key #3 <[email protected]>
- Download
- https://swift.org/keys/automatic-signing-key-4.asc
- Fingerprint
8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA
- Long ID
FAF6989E1BC16FEA
To import the key, run:
$
gpg.exe--keyserver
hkp://keyserver.ubuntu.com`
--receive-keys
`
'8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA'
Or:
$
wget https://swift.org/keys/automatic-signing-key-4.asc-UseBasicParsing
|`
Select-Object-Expand
Content | gpg.exe--import
- -
Swift 5.x Release Signing Key <[email protected]>
- Download
- https://swift.org/keys/release-key-swift-5.x.asc
- Fingerprint
A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561
- Long ID
925CC1CCED3D1561
To import the key, run:
$
gpg.exe--keyserver
hkp://keyserver.ubuntu.com`
--receive-keys
`
'A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561'
Or:
$
wget https://swift.org/keys/release-key-swift-5.x.asc-UseBasicParsing
|`
Select-Object-Expand
Content | gpg.exe--import
-
Docker
Swift official Docker images are hosted on hub.docker.com/_/swift.
Swift Dockerfiles are located on swift-docker repository.
Supported Platforms
- Ubuntu 18.04
- Ubuntu 20.04
- CentOS 7
- Amazon Linux 2
Using Docker Images
-
Pull the Docker image from Docker hub:
docker pull swift
-
Create a container using tag
latest
and attach it to the container:docker run
--privileged
--interactive
--tty
\
--name
swift-latest swift:latest /bin/bash -
Start container
swift-latest
:docker start swift-latest
-
Attach to
swift-latest
container:docker attach swift-latest