After figuring out a way around the massive breaking change introduced by Xcode 11, it's now time to install Xdebug back on MacOS Catalina.
Update from January 6th 2021:
Using MacOS Big Sur? This solution should work for you too. But since Apple Deprecated PHP in MacOS Big Sur, you should probably rely on Homebrew now.
Update from June 30th 2020:
After some new investigation while trying to upgrade to a newer version of xdebug, I now believe most of the instructions in this post are not necessary. Before doing anything, you should check if xdebug.so
already exists in /usr/lib/php/extensions/no-debug-non-zts-20180731/
, which I believe is there by default (let me know if otherwise). If it does exist, you could skip to the Enabled support in PHP portion of this post.
Note that building xdebug from source code and actually trying to use that version of xdebug.so
(for example by referencing the built file in xdebug/module/xdebug.so
after using make install
) with the build-in PHP should end up in a 'code signature' error. As described here and here, even after signing the binary, MacOS won't allow system binaries to interact with non-system binaries for security reasons. The only real solution to use a custom version of xdebug would be to compile and use you own instance of PHP instead of the build in one.
Long story short, Apple decided to nuke /usr/include
in MacOS Catalina, which has been the default location for C header file for ever in UNIX systems. Trying to install through PEAR / PECL will return an error as the compiler will look for necessary headers file in /usr/include
. So the solution is to compile Xdebug manually, manually specifying the actual location of the header files, which are still provided by Xcode, just at a different location.
In my mac mini I've running Catalina 10.15.7. I've also installed Xcode 12.4. Now as I'm using third party library I'm trying to install cocoapods in my mac. So I used this - sudo gem install cocoapods which I got from official website. But I'm getting this. Download and Install macOS Catalina. Install Xcode 11 Beta. SwiftUI Tutorial. Create a new APFS Volume. Open up Disk Utility — you can use spotlight by pressing cmd+space: Now right click your main hard drive — it is most likely called Macintosh HD and select Add APFS Volume. 5) Install Xdebug. If the command: $ pecl install xdebug Fails due to the phpize not returning the correct information, or it's trying to write to folders it cannot, or it cannot find php.h, etc, as it did for me and what started this post, try the following: First, you need to make sure that Xcode and the command line tools installed. If running the flutter command fails and you get an xcrun error, try typing xcode-select -install to update the Command Line Tools and then restart the Terminal again. I am working on a clean install of Catalina and Xcode 11. If you are trying an upgrade, or using a different version, your experience may be different. If you run into problems post a comment and I’ll do what I can to help out. And so, without further ado Install MacOS Catalina; Install XCode 11; Launch XCode. Agree to the license agreement.
Xcode
The first step is to get Xcode from the App Store.
Once Xcode installed, we have to get the command line tools :
You might need to actually open Xcode at this point to finish installation and accept terms and conditions, especially if the previous command fails.
Finally, make sure the SDK is found. If the path you get differs from the one bellow, you might need to edit the path accordingly later on:
Manually Compiling Xdebug
Getting source
Let's compile 2.7.2, getting the source code from git. Alternatively, you can download the source from Xdebug site.
phpize
Next we need to make a copy phpize
so we can edit the include path :
Find this line :
...and replace it with this line :
Run phpize
:
You should now see something like this :
Configure & build
We can now configure :
...and run make using our custom SDK location defined as compiler flags. I used a variable to store the path to the SDK so it's easier to edit if it changes :
You might see some warning, just ignore it for now. Finally, we'll need to run :
Again, this command will fail because it can't move the extension to the right place. SIP will prevent it. But no worries, we'll take care of that manually at the next step. make install
is still required as it will sign the *.so
file.
Makefile
to see which directory to include in your custom CPPFLAGS
.Enabled support in PHP
Once make install
has been run, we can move the executable somewhere safe. I use /usr/local/php/extensions
.
Then we edit the PHP configuration to enable Xdebug. Simply edit php.ini
:
And we add the following at the bottom :
Restart built in server to be sure :
And finally test everything went fine :
If the above command returns nothing, then Xdebug is not available on your install. Go back the steps to find out what's missing.
References and thanks :
Xcode is the tool developers use to build apps for the Apple ecosystem – MacOS, iOS, and all things Apple.
This guide will walk you through how to successfully install Xcode onto your Mac, from start to finish.
Here are some handy tips to know before you get started:
- Xcode only runs on a mac. If you are on a PC, sadly you won't be able to use Xcode.
- You'll need a good, stable internet connection. The latest version is around 8 gigabytes in size.
- Be sure to have at least 30 gigabytes of free space on your computer. The latest
.xip
file (v11.4.1 at the time of writing) is ~8 gigabytes zipped. When you unzip it, that's another 17 gigabytes. Then you'll need the command line tool, which is yet another 1.5 gigabytes.
Here's an overview of the steps to install Xcode
- Download Xcode
- Install the command line tool
- Open the new version
- Delete files
Note that I have listed some Terminal commands in the steps below. These commands can be typed into your present working directory. This means that you don't need to navigate to any particular folder.
If you really want to, you can first type cd
before typing the commands in the below steps. This will return you back to the home folder.
Step #1: Download Xcode
There are two ways to do this. For the latest version and a theoretically 'easy' installation, you can use the App Store. I don't recommend this option.
I prefer to use the developer site. This comes with the bonus option of being able to download any version you'd like.
Option #1: Download via the App Store for the latest version (not my preferred option)
In theory, this should be a seamless and pain-free process. But if the installation fails for any reason on the last step, it is very hard to troubleshoot.
There are a few reasons for failure, and no easy way to know which is the underlying cause. If you do encounter a failure, you will need to re-download the entire file again each time you try to fix the failure. As the latest version is 8 gigabytes, I didn't much enjoy this approach.
But if you're feeling brave, here are the steps:
- Open the App Store on your mac
- Sign in
- Search for Xcode
- Click install or update
Option 2: Download via the Developer site for a specific version (my preferred option)
- Head to the 'more' section of the Apple developer website
- Sign in with your iTunes account id
- Type in the version that you'd like, and download the
Xcode_x_x_x.xip
file. Keep in mind that Xcode 11.4.1 is 8 gigabytes, so this will take awhile depending on your internet connection. - Once the file is downloaded, click on
.xip
to extract it. Your laptop will extract it to the same folder you downloaded it to. This extraction process is automatic. You don't need to do anything more after you click on the.xip
file. This step will take a few minutes. - [Optional] Once extracted, rename the application to “Xcode11.x.x” if you are using multiple versions.
- Drag application to the Applications folder
- [Optional] Set the new Xcode version as the default. Open Terminal and type
sudo xcode-select -switch /Applications/Xcodex.x.x.app
. Replacex.x.x
with the version number. For example:Xcode11.4.1.app
. You will need to enter in your computer admin password. I'm pretty sure this will update the default Xcode version for all users on your computer, so best to check with other users first
Step #2: Install the command line tool (CLT)
If you have multiple users on your computer, you will need to update the CLT for each user.
Download .dmg
To update the CLT, go to app developer website and download the command line tool .dmg
.
If you have never installed Xcode before, you may be able to update with your Terminal by typing in xcode-select --install
instead of visiting the developer website.
But if you have an existing version of Xcode installed on your machine, you'll probably see this error:
This means you'll need to go to the developer website instead.
Installing the CLT
When the .dmg
has finished downloaded, double click the file to open it. This will open a little window that looks like this:
Install Xcode On Catalina Free
Double click the box and follow the prompts to install the CLT. It will take a few minutes to complete.
It may ask you at the end of the installation whether you want to move this to the trash bin. When it does this, it's talking about moving the .dmg
file to the trash bin. Since you should no longer need this file. I always say yes to this.
Step #3: Open Xcode
Open the Applications folder and open the new version of Xcode. If you renamed Xcode, make sure you open the correct application
Xcode may prompt you to install additional components. Click install. This will take a few minutes.
While it's installing, check that your default Xcode version is the one you just downloaded:
- Open Terminal
- Type
brew config
- You should see “CLT” and “Xcode” versions, as well as everything else. This should reflect the version that you have just downloaded. In my case, I downloaded Xcode 11.4.1.
Once the components are installed, Xcode will launch. You should be able to pick up your old projects and continue where you left off seamlessly*.
*Note that if you use any proxy tools, such as Charles, you will need to re-install those certificates in your simulator again.
If you encounter any errors while trying to build or run a project, check which device you are trying to launch. The new version may not remember the device you were using before. If so, click on the device and choose 'Add additional simulators' from the drop down menu to add the device you want.
Step #4. Delete the files
Install Xcode 12.4 On Catalina
If you don't need the older versions of Xcode on your computer, you can uninstall them and get some hard drive space back.
You can also delete the .xip
file of the version you just downloaded, as well as the CLT.dmg
file.
Install Xcode 12.5 On Catalina
That's everything. I hope this has helped you successfully install Xcode. Have fun with it!