There are currently two ways to build projects with the gRPC Objective-C library:
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.
To run the examples in Bazel, you should have Bazel installed.
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
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>'