README.md 2.3 KB

gRPC in 3 minutes (Objective-C with Bazel)

Background

There are currently two ways to build projects with the gRPC Objective-C library:

  • Cocoapods & Xcode
  • Bazel

The helloworld sample is the entry point for the Cocoapods way of building projects. More is documented on grpc.io, including installation and some tutorials. They will not be reiterated here and they are not mandatory for the Bazel way.

A good place to get started with Bazel is their official website. And the documentation of using Bazel with gRPC Objective-C library is here.

Installation

To run the examples in Bazel, you should have Bazel installed.

Hello Objective-C gRPC!

Here's how to build and run the Objective-C implementation of the Hello World example.

The code for the Hello World example and others live in the examples directory. Clone this repository to your local machine by running the following commands:

$ git clone --recursive https://github.com/grpc/grpc

Bazel support for gRPC Objective-C is not yet released, so we need to work on the master branch.

Next, change your directory to examples/objective-c

$ cd examples/objective-c

Try it!

To run the Hello World sample properly, we need a local server. Let's compile and run the corresponding C++ server:

$ pushd ../cpp/helloworld
$ make
$ ./greeter_server &
$ popd

Or do it the Bazel way (you might need to open another shell tab for this):

$ bazel run //examples:greeter_server

Now compile the sample:

$ bazel build :HelloWorld

To run the sample, you need to know the available simulator runtimes in your machine. You could either list the available runtimes yourself:

$ xcrun simctl list

Or just try running the app and it will let you know what is available:

$ bazel run :HelloWorld

Note that running this command will build the project even if you forget to build it beforehand.

Finally, launch the app with one of the available runtimes:

$ bazel run :HelloWorld --ios_simulator_version='<runtime>' --ios_sumlator_device='<device>'