2.4 KiB
gRPC in 3 minutes (Objective-C with Bazel)
To save you from reading, if you use Cocoapods and Xcode, the right reference for you is in the Hello World example directory.
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. The documentation of using gRPC Objective-C library with Bazel 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
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 by running:
$ xcrun simctl list
Or just try running the app and it will let you know what is available in the error messages:
$ bazel run :HelloWorld
Note that running this command will build the project even if it is not built beforehand.
Finally, launch the app with one of the available runtimes:
$ bazel run :HelloWorld --ios_simulator_version='<runtime>' --ios_sumlator_device='<device>'