Merge remote-tracking branch 'upstream/v1.1.x' into automate-objc-version-advancement-v1.1.x
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 2acd930..c19deeb 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -1,8 +1,10 @@
-# GRPC CocoaPods podspec
-# This file has been automatically generated from a template file. Please make modifications to
-# `templates/gRPC-Core.podspec.template` instead. This file can be regenerated from the template by
-# running `tools/buildgen/generate_projects.sh`.
+# This file has been automatically generated from a template file.
+# Please make modifications to `templates/gRPC-Core.podspec.template`
+# instead. This file can be regenerated from the template by running
+# `tools/buildgen/generate_projects.sh`.
 
+# gRPC Core CocoaPods podspec
+#
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -35,7 +37,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-Core'
-  version = '1.1.0'
+  version = '1.1.1'
   s.version  = version
   s.summary  = 'Core cross-platform gRPC library, written in C'
   s.homepage = 'http://www.grpc.io'
diff --git a/gRPC-ProtoRPC.podspec b/gRPC-ProtoRPC.podspec
index 496157c..ac61195 100644
--- a/gRPC-ProtoRPC.podspec
+++ b/gRPC-ProtoRPC.podspec
@@ -1,3 +1,9 @@
+# This file has been automatically generated from a template file.
+# Please make modifications to
+# `templates/gRPC-ProtoRPC.podspec.template` instead. This file can be
+# regenerated from the template by running
+# `tools/buildgen/generate_projects.sh`.
+
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -30,7 +36,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-ProtoRPC'
-  version = '1.1.0'
+  version = '1.1.1'
   s.version  = version
   s.summary  = 'RPC library for Protocol Buffers, based on gRPC'
   s.homepage = 'http://www.grpc.io'
diff --git a/gRPC-RxLibrary.podspec b/gRPC-RxLibrary.podspec
index e885958..0249e30 100644
--- a/gRPC-RxLibrary.podspec
+++ b/gRPC-RxLibrary.podspec
@@ -1,3 +1,9 @@
+# This file has been automatically generated from a template file.
+# Please make modifications to
+# `templates/gRPC-RxLibrary.podspec.template` instead. This file can be
+# regenerated from the template by running
+# `tools/buildgen/generate_projects.sh`.
+
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -30,7 +36,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-RxLibrary'
-  version = '1.1.0'
+  version = '1.1.1'
   s.version  = version
   s.summary  = 'Reactive Extensions library for iOS/OSX.'
   s.homepage = 'http://www.grpc.io'
diff --git a/gRPC.podspec b/gRPC.podspec
index 61398a2..315e567 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -1,3 +1,8 @@
+# This file has been automatically generated from a template file.
+# Please make modifications to `templates/gRPC.podspec.template`
+# instead. This file can be regenerated from the template by running
+# `tools/buildgen/generate_projects.sh`.
+
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -30,7 +35,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC'
-  version = '1.1.0'
+  version = '1.1.1'
   s.version  = version
   s.summary  = 'gRPC client library for iOS/OSX'
   s.homepage = 'http://www.grpc.io'
diff --git "a/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec" "b/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec"
index c40e77e..1cc7398 100644
--- "a/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec"
+++ "b/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec"
@@ -1,5 +1,11 @@
-# CocoaPods podspec for the gRPC Proto Compiler Plugin
+# This file has been automatically generated from a template file.
+# Please make modifications to
+# `templates/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec.template`
+# instead. This file can be regenerated from the template by running
+# `tools/buildgen/generate_projects.sh`.
 
+# CocoaPods podspec for the gRPC Proto Compiler Plugin
+#
 # Copyright 2016, Google Inc.
 # All rights reserved.
 #
@@ -36,7 +42,7 @@
   # exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
   # before them.
   s.name     = '!ProtoCompiler-gRPCPlugin'
-  v = '1.1.0'
+  v = '1.1.1'
   s.version  = v
   s.summary  = 'The gRPC ProtoC plugin generates Objective-C files from .proto services.'
   s.description = <<-DESC
diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m
index c7efdf1..246af56 100644
--- a/src/objective-c/GRPCClient/private/GRPCHost.m
+++ b/src/objective-c/GRPCClient/private/GRPCHost.m
@@ -45,13 +45,10 @@
 #import "GRPCCompletionQueue.h"
 #import "GRPCConnectivityMonitor.h"
 #import "NSDictionary+GRPC.h"
+#import "version.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
-// TODO(jcanizales): Generate the version in a standalone header, from templates. Like
-// templates/src/core/surface/version.c.template .
-#define GRPC_OBJC_VERSION_STRING @"1.1.0"
-
 static NSMutableDictionary *kHostCache;
 
 // This connectivity monitor flushes the host cache when connectivity status
diff --git a/src/objective-c/GRPCClient/private/version.h b/src/objective-c/GRPCClient/private/version.h
new file mode 100644
index 0000000..28232ae
--- /dev/null
+++ b/src/objective-c/GRPCClient/private/version.h
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+// This file is autogenerated from a template file. Please make
+// modifications to
+// `templates/src/objective-c/GRPCClient/private/version.h.template`
+// instead. This file can be regenerated from the template by running
+// `tools/buildgen/generate_projects.sh`.
+
+
+#define GRPC_OBJC_VERSION_STRING @"1.1.1"
diff --git a/templates/gRPC-Core.podspec.template b/templates/gRPC-Core.podspec.template
index 023186f..66b3659 100644
--- a/templates/gRPC-Core.podspec.template
+++ b/templates/gRPC-Core.podspec.template
@@ -1,10 +1,12 @@
 %YAML 1.2
 --- |
-  # GRPC CocoaPods podspec
-  # This file has been automatically generated from a template file. Please make modifications to
-  # `templates/gRPC-Core.podspec.template` instead. This file can be regenerated from the template by
-  # running `tools/buildgen/generate_projects.sh`.
+  # This file has been automatically generated from a template file.
+  # Please make modifications to `templates/gRPC-Core.podspec.template`
+  # instead. This file can be regenerated from the template by running
+  # `tools/buildgen/generate_projects.sh`.
 
+  # gRPC Core CocoaPods podspec
+  #
   # Copyright 2015, Google Inc.
   # All rights reserved.
   #
@@ -62,7 +64,7 @@
   %>
   Pod::Spec.new do |s|
     s.name     = 'gRPC-Core'
-    version = '1.1.0'
+    version = '${settings.version}'
     s.version  = version
     s.summary  = 'Core cross-platform gRPC library, written in C'
     s.homepage = 'http://www.grpc.io'
diff --git a/templates/gRPC-ProtoRPC.podspec.template b/templates/gRPC-ProtoRPC.podspec.template
new file mode 100644
index 0000000..5d7d90d
--- /dev/null
+++ b/templates/gRPC-ProtoRPC.podspec.template
@@ -0,0 +1,73 @@
+%YAML 1.2
+--- |
+  # This file has been automatically generated from a template file.
+  # Please make modifications to
+  # `templates/gRPC-ProtoRPC.podspec.template` instead. This file can be
+  # regenerated from the template by running
+  # `tools/buildgen/generate_projects.sh`.
+
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+  Pod::Spec.new do |s|
+    s.name     = 'gRPC-ProtoRPC'
+    version = '${settings.version}'
+    s.version  = version
+    s.summary  = 'RPC library for Protocol Buffers, based on gRPC'
+    s.homepage = 'http://www.grpc.io'
+    s.license  = 'New BSD'
+    s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
+
+    s.source = {
+      :git => 'https://github.com/grpc/grpc.git',
+      :tag => "v#{version}",
+    }
+
+    s.ios.deployment_target = '7.1'
+    s.osx.deployment_target = '10.9'
+
+    name = 'ProtoRPC'
+    s.module_name = name
+    s.header_dir = name
+
+    src_dir = 'src/objective-c/ProtoRPC'
+    s.source_files = "#{src_dir}/*.{h,m}"
+    s.header_mappings_dir = "#{src_dir}"
+
+    s.dependency 'gRPC', version
+    s.dependency 'gRPC-RxLibrary', version
+    s.dependency 'Protobuf', '~> 3.0'
+    s.pod_target_xcconfig = {
+      # This is needed by all pods that depend on Protobuf:
+      'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1',
+      # This is needed by all pods that depend on gRPC-RxLibrary:
+      'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
+    }
+  end
diff --git a/templates/gRPC-RxLibrary.podspec.template b/templates/gRPC-RxLibrary.podspec.template
new file mode 100644
index 0000000..35a06c8
--- /dev/null
+++ b/templates/gRPC-RxLibrary.podspec.template
@@ -0,0 +1,64 @@
+%YAML 1.2
+--- |
+  # This file has been automatically generated from a template file.
+  # Please make modifications to
+  # `templates/gRPC-RxLibrary.podspec.template` instead. This file can be
+  # regenerated from the template by running
+  # `tools/buildgen/generate_projects.sh`.
+
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+  Pod::Spec.new do |s|
+    s.name     = 'gRPC-RxLibrary'
+    version = '${settings.version}'
+    s.version  = version
+    s.summary  = 'Reactive Extensions library for iOS/OSX.'
+    s.homepage = 'http://www.grpc.io'
+    s.license  = 'New BSD'
+    s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
+
+    s.source = {
+      :git => 'https://github.com/grpc/grpc.git',
+      :tag => "v#{version}",
+    }
+
+    s.ios.deployment_target = '7.1'
+    s.osx.deployment_target = '10.9'
+
+    name = 'RxLibrary'
+    s.module_name = name
+    s.header_dir = name
+
+    src_dir = 'src/objective-c/RxLibrary'
+    s.source_files = "#{src_dir}/*.{h,m}", "#{src_dir}/**/*.{h,m}"
+    s.private_header_files = "#{src_dir}/private/*.h"
+    s.header_mappings_dir = "#{src_dir}"
+  end
diff --git a/templates/gRPC.podspec.template b/templates/gRPC.podspec.template
new file mode 100644
index 0000000..d33ce27
--- /dev/null
+++ b/templates/gRPC.podspec.template
@@ -0,0 +1,74 @@
+%YAML 1.2
+--- |
+  # This file has been automatically generated from a template file.
+  # Please make modifications to `templates/gRPC.podspec.template`
+  # instead. This file can be regenerated from the template by running
+  # `tools/buildgen/generate_projects.sh`.
+
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+  Pod::Spec.new do |s|
+    s.name     = 'gRPC'
+    version = '${settings.version}'
+    s.version  = version
+    s.summary  = 'gRPC client library for iOS/OSX'
+    s.homepage = 'http://www.grpc.io'
+    s.license  = 'New BSD'
+    s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
+
+    s.source = {
+      :git => 'https://github.com/grpc/grpc.git',
+      :tag => "v#{version}",
+    }
+
+    s.ios.deployment_target = '7.1'
+    s.osx.deployment_target = '10.9'
+
+    name = 'GRPCClient'
+    s.module_name = name
+    s.header_dir = name
+
+    src_dir = 'src/objective-c/GRPCClient'
+    s.source_files = "#{src_dir}/*.{h,m}", "#{src_dir}/**/*.{h,m}"
+    s.private_header_files = "#{src_dir}/private/*.h"
+    s.header_mappings_dir = "#{src_dir}"
+
+    s.dependency 'gRPC-Core', version
+    s.dependency 'gRPC-RxLibrary', version
+
+    # Certificates, to be able to establish TLS connections:
+    s.resource_bundles = { 'gRPCCertificates' => ['etc/roots.pem'] }
+
+    s.pod_target_xcconfig = {
+      # This is needed by all pods that depend on gRPC-RxLibrary:
+      'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
+    }
+  end
diff --git "a/templates/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec.template" "b/templates/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec.template"
new file mode 100644
index 0000000..3a10cfa
--- /dev/null
+++ "b/templates/src/objective-c/\041ProtoCompiler-gRPCPlugin.podspec.template"
@@ -0,0 +1,129 @@
+%YAML 1.2
+--- |
+  # This file has been automatically generated from a template file.
+  # Please make modifications to
+  # `templates/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec.template`
+  # instead. This file can be regenerated from the template by running
+  # `tools/buildgen/generate_projects.sh`.
+
+  # CocoaPods podspec for the gRPC Proto Compiler Plugin
+  #
+  # Copyright 2016, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+  Pod::Spec.new do |s|
+    # This pod is only a utility that will be used by other pods _at install time_ (not at compile
+    # time). Other pods can access it in their `prepare_command` script, under <pods_root>/<pod name>.
+    # Because CocoaPods installs pods in alphabetical order, beginning this pod's name with an
+    # exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
+    # before them.
+    s.name     = '!ProtoCompiler-gRPCPlugin'
+    v = '${settings.version}'
+    s.version  = v
+    s.summary  = 'The gRPC ProtoC plugin generates Objective-C files from .proto services.'
+    s.description = <<-DESC
+      This podspec only downloads the gRPC protoc plugin so that local pods generating protos can use
+      it in their invocation of protoc, as part of their prepare_command.
+      The generated code will have a dependency on the gRPC Objective-C Proto runtime of the same
+      version. The runtime can be obtained as the "gRPC-ProtoRPC" pod.
+    DESC
+    s.homepage = 'http://www.grpc.io'
+    s.license  = {
+      :type => 'New BSD',
+      :text => <<-LICENSE
+        Copyright 2015, Google Inc.
+        All rights reserved.
+
+        Redistribution and use in source and binary forms, with or without
+        modification, are permitted provided that the following conditions are
+        met:
+
+            * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+            * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following disclaimer
+        in the documentation and/or other materials provided with the
+        distribution.
+            * Neither the name of Google Inc. nor the names of its
+        contributors may be used to endorse or promote products derived from
+        this software without specific prior written permission.
+
+        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+        "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+        LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+        A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+        OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+        SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+        LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+        DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+        THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+      LICENSE
+    }
+    s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
+
+    repo = 'grpc/grpc'
+    file = "grpc_objective_c_plugin-#{v}-macos-x86_64.zip"
+    s.source = {
+      :http => "https://github.com/#{repo}/releases/download/v#{v}/#{file}",
+      # TODO(jcanizales): Add sha1 or sha256
+      # :sha1 => '??',
+    }
+
+    repo_root = '../..'
+    plugin = 'grpc_objective_c_plugin'
+
+    s.preserve_paths = plugin
+
+    # Restrict the protoc version to the one supported by this plugin.
+    s.dependency '!ProtoCompiler', '3.1.0'
+    # For the Protobuf dependency not to complain:
+    s.ios.deployment_target = '7.1'
+    s.osx.deployment_target = '10.9'
+    # Restrict the gRPC runtime version to the one supported by this plugin.
+    s.dependency 'gRPC-ProtoRPC', v
+
+    # This is only for local development of the plugin: If the Podfile brings this pod from a local
+    # directory using `:path`, CocoaPods won't download the zip file and so the plugin won't be
+    # present in this pod's directory. We use that knowledge to check for the existence of the file
+    # and, if absent, compile the plugin from the local sources.
+    s.prepare_command = <<-CMD
+      if [ ! -f #{plugin} ]; then
+        cd #{repo_root}
+        # This will build the plugin and put it in #{repo_root}/bins/opt.
+        #
+        # TODO(jcanizales): I reckon make will try to use locally-installed libprotoc (headers and
+        # library binary) if found, which _we do not want_. Find a way for this to always use the
+        # sources in the repo.
+        make #{plugin}
+        cd -
+      fi
+    CMD
+  end
diff --git a/templates/src/objective-c/GRPCClient/private/version.h.template b/templates/src/objective-c/GRPCClient/private/version.h.template
new file mode 100644
index 0000000..1d10692
--- /dev/null
+++ b/templates/src/objective-c/GRPCClient/private/version.h.template
@@ -0,0 +1,43 @@
+%YAML 1.2
+--- |
+  /*
+   *
+   * Copyright 2015, Google Inc.
+   * All rights reserved.
+   *
+   * Redistribution and use in source and binary forms, with or without
+   * modification, are permitted provided that the following conditions are
+   * met:
+   *
+   *     * Redistributions of source code must retain the above copyright
+   * notice, this list of conditions and the following disclaimer.
+   *     * Redistributions in binary form must reproduce the above
+   * copyright notice, this list of conditions and the following disclaimer
+   * in the documentation and/or other materials provided with the
+   * distribution.
+   *     * Neither the name of Google Inc. nor the names of its
+   * contributors may be used to endorse or promote products derived from
+   * this software without specific prior written permission.
+   *
+   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+   * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   *
+   */
+
+  // This file is autogenerated from a template file. Please make
+  // modifications to
+  // `templates/src/objective-c/GRPCClient/private/version.h.template`
+  // instead. This file can be regenerated from the template by running
+  // `tools/buildgen/generate_projects.sh`.
+
+
+  #define GRPC_OBJC_VERSION_STRING @"${settings.version}"