aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/docs/bazel-and-apple.md
blob: 5a5e7cddef00a2bfb4b3784ab3f60b05fd345f8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
---
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](https://docs.bazel.build/versions/master/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](https://docs.bazel.build/versions/master/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)
   *  [`XcTestAppProvider`](skylark/lib/XcTestAppProvider.html)