For Developers‎ > ‎How-Tos‎ > ‎

Build Instructions (iOS)

Note: Upstreaming of iOS code is still a work in progress, and is proceeding in conjunction with the layered components refactoring. In particular, note that it is not currently possible to build the actual browser binary, only unit tests and libraries. Unless you are actively working on upstreaming iOS code into the Chromium repository, or are working on making a layered component that supports iOS, these instructions are not likely to be interesting at this point.


  • A Mac with a version of OS X capable of running the latest version of Xcode.
  • The latest version of XCode, including the current iOS SDK.
  • Install depot_tools.

Setting Up

In the directory where you are going to check out the code, create a chromium.gyp_env to set the build to use iOS targets:

echo "{ 'GYP_DEFINES': 'OS=ios', 'GYP_GENERATOR_FLAGS': 'xcode_project_version=3.2', }" > chromium.gyp_env

Also, you should install API keys.

Getting the Code

Next, check out the code, with

fetch ios


Build the target you are interested in. The iOS build default to ninja-hybrid, which uses ninja to do the actual build, but provides a wrapper Xcode project that can be used to build targets and navigate the source. (The Xcode project just shells out to ninja to do the builds, so you can't actually inspect/change target-level settings from within Xcode). To build with ninja (simulator and device, respectively):

ninja -C out/Debug-iphonesimulator All
ninja -C out/Debug-iphoneos All

To build with Xcode, open build/, and choose the target you want to build.

You should always be able to build all:All, since targets are added there for iOS only when they compile.


Any target that is built and runs on the bots (see below) should run successfully in a local build. As of the time of writing, this is only unit test targets—see the highlighted note at the top of this page.

Check the bots periodically for updates; more targets (new components) will come on line over time.


If your build fails, check the iOS columns of the Mac waterfall (the last two) to see if the bots are green. In general they should be, since failures on those bots will close the tree.