| Protocol Buffers - Google's data interchange format |
| =================================================== |
| |
| [](https://travis-ci.org/google/protobuf) |
| |
| Copyright 2008 Google Inc. |
| |
| This directory contains the Objective C Protocol Buffers runtime library. |
| |
| Requirements |
| ------------ |
| |
| The Objective C implemention requires: |
| |
| - Objective C 2.0 Runtime (32bit & 64bit iOS, 64bit OS X). |
| - Xcode 6.3 (or later). |
| - The library code does *not* use ARC (for performance reasons), but it all can |
| be called from ARC code. |
| |
| Installation |
| ------------ |
| |
| The full distribution pulled from github includes the sources for both the |
| compiler (protoc) and the runtime (this directory). To build the compiler |
| and run the runtime tests, you can use: |
| |
| $ objectivec/DevTools/full_mac_build.sh |
| |
| This will generate the `src/protoc` binary. |
| |
| Usage |
| ----- |
| |
| There are two ways to include the Runtime sources in your project: |
| |
| Add `objectivec/\*.h` & `objectivec/GPBProtocolBuffers.m` to your project. |
| |
| *or* |
| |
| Add `objectivec/\*.h` & `objectivec/\*.m` except for |
| `objectivec/GPBProtocolBuffers.m` to your project. |
| |
| |
| If the target is using ARC, remember to turn off ARC (`-fno-objc-arc`) for the |
| `.m` files. |
| |
| The files generated by `protoc` for the `*.proto` files (`\*.pbobjc.h' and |
| `\*.pbobjc.m`) are then also added to the target. |
| |
| The Objective C classes/enums can be used from Swift code. |
| |
| Objective C Generator Options |
| ----------------------------- |
| |
| **objc_class_prefix=\<prefix\>** (no default) |
| |
| Since Objective C uses a global namespace for all of its classes, there can |
| be collisions. This option provides a prefix that will be added to the Enums |
| and Objects (for messages) generated from the proto. Convention is to base |
| the prefix on the package the proto is in. |
| |
| Contributing |
| ------------ |
| |
| Please make updates to the tests along with changes. If just changing the |
| runtime, the Xcode projects can be used to build and run tests. If change also |
| require changes to the generated code, `objectivec/DevTools/full_mac_build.sh` |
| can be used to easily rebuild and test changes. Passing `-h` to the script will |
| show the addition options that could be useful. |
| |
| Documentation |
| ------------- |
| |
| The complete documentation for Protocol Buffers is available via the |
| web at: |
| |
| https://developers.google.com/protocol-buffers/ |