blob: 51e007cfb4829d780a29f71d79decd7676009f1e [file] [log] [blame] [view]
---
layout: documentation
title: Apple apps and Bazel
---
# Apple apps and Bazel
This page contains resources that help you use Bazel to build macOS and iOS
projects. It links to a tutorial, build rules, and other information specific to
using Bazel to build and test for those platforms.
## Contents
- [Working with Bazel](#working-with-bazel)
- [Migrating to Bazel](#migrating-to-bazel)
- [Apple apps and new rules](#apple-apps-and-new-rules)
## Working with Bazel
The following resources will help you work with Bazel on macOS and iOS projects:
* [Tutorial: Building an iOS app](tutorial/ios-app.html)
* [Objective-C build rules](be/objective-c.html)
* [General Apple rules](https://github.com/bazelbuild/rules_apple)
* [Integration with Xcode](ide.html)
## Migrating to Bazel
If you currently build your macOS and iOS projects with Xcode, follow the steps
in the migration guide to start building them with Bazel:
* [Migrating from Xcode to Bazel](migrate-xcode.html)
## Apple apps and new rules
**Note**: Creating new rules is for advanced build and test scenarios.
You do not need it when getting started with Bazel.
The following modules, configuration fragments, and providers will help you
[extend Bazel's capabilities](skylark/concepts.html)
when building your macOS and iOS projects:
* Modules:
* [`apple_bitcode_mode`](skylark/lib/apple_bitcode_mode.html)
* [`apple_common`](skylark/lib/apple_common.html)
* [`apple_platform`](skylark/lib/apple_platform.html)
* [`apple_platform_type`](skylark/lib/apple_platform_type.html)
* [`apple_toolchain`](skylark/lib/apple_toolchain.html)
* [`XcodeVersionConfig`](skylark/lib/XcodeVersionConfig.html)
* Configuration fragments:
* [`apple`](skylark/lib/apple.html)
* Providers:
* [`ObjcProvider`](skylark/lib/ObjcProvider.html)