aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/objective-c/README.md')
-rw-r--r--src/objective-c/README.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/objective-c/README.md b/src/objective-c/README.md
index 40aba0317b..32e3956a1e 100644
--- a/src/objective-c/README.md
+++ b/src/objective-c/README.md
@@ -220,3 +220,25 @@ Objective-C Protobuf runtime library.
[gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
[example Podfile]:https://github.com/grpc/grpc/blob/master/examples/objective-c/helloworld/Podfile
[example apps]: https://github.com/grpc/grpc/tree/master/examples/objective-c
+
+## Use gRPC with OpenSSL
+gRPC uses BoringSSL as its dependency, which is a fork of OpenSSL and export a number of symbols
+that are the same as OpenSSL. gRPC avoids conflicts of these symbols by renaming BoringSSL symbols.
+
+If you need gRPC to use OpenSSL instead of BoringSSL (e.g. for the benefit of reducing the binary
+size of your product), you need to make a local `gRPC-Core` podspec and tweak it accordingly:
+- Copy the version of `/gRPC-Core.podspec` you wish to use from Github into the repository of your
+ app;
+- In your `Podfile`, add the following line:
+```
+pod `gRPC-Core`, :podspec => "." # assuming gRPC-Core.podspec is in the same directory as your Podfile
+```
+- Remove [the
+ macro](https://github.com/grpc/grpc/blob/b24b212ee585d376c618235905757b2445ac6461/gRPC-Core.podspec#L186)
+ `GRPC_SHADOW_BORINGSSL_SYMBOLS` to disable symbol renaming;
+- Substitude the `BoringSSL-GRPC`
+ [dependency](https://github.com/grpc/grpc/blob/b24b212ee585d376c618235905757b2445ac6461/gRPC-Core.podspec#L184)
+ to whatever pod of OpenSSL your other libraries use.
+
+These steps should allow gRPC to use OpenSSL and drop BoringSSL dependency. If you see any issue,
+file an issue to us.