- Xcode For Macos Catalina 10.15 Update
- How To Update Xcode Catalina
- What Are The System Requirements For Macos Catalina
- Xcode For Macos Catalina 10.15.7
- Xcode For Macos Catalina 10.15 Full
│English (en) │ 한국어 (ko) │ русский (ru) │
This article applies to macOS only.
I'm using VMware to run macOS Catalina 10.15 beta I tried to download xcode from the appstore and it won't After that I downloaded the XCode 11.7 from the developer download, and installed it but won't work So I will download another XCode version, but Which XCode version is compatible with macOS Catalina 10.15 beta? Once Xcode is properly registered on the system, you can delete file Xcode11.7.xip. Install VirtualBox’s Guest Additions. On macOS 10.15 Catalina, Guest Additions cannot be installed by default. The installation cannot be completed as normal because the OS now require packages to be digitally signed. I've updated my mac to Catalina 10.15 so I can install and work with the latest Xcode version. After installing the software from the App Store, when I click to start it, but it crashes and shows t.
See also: Multiplatform Programming Guide
Installing Lazarus on a Mac is not particularly difficult but it is critical that you do the install in the correct order. Skipping steps will almost certainly end in tears. In brief, here is what you need to do:
- Download and install Xcode (optional depending on your needs - see below for details).
- Install the global command line tools for Xcode.
- Download and install the Free Pascal Compiler (FPC) binaries and the FPC source from the Lazarus IDE file area (Important do this before you install the Lazarus IDE)
- Download and install the Lazarus IDE from the Lazarus IDE file area
- Configure LLDB - the Apple supplied (and signed) debugger from within the Lazarus IDE.
These steps are explained in more detail below.
Xcode For Macos Catalina 10.15 Update
- 1Installation
- 1.3Step 3: FPC binaries and FPC source code
- 1.5Step 5: Configure the Debugger
- 4Installing non-release versions of the Lazarus IDE
- 4.1Lazarus Fixes 2.2
- 4.2Lazarus Trunk
- 5Installing non-release versions of FPC
- 5.1Installing from source
- 6Known issues and solutions
Installation
The detailed instructions assume a recent version of macOS on your Mac, a recent version of Xcode from Apple and a recent version of Lazarus. On the Legacy Information page, you will see older information that may be relevant if you are using older components. You can assist by replacing out of date information, either deleting it, or, if it may help someone working with a legacy project, moving it to the legacy information page.
In general, this is about using both the Carbon and Cocoa Widget Sets. While Carbon was once seen as a little more stable, with the release Lazarus 2.0.8 the 64 bit Cocoa Widget Set has now surpassed Carbon and should be considered seriously for any new projects. Carbon was intentionally limited to 32 bits by Apple and you should be aware that it and the ability to run 32 bit executables have been removed completely from macOS 10.15 Catalina and later versions which now only support 64 bit executables using Cocoa.
Step 1: Download Xcode (optional)
Xcode is a 12GB download which will take up 16GB of disk space. You only need to download and install the full Xcode development environment if you need:
- the SDKs for iOS, iPadOS, watchOS and tvOS; or
- to validate and upload apps to the Mac App Store; or
- to notarise apps for distribution outside of the Mac App Store.
Xcode 11.3.1 for use on macOS 10.14 Mojave must now be installed by downloading it from Apple Developer Connection (ADC), which requires free registration. Xcode 12.4.x for use on macOS 10.15 Catalina and macOS 11 Big Sur can be installed from the Mac App store. Note that you must first move any old Xcode versions from the Applications folder into the trash or rename the Xcode app (eg Xcode.app to Xcode_1014.app). You can then select which version of Xcode to use with the command line utility xcode-select. Open an Applications > Utilities > Terminal and type man xcode-select for this utility's manual page.
Older systems:
The Xcode developer tools can be installed from the original macOS installation disks or a newer copy downloaded from the Apple Developer Connection (ADC), which requires free registration. Download the Xcode file, it will end up in your Downloads directory as a zip file. Click it. It is unarchived into your Downloads directory. You may be happy with it there but maybe not. Other users will see the path to it but be unable to use it. And it is untidy there. So I moved mine and then told xcode-select where it was moved to (in a terminal) -
Step 2: Xcode Command Line Tools
This is shown here as a separate step because it really is a separate step. Don't confuse these standalone command line tools with the internal Xcode command line tools that the Xcode GUI will tell you are already installed if you installed the full Xcode package in Step 1. FPC cannot use those Xcode internal command line tools without configuration changes (see Xcode for details).
Do the following, it is quick and easy for all macOS versions up to and including Catalina 10.15:
For Big Sur 11.x, you only need to enter the first of the two commands above unless you have also installed the full Xcode package. If you have only installed the command line tools, you should omit entering the xcodebuild command.
If you have problems installing the command line tools using this command line method (eg the installer freezes while 'finding Software'), you can also download and install the command line tools package by logging in to the Apple Developer Site and downloading and installing the Command Line Tools for Xcode disk image.
Step 3: FPC binaries and FPC source code
Note: For installation on Apple Silicon/AArch64, after installing the 64 bit Intel binary and source for FPC, please refer to these instructions for building a native Apple Silicon Free Pascal Compiler.
Download and install the Free Pascal Compiler (FPC) binaries and the separate source package. A compatible FPC (and source) must be installed before you install Lazarus. You have a number of options.
Source Forge (Official Repository)
Download the official Free Pascal Compiler (FPC) binaries and FPC source packages from the Lazarus IDE file area.
When you arrive at that file area:
- Choose the correct version of your operating system. The vast majority of Mac users should now choose the 64 bit packages in the Lazarus macOS x86-64 directory. Every Mac computer since late 2006 has been 64 bit capable. The fact that Apple has completely dropped all 32 bit support from macOS 10.15 Catalina (released in October 2019) is another reason to choose the 64 bit packages.
- Choose the version of Lazarus you wish to install and you will be presented with the FPC binary and source packages to download.
These installation packages are built by the FPC/Lazarus developers and track formal releases. As these installation packages are not approved by Apple, you need to hold down the Control key, click the package and choose Open and confirm you want to install from an Unknown Developer.
You might like to try a simple and quick test of FPC at this stage - Testing FPC installation.
Step 4: Install the Lazarus IDE
Note: For installation on Apple Silicon/AArch64, please refer to the Lazarus Fixes 2.2 or Lazarus Trunk instructions to build a native Lazarus IDE. Skip to the building instructions and use the Lazarus Fixes 2.2 source / Lazarus Trunk source download as you wish.
Download and install the Lazarus IDE from the Lazarus IDE file area. When you arrive at that file area, choose the correct version of your operating system. The vast majority of Mac users should now choose the 64 bit packages in the Lazarus macOS x86-64 directory. Every Mac computer since late 2006 has been 64 bit capable. The fact that Apple has completely dropped all 32 bit support from macOS 10.15 Catalina (released in October 2019) is another reason to choose the 64 bit packages.
Step 5: Configure the Debugger
In versions of Lazarus 1.8.4 and earlier, you needed to use gdb as a debugger, slow to install and hard to sign. Since Lazarus 2.0.0 you can (and should) use lldb, a debugger provided by Apple, no signing required.
Assuming you have installed what is necessary and started Lazarus, all that remains is configuring the debugger. If you don't do this now, Lazarus will try to use gdb and fail.
First, click Tools > Options > Debugger. Top right of the window now open has a label, 'Debugger type and path', you must set both. Select 'LLDB debugger (with fpdebug) (Beta)'.
If it is not shown in the selection list, see Installing LazDebuggerFpLLdb below. The XCode command line tools install lldb to the /usr/bin directory. Save those settings and you can now try to compile the almost nothing program that Lazarus has kindly provided for you (click the small green triangle near top left).
Next you see a puzzling question, see image below. Choose a 'Debug Format' from one of the offered -
Martin_fr, the person who has given us this interface between Lazarus and lldb, suggests you use 'dwarf3' . Then, you need to enter your password, a macOS cuteness because one application appears to be interfering with another. In this case, that's fine!
In the latest versions of Lazarus (tested on 2.1.0 compiled from source) click Lazarus > Preferences... > Debugger > Debugger backend. In the Debugger type and path box select 'LLDB debugger (with fpdebug)(Beta) and /usr/bin/lldb. This requires that the package lazdebuggerfplldb.lpk has been installed for it to work as described below.
When running the debugger from time to time you will be asked for your password to allow debugging. This is for your own safety.
Extra Information on using lldb
A great deal of information about using lldb appears in this forum thread. Here are a few gems, again, from Martin_fr:
In the unexpected case of problems, it may be worth trying 'dwarf with sets' instead of just 'dwarf3'.
The 'debug info' setting only affects the units directly in your project. However, units in packages may have debug info too. This can be:
- set per package
- for many, but not all packages in the menu Tools > Configure 'Build Lazarus'
- Project > Project Options > Additions and Overrides
If you change settings for a package, you might want to check which package you expect to step into when debugging. Packages you do not step into, do not need debug info.
If you use a type from a package (such as TForm from LCL) it is enough that your unit (in which you declare the variable / must declare and use a variable to include the type) has debug info. Reducing the number of packages with debug info (including those that default to have debug info), can shorten the debuggers start-up time.
Also it may be worth comparing (it has not been tested) the debuggers start up time for the same settings, only changing the checkbox 'use external debug info'.
This needs to be only set in your project. If set in your project it will affect all packages. (If set in a package it will do nothing / at least should...)
Installing LazDebuggerFpLLdb
If you installed from source and used the bigide parameter to make, then the correct debugger will be installed, as a package, and ready to go. If, however, you installed in another way, it may, or may not be there. From the main IDE screen, click Packages->Install/UninstallPackages. Shown is two lists of packages, the list on the left is installed, the list on the right is available to install. Look for LazDebuggerFpLldb (exactly that, there are some similar named but less suitable packages). If it is on the right hand side, click it, press 'Install Selection' and then 'Save and rebuild IDE'. This will take a little time, the IDE will shutdown and restart and all should be well. Now jump back up the page and continue configuring the debugger.
Cocoa 64 bit vs Carbon 32 bit
Lazarus using the Apple 64 bit Cocoa framework should now meet the needs of users. The Apple 32 bit Carbon framework works pretty much as expected but you are advised to try Cocoa first, because Apple has dropped support for 32 bit applications and the Carbon framework from macOS 10.15 Catalina which was released in October 2019.
Alternatives include QT and GTK2+, both requiring additional libraries and GTK2+ on the Mac appears to get little attention these days. QT on the Mac does have some strong supporters on the Lazarus forum.
Cocoa is now undeniably the future on the Mac. It is possible to build an all Cocoa version of Lazarus with release 2.0.0 and later. It is also possible to make a Carbon install of Lazarus (unless you are running macOS 10.15 Catalina or later) and use that to generate Cocoa 64 bit binaries.
In the Carbon or Cocoa IDE, you need to set the Target to the 64 bit processor and select the Cocoa Widget set:
- Open your project with Lazarus and from the menu select Project > Project Options
- In the 'Config and Target' panel set the 'Target CPU family' to be 'x86_64'
- In the 'Additions and Overrides' panel click on 'Set LCLWidgetType' pulldown and set the value to 'Cocoa'
- For some reason Lazarus sets the compiler to '/usr/local/bin/ppc386' - which results in 32 bit applications. Make sure under Tools > Options that 'Compiler Executable' is set to '/usr/local/bin/fpc' to get 64 bit applications.
- Now compile your project - and please feed back any problems you experience.
FPC + Lazarus Compatibility Matrix
Not every combination of Lazarus and Free Pascal is compatible with every installation of macOS. Please refer to the following table in order to find the correct version for your development environment:
Lazarus 1.8.x | Lazarus 2.0.y | Lazarus 2.2.0 RC1 | |||||||
---|---|---|---|---|---|---|---|---|---|
FPC 3.0.4 | FPC 3.2.0 | FPC 3.2.2 | |||||||
PPC processors | |||||||||
Mac OS X 10.4 (Tiger) | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | ||
Mac OS X 10.5 (Leopard) | Not tested | Not tested | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | ||
Intel processors | |||||||||
Mac OS X 10.4 (Tiger) | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | Incompatible | ||
Mac OS X 10.5 (Leopard) | Not tested | Compatible^ | Not tested | Compatible^**† | Not tested | Not tested | Not tested | ||
Mac OS X 10.6 (Snow Leopard) | Compatible | Compatible^^ | Not tested | Not tested | Not tested | Not tested | Not tested | ||
Mac OS X 10.7 (Lion) | Compatible | Not tested | Not tested | Not tested | Not tested | Not tested | Not tested | ||
OS X 10.8 (Mountain Lion) | Compatible^^ | Compatible | Compatible**# | Compatible**# | Not tested | Not tested | Not tested | ||
OS X 10.9 (Mavericks) | Compatible^^ | Compatible | Compatible**† | Compatible**† | Not tested | Not tested | Not tested | ||
OS X 10.10 (Yosemite) | Compatible^^ | Compatible | Compatible**† | Compatible**† | Not tested | Not tested | Not tested | ||
OS X 10.11 (El Capitan) | Compatible^^ | Compatible | Compatible***† | Compatible† | Compatible## | Not tested | Not tested | ||
macOS 10.12 (Sierra) | Compatible^^ | Compatible | Compatible***† | Compatible† | Compatible† | Compatible† | Not tested | ||
macOS 10.13 (High Sierra) | Not tested | Compatible | Compatible***† | Compatible† | Compatible† | Compatible† | Not tested | ||
macOS 10.14 (Mojave) | Not tested | Compatible | Compatible***† | Compatible† | Compatible† | Compatible† | Compatible | ||
macOS 10.15 (Catalina) | Not tested | Compatible | Compatible***† | Compatible† | Compatible† | Compatible† | Compatible | ||
macOS 11.0 (Big Sur) | Not tested | Compatible | Compatible***† | Compatible† | Compatible† | Compatible† | Compatible | ||
macOS 12.0 (Monterey Beta) | Not tested | Not tested | Not tested | Not tested | Not tested | Not tested | Compatible | ||
Apple Silicon processors | |||||||||
macOS 11.0 (Big Sur) | Not tested | Not tested | Not tested | Compatible†† | Compatible†† | Compatible††† | Compatible* |
x = 0, 2 or 4; y = 0, 2, 4, 6, 8, 10 or 12
^ Carbon interface compiles - Cocoa does not.
^^ Restrictions apply to debugging with gdb.
** See Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier for instructions.
*** See Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+ for instructions.
# Cannot run with/without debugging in the IDE. Can run compiled application outside of the IDE. See Issue #37324
## You need to compile FPC 3.2.0 from source with FPC 3.0.4 which is installed with the Lazarus 2.0.12 packages.
† Cannot 'run without debugging' in the IDE. Can run compiled application outside of the IDE. See Lazarus IDE - Unable to 'run without debugging' for workaround. See Issue #36780.
†† You need to compile a native aarch64 version of FPC 3.3.1 (trunk) and Lazarus 2.0.12 from source to support an Apple Silicon M1 processor. Refer to these instructions for FPC and these instructions for the Lazarus IDE.
††† After installing FPC 3.2.2, you need to compile a native aarch64 version of Lazarus from source to support an Apple Silicon M1 processor. Refer to these instructions for compiling the Lazarus IDE.
* Lazarus 2.2 Release Candidate 1 installs universal binaries for FPC 3.2.2, but an Intel Lazarus IDE binary which you can use or recompile the IDE from within itself for a native aarch64 version. This may change when Lazarus 2.2 is officially released.
Installing non-release versions of the Lazarus IDE
Lazarus Fixes 2.2
There are a number of reasons why you may be better off using a non-release version of Lazarus, specifically, fixes_2_2. Particularly:
- You almost certainly need to target 64 bit Cocoa, macOS 10.15 Catalina and later do not support 32 bit Carbon at all.
- The Cocoa widget set has steadily improved and the lldb debugger interface has rapidly improved, since even v2.0.0.
- If your Mac has an Apple M1 Processor, the debugger in fixes_2_2 now works for aarch64.
- Fixes_2_2 is a safer and more stable option than trunk, but still gets the new features much faster than the release version.
Pre-compiled binaries based on fixes_2_2 are not available from SourceForge so we download and build from the source code. A little slow initially but very reliable and a great test of your compiler install ! You will need git which is included in all recent versions of the Xcode command line tools which you should have already installed (see Xcode Command Line Tools above).
About svn or git: The Xcode 11.4 command line tools on macOS 10.15 no longer install svn, only git. You can install subversion via fink, ports or brew.
Additional notes for building a native aarch64 Lazarus IDE for an Apple Silicon M1 processor Mac
- Ensure you have compiled a native aarch64 Free Pascal Compiler (see Apple Silicon Support for how to do this).
Note: The FPC 3.2.2 release includes universal binaries which will run natively on both aarch64 (ARM 64 bit - Apple Silicon M1) as well as x86_64 (Intel 64 bit) so you no longer need to compile your own from source.
- When building the Lazarus IDE, change the CPU_TARGET in the instructions below from x86_64 (Intel 64 bit) to aarch64 (ARM 64 bit - Apple Silicon M1).
Downloading Lazarus Fixes 2.2 source
Create a directory for Lazarus and download the current fixes version:
Using git:
Using svn:
Depending on your internet connection and server congestion this takes a few seconds or a few minutes.
Updating Lazarus Fixes 2.2 source
To keep your fixes_2_2 installation up to date is as easy as:
Using git:
Using svn:
Building Lazarus Fixes 2.2 source
- Note I pass a parameter to use a config directory that is based on the name of the actual install directory. It makes some scripting easy.
- On older macOS versions supporting 32 bit applications, replace the above make line with 'make LCL_PLATFORM=carbon CPU_TARGET=i386 bigide ' and set up your project as mentioned in the Carbon and Cocoa section below.
You might like to put a small script in your $HOME/bin directory and even set a path to it (very UNIX!)
Lazarus Trunk
Precompiled binaries based on the trunk development version of the Lazarus IDE are not available from SourceForge, so here's how to download the trunk source using svn or git and build the Lazarus IDE. You will need svn (before macOS 10.15 - Catalina) or git (after macOS 10.14 - Mojave) which is included in the Xcode command line tools which you should have already installed (see Xcode Command Line Tools above).
Additional notes for building a native aarch64 Lazarus IDE for an Apple Silicon M1 processor Mac
- Ensure you have compiled a native aarch64 Free Pascal Compiler (see Apple Silicon Support for how to do this).
Note: The FPC 3.2.2 release includes universal binaries which will run natively on both aarch64 (ARM 64 bit - Apple Silicon M1) as well as x86_64 (Intel 64 bit) so you no longer need to compile your own from source.
- When building the Lazarus IDE, change the CPU_TARGET in the instructions below from x86_64 (Intel 64 bit) to aarch64 (ARM 64 bit - Apple Silicon M1).
Downloading Lazarus trunk source
Using git:
Using svn:
The above svn above invocation is more complex due to a bug in many versions of Subversion. This workaround was the work of Alfred (aka Don Alfredo in the Forum) who is the wizard behind fpcupdeluxe.
Updating Lazarus trunk source
To update your existing trunk source.
Using git:
Using svn:
Building Lazarus trunk source
What does the bigide make argument do?
The bigidemake argument adds a bunch of packages to Lazarus that many find useful and cannot do without. The packages that are added are:
|
|
|
The above list is sourced from the [Lazarus source directory]/IDE/Makefile.fpc and may be subject to change.
Note that if you have not compiled your own Lazarus IDE with the bigide argument, you can install any of these packages yourself using the Lazarus IDE Package > Install/Uninstall Packages... dialog.
Installing non-release versions of FPC
Installing from source
There are two current non-release branches of the Free Pascal Compiler: the development (trunk) branch and the Fixes 3.2 branch which includes additional fixes to the released 3.2.2 version. Developers, and those who like living on the bleeding edge and testing new features and fixes, will choose the development version; more normal users, who wish to use a stable branch with some additional fixes since the latest release version, will choose the Fixes branch. The instructions below cover both these branches.
The source code is kept in a version control system called git:
- macOS 10.5 and higher already contain a command line git client if you have installed the Xcode command line utilities.
- You also need the latest released Free Pascal Compiler version (3.2.2 as of August 2021) installed in order to be able to successfully compile the development (trunk) version.
Note: When building a native aarch64 Free Pascal Compiler (ppca64) for an Apple Silicon M1 processor Mac, change the CPU_TARGET in the instructions below from x86_64 (Intel 64 bit) to aarch64 (ARM 64 bit - Apple Silicon M1) and change any reference to ppcx64 to ppca64
FPC Trunk
- FPC User Changes in Trunk - may break existing code.
Note that since FPC trunk is by definition still under development, some of the features may still change before they end up in a release version.
Create a directory where you would like to put the source (eg fpc_trunk in your home directory). You don't need to be root to do this. Any normal user can do this. Open an Applications > Utilities > Terminal and do the following:
This will create a directory called 'fpc_trunk' and download the FPC trunk source to it.
To subsequently update your local source repository with the latest source changes you can simply do:
To build and install FPC (the highlighted text should be all on one line):
You will also need to update the links for the compiler in /usr/local/bin which will be pointing to the previous FPC version. For example:
Note that you will need to build a new ppc386
compiler if you want to continue to compile 32 bit applications by replacing these lines (this may not be possible after Xcode 11.3.1 and macOS 10.14.6 Mojave because of Apple's removal of 32 bit frameworks):
with these two lines:
FPC Fixes 3.2
Create a directory where you would like to put the source (eg fpc_fixes32 in your home directory). You don't need to be root to do this. Any normal user can do this. Open an Applications > Utilities > Terminal and do the following:
This will create a directory called fpc_fixes32 and download the FPC source to it.
To subsequently update your local copy of the repository source with the latest source changes you can simply do:
To build and install FPC (the highlighted text should be all on one line):
You will also need to update the links for the compiler in /usr/local/bin which will be pointing to the previous FPC version. For example:
Note that you will need to build a new ppc386
compiler if you want to continue to compile 32 bit applications by replacing these lines (this may not be possible after Xcode 11.3.1 and macOS 10.14.6 Mojave because of Apple's removal of 32 bit frameworks):
Known issues and solutions
Lazarus IDE - Unable to 'run without debugging'
If you are using the Lazarus IDE 2.0.10 and the Run > Run without debugging menu option fails with a dialog similar to:
then you need to patch the Lazarus 2.0.10 source code (Issue #37324 and Issue #36780). Specifically, patch ../ide/main.pp as below (unpatched lines shown first, patched lines shown second):
How To Update Xcode Catalina
and recompile the Lazarus IDE.
Alternatively, you can omit patching the source code and simply recompile Lazarus 2.0.10 with FPC 3.0.4.
What Are The System Requirements For Macos Catalina
A similar patching exercise and recompiling, or simply recompiling with FPC 3.0.4, needs to be done for Lazarus 2.0.8 if it has been compiled with FPC 3.2.0.
Upgrading from Mojave (10.14) to Catalina (10.15)
- Run
sudo xcode-select --install
- To enable Lazarus to locate the crt1.10.5.o file change in /etc/fpc.cfg the -Fl behind '#ifdef cpux86_64' from
to
Building the FPC compiler from Mojave (10.14) onwards
- To find the crt1.10.5.o file when building a later Free Pascal Compiler version from source, you need to specify:
on the make command line because FPC ignores the /etc/fpc.cfg configuration file during builds of itself.
Mac Installation FAQ
- See the Mac Installation FAQ for solutions to other common problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS.
Uninstalling Lazarus and Free Pascal
Refer to Uninstalling Lazarus on macOS for uninstallation options.
Legacy Information
See Legacy Information for details of:
- Installing Lazarus on Mac OS X 10.4 (Tiger), Mac OS X 10.5 (Leopard), OS X 10.8 (Mountain Lion)
- Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier
- Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+
- Installing Lazarus on PowerPC-based Macs
- Old Xcode versions
- Installing the gdb debugger
- Compatibility matrix for Lazarus 1.0.0 through 1.6.4 and FPC 2.6.0 through 3.0.2.
See also
- Xcode.
- Other macOS installation options.
- Installing multiple Lazarus versions.
- Mac Portal for an overview of development for macOS with Lazarus and Free Pascal.
- Mac Installation FAQ for solutions to the most frequent problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS.
- Lazarus Trunk Notes - Note: work in progress
- Lazarus 2.0 Fixes Branch Notes - Note: work in progress
Download Xcode for macOS 10.15.4 or later and enjoy it on your Mac. Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Xcode for Mac, free and safe download. Xcode latest version: Apple’s developer tool for apps. Xcode is a free integrated development environment (IDE). Technically, Xcode can’t be installed on Windows PC because there are compatibility issues, but there are ways to emulate Xcode on Windows 10 via Virtual machine. So, in this article, we have decided to share the best method to download & install Xcode on Windows 10, 8, and 7 operating systems.
Xcode is a complete developer toolset for creating apps for Mac, iPhone, iPad, Apple Watch, and Apple TV. Xcode brings user interface design, coding, testing, debugging, and submitting to the App Store all into a unified workflow.
Xcode For Macos Catalina 10.15.7
Downloading and updating Xcode
Xcode For Macos Catalina 10.15 Full
The current release of Xcode is available as a free download from the Mac App Store. The Mac App Store will notify you when an update is available or you can have macOS update automatically as it becomes available.
The latest beta version and previous versions of Xcode can be downloaded from the Downloads page. To download Xcode, simply sign in with your Apple ID.Apple Developer Program membership is not required.
Using Xcode
Get step-by-step guidance on how to use Xcode to build, test, and submit apps to the App Store.
Submitting apps to the App Store using Xcode
If you’re an Apple Developer Program member, Xcode provides an integrated workflow to prepare and submit apps to App Store. You should use the latest version of Xcode available on the Mac App Store to submit your apps, or when available, the latest GM seed release from the Downloads page.
Do not submit apps built using beta software, as beta versions of Xcode, Operating Systems, and SDKs are for development and testing only.
Learning about changes to Xcode
To learn about the latest features and capabilities in Xcode, see What’s New in Xcode. For update details in the latest released versions, including each beta release, see the Xcode Release Notes.
Minimum requirements and supported SDKs
Xcode Version | Minimum OS Required | SDK | Architecture | OS | Simulator | Swift |
---|---|---|---|---|---|---|
Xcode 12.5 beta | macOS Big Sur 11 (Apple silicon Mac) | iOS 14.5 macOS 11.3 tvOS 14.5 watchOS 7.4 DriverKit 20.4 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.5 iPadOS 13-14.5 macOS 10.9-11.3 tvOS 9-14.5 watchOS 2-7.4 | iOS 10.3.1-14.5 tvOS 10.2-14.5 watchOS 3.2-7.4 | Swift 4 Swift 4.2 Swift 5.4 |
Xcode 12.4 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.4 macOS 11.1 tvOS 14.3 watchOS 7.2 DriverKit 20.2 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.4 iPadOS 13-14.4 macOS 10.9-11.1 tvOS 9-14.3 watchOS 2-7.2 | iOS 10.3.1-14.4 tvOS 10.2-14.3 watchOS 3.2-7.2 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12.3 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.3 macOS 11.1 tvOS 14.3 watchOS 7.2 DriverKit 20.2 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.3 iPadOS 13-14.3 macOS 10.9-11.1 tvOS 9-14.3 watchOS 2-7.2 | iOS 10.3.1-14.3 tvOS 10.2-14.3 watchOS 3.2-7.2 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12.2 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.2 macOS 11 tvOS 14.2 watchOS 7.1 DriverKit 20 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.2 iPadOS 13-14.2 macOS 10.9-11 tvOS 9-14.2 watchOS 2-7.1 | iOS 10.3.1-14.2 tvOS 10.2-14.2 watchOS 3.2-7.1 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12.1 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.1 macOS 10.15.6 tvOS 14 watchOS 7 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.1 iPadOS 13-14.1 macOS 10.9-11 tvOS 9-14 watchOS 2-7 | iOS 10.3.1-14.1 tvOS 10.2-14 watchOS 2-7 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12 | macOS Catalina 10.15.4 (Intel-based Mac) | iOS 14 macOS 10.15.6 tvOS 14 watchOS 7 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14 iPadOS 13-14 macOS 10.6-10.15.6 tvOS 9-14 watchOS 2-7 | iOS 10.3.1-14 tvOS 10.2-14 watchOS 3.2-7 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 11.7 | macOS Catalina 10.15.2 | iOS 13.7 macOS 10.15.6 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.7 iPadOS 13-13.7 macOS 10.6-10.15.6 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.7 tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.6 | macOS Catalina 10.15.2 | iOS 13.6 macOS 10.15.6 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.6 iPadOS 13-13.6 macOS 10.6-10.5.6 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.6 tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.5 | macOS Catalina 10.15.2 | iOS 13.5 macOS 10.15.4 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.5 iPadOS 13-13.5 macOS 10.6-10.15.4 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.5 tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.4.x | macOS Catalina 10.15.2 | iOS 13.4 macOS 10.15.4 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.4.x iPadOS 13-13.4.x macOS 10.6-10.15.4 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.4.x tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.3.x | macOS Mojave 10.14.4 | iOS 13.3 macOS 10.15.2 tvOS 13.3 watchOS 6.1.1 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.3 iPadOS 13-13.3 macOS 10.6-10.15.2 tvOS 9-13.3 watchOS 2-6.1.1 | iOS 10.3.1-13.3 tvOS 10.2-13.3 watchOS 3.2-6.1.1 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 11.2.x | macOS Mojave 10.14.4 | iOS 13.2 macOS 10.15.1 tvOS 13.2 watchOS 6.1 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.2.x iPadOS 13-13.2.x macOS 10.6-10.15.1 tvOS 9-13.2 watchOS 2-6.1 | iOS 10.3.1-13.2.x tvOS 10.2-13.2 watchOS 3.2-6.1 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 11.1 | macOS Mojave 10.14.4 | iOS 13.1 macOS 10.15 tvOS 13 watchOS 6 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.1 iPadOS 13-13.1 macOS 10.6-10.15 tvOS 9-13 watchOS 2-6 | iOS 10.3.1-13.1 tvOS 10.2-13 watchOS 3.2-6 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 11 | macOS Mojave 10.14.4 | iOS 13 macOS 10.15 tvOS 13 watchOS 6 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13 iPadOS 13-13 macOS 10.6-10.15 tvOS 9-13 watchOS 2-6 | iOS 10.3.1-13 tvOS 10.2-13 watchOS 3.2-6 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 10.3 | macOS Mojave 10.14.3 | iOS 12.4 macOS 10.14.6 tvOS 12.4 watchOS 5.3 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-12.4 macOS 10.6-10.14.6 tvOS 9-12.4 watchOS 2-5.3 | iOS 10.3.1-12.4 tvOS 10.2-12.4 watchOS 3.2-5.3 | Swift 4 Swift 4.2 Swift 5 |
Xcode 10.2x | macOS Mojave 10.14.3 | iOS 12.2 macOS 10.14.4 tvOS 12.2 watchOS 5.2 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-12.2 macOS 10.6-10.14.4 tvOS 9-12.2 watchOS 2-5.2 | iOS 8.1-12.2 tvOS 9-12.2 watchOS 2-5.2 | Swift 4 Swift 4.2 Swift 5 |
Legend
Minimum OS Required: The version of macOS required to install this version of Xcode.
SDK: The version of SDKs included in this version of Xcode.
Architecture: The architectures supported for development by this version of Xcode.
Can't Download Xcode On Mac
OS: The iOS, iPadOS, macOS, tvOS, and watchOS versions supported by this version of Xcode for developing, installing, and debugging applications.
Simulator: Versions of iOS, tvOS, and watchOS simulators supported for development by this version of Xcode.
Swift: Version of Swift supported for development by this version of Xcode.
I Can't Download Xcode On Mac
Providing feedback and reporting bugs
Your feedback goes a long way towards making Xcode even better. With Feedback Assistant, you can report issues or request enhancements to APIs and tools. Include detailed information about issues, including the system and developer tools version information, and any relevant crash logs or console messages. To ask questions and find answers by Apple engineers and other developers, visit the Apple Developer Forums.
Invalid private key and certificate pairing
If you received an error message saying, 'Xcode could not find a valid private-key/certificate pair for this profile in your keychain.' This error message indicates that the Keychain Access application on your Mac is missing either the public or private key for the certificate you are using to sign your app.
This often happens when you are trying to sign and build your app from a different Mac than the one you originally used to request your code signing certificate. It can also happen if your certificate has expired or has been revoked. Ensure that your app’s provisioning profile contains a valid code signing certificate, and that the Keychain Access application on your Mac contains that certificate, the private key originally used to generate that certificate, and the WWDR Intermediate Certificate.
For instructions on how to resolve this and other code signing errors, review the Code Signing Support page.
Apple security updates
For information on the security content of Xcode updates, visit the Apple security updates page.