wiki:WebKitNightlyElCapWorkaround

Version 7 (modified by timothy@apple.com, 8 years ago) (diff)

--

With the introduction of OS X El Capitan and the System Integrity Protection security feature, WebKit nightlies no longer work. They still launch, but the latest WebKit frameworks included inside are ignored and the system version of WebKit is used. This is because our use of DYLD_FRAMEWORK_PATH is ignored when launching the system Safari (specifically the SafariForWebKitDevelopment binary in the Safari app bundle). We are preparing a fix for this in a Safari update, but until then you can apply the following workaround.

Note: This workaround is not for the faint of heart, and requires you to run commands while booted into the system recovery partition. Proceed with caution.

Steps

  1. Print out this page or load it up on a different device for reference.
  2. Reboot the machine you want to apply the workaround to with the Command and R keys held down. (See About OS X Recovery)
  3. When the Mac OS X Utilities window appears, select the Utilities menu in the menubar and pick Terminal.
  4. In the Terminal window, type: cd /Volumes && ls -l
  5. Find the name of your main boot partition, it is usually something like Macintosh HD.
  6. Type: cd "Macintosh HD" (or whatever name your boot partition is called).
  7. Type: mkdir -p "Library/Application Support/Apple/Safari"
  8. Then type: cp "Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment" "Library/Application Support/Apple/Safari/SafariForWebKitDevelopment"
  9. Finally type: ln -sf "/Library/Application Support/Apple/Safari/SafariForWebKitDevelopment" "Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment"
  • Note: The first path of the ln command has a slash in front of Library and the second path does not have a slash in front of Applications, that is correct. The symbolic links needs to point to the boot location, not the booted recovery partition location in /Volumes.
  1. Now you can select Restart from the  menu.

The WebKit nightlies should work as expected after you restart. This workaround will persist and not interfere with future software updates, so there is no need to revert it later.