diff --git a/RxLibrary.podspec b/RxLibrary.podspec
new file mode 100644
index 0000000000000000000000000000000000000000..d160f17d7302aad96c8e1707ddb72dd4b4d307c6
--- /dev/null
+++ b/RxLibrary.podspec
@@ -0,0 +1,16 @@
+Pod::Spec.new do |s|
+  s.name     = 'RxLibrary'
+  s.version  = '0.0.1'
+  s.summary  = 'Reactive Extensions library for iOS'
+  s.homepage = 'https://github.com/grpc/grpc/tree/master/src/objective-c/RxLibrary'
+  s.license  = 'New BSD'
+  s.authors  = { 'Jorge Canizales' => 'jcanizales@google.com' }
+
+  # s.source = { :git => 'https://github.com/grpc/grpc.git', :tag => 'release-0_5_0' }
+  s.source_files = 'src/objective-c/RxLibrary/*.{h,m}', 'src/objective-c/RxLibrary/transformations/*.{h,m}', 'src/objective-c/RxLibrary/private/*.{h,m}'
+  s.private_header_files = 'src/objective-c/RxLibrary/private/*.h'
+
+  s.platform = :ios
+  s.ios.deployment_target = '6.0'
+  s.requires_arc = true
+end
diff --git a/gRPC.podspec b/gRPC.podspec
new file mode 100644
index 0000000000000000000000000000000000000000..4bf1d3515e5402688328cc3e6347f201b0165c57
--- /dev/null
+++ b/gRPC.podspec
@@ -0,0 +1,58 @@
+Pod::Spec.new do |s|
+  s.name     = 'gRPC'
+  s.version  = '0.0.1'
+  s.summary  = 'Generic gRPC client library for iOS'
+  s.homepage = 'https://www.grpc.io'
+  s.license  = 'New BSD'
+  s.authors  = { 'Jorge Canizales' => 'jcanizales@google.com' }
+
+  # s.source = { :git => 'https://github.com/grpc/grpc.git',  :tag => 'release-0_5_0' }
+  s.source_files = 'src/objective-c/GRPCClient/*.{h,m}', 'src/objective-c/GRPCClient/private/*.{h,m}'
+  s.private_header_files = 'src/objective-c/GRPCClient/private/*.h'
+
+  s.platform = :ios
+  s.ios.deployment_target = '6.0'
+  s.requires_arc = true
+
+  s.subspec 'C-Core' do |cs|
+  	cs.authors = { 'Craig Tiller'   => 'ctiller@google.com',
+  		           'David Klempner' => 'klempner@google.com',
+  		           'Nicolas Noble'  => 'nnoble@google.com',
+                   'Vijay Pai'      => 'vpai@google.com',
+                   'Yang Gao'       => 'yangg@google.com' }
+
+    cs.source_files = 'src/core/**/*.{h,c}', 'include/grpc/*.h', 'include/grpc/**/*.h'
+    cs.private_header_files = 'src/core/**/*.h'
+    cs.header_mappings_dir = '.'
+    cs.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Build/gRPC" "$(PODS_ROOT)/Headers/Build/gRPC/include"' }
+
+    cs.requires_arc = false
+    cs.libraries = 'z'
+    cs.dependency 'OpenSSL', '~> 1.0.200'
+  end
+
+  # This is a workaround for Cocoapods Issue #1437.
+  # It renames time.h and string.h to grpc_time.h and grpc_string.h.
+  s.prepare_command = <<-CMD
+    DIR_TIME="grpc/support"
+    BAD_TIME="$DIR_TIME/time.h"
+    GOOD_TIME="$DIR_TIME/grpc_time.h"
+    if [ -f "include/$BAD_TIME" ];
+    then
+      grep -rl "$BAD_TIME" include/grpc src/core | xargs sed -i '' -e s@$BAD_TIME@$GOOD_TIME@g
+      mv "include/$BAD_TIME" "include/$GOOD_TIME"
+    fi
+
+    DIR_STRING="src/core/support"
+    BAD_STRING="$DIR_STRING/string.h"
+    GOOD_STRING="$DIR_STRING/grpc_string.h"
+    if [ -f "$BAD_STRING" ];
+    then
+      grep -rl "$BAD_STRING" include/grpc src/core | xargs sed -i '' -e s@$BAD_STRING@$GOOD_STRING@g
+      mv "$BAD_STRING" "$GOOD_STRING"
+    fi
+  CMD
+
+  s.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/gRPC/include"' }
+  s.dependency 'RxLibrary', '~> 0.0'
+end
diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m
index f246b81e635703d0cf10466123d8f70f2bbecdd4..989ce390e2b7e853ec925ace3601eb999460cfae 100644
--- a/src/objective-c/GRPCClient/GRPCCall.m
+++ b/src/objective-c/GRPCClient/GRPCCall.m
@@ -33,8 +33,8 @@
 
 #import "GRPCCall.h"
 
-#include <grpc.h>
-#include <support/time.h>
+#include <grpc/grpc.h>
+#include <grpc/support/grpc_time.h>
 
 #import "GRPCMethodName.h"
 #import "private/GRPCChannel.h"
diff --git a/src/objective-c/GRPCClient/GRPCClient.podspec b/src/objective-c/GRPCClient/GRPCClient.podspec
deleted file mode 100644
index a34c50b54eb4cb469c5c848c2edde9d732fc65c9..0000000000000000000000000000000000000000
--- a/src/objective-c/GRPCClient/GRPCClient.podspec
+++ /dev/null
@@ -1,14 +0,0 @@
-Pod::Spec.new do |s|
-  s.name         = 'GRPCClient'
-  s.version      = '0.0.1'
-  s.summary      = 'Generic gRPC client library for iOS'
-  s.author = {
-    'Jorge Canizales' => 'jcanizales@google.com'
-  }
-  s.source_files = '*.{h,m}', 'private/*.{h,m}'
-  s.private_header_files = 'private/*.h'
-  s.platform = :ios
-  s.ios.deployment_target = '6.0'
-  s.requires_arc = true
-  s.dependency 'RxLibrary', '~> 0.0'
-end
diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.m b/src/objective-c/GRPCClient/private/GRPCChannel.m
index c8fa69ef912efabf8ed98a42bf10f81b29e27094..7ddc01dc240f2eecbc03d4a8d9024178c9c160e0 100644
--- a/src/objective-c/GRPCClient/private/GRPCChannel.m
+++ b/src/objective-c/GRPCClient/private/GRPCChannel.m
@@ -33,7 +33,7 @@
 
 #import "GRPCChannel.h"
 
-#import <grpc.h>
+#import <grpc/grpc.h>
 
 @implementation GRPCChannel
 
diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
index bc2a824a6b443ef280f08dc71a8e19ad41ac331e..b98e8ea439d6b643aaad862b987ca350855340c3 100644
--- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
+++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
@@ -33,7 +33,7 @@
 
 #import "GRPCCompletionQueue.h"
 
-#import <grpc.h>
+#import <grpc/grpc.h>
 
 @implementation GRPCCompletionQueue
 
diff --git a/src/objective-c/GRPCClient/private/NSData+GRPC.m b/src/objective-c/GRPCClient/private/NSData+GRPC.m
index f885e9db9c6b4ab3bfec30e694dc278feb838dc0..5ab16d9d34b516547616d37f9bd3ef8eef5ba98a 100644
--- a/src/objective-c/GRPCClient/private/NSData+GRPC.m
+++ b/src/objective-c/GRPCClient/private/NSData+GRPC.m
@@ -33,7 +33,7 @@
 
 #import "NSData+GRPC.h"
 
-#include <byte_buffer.h>
+#include <grpc/byte_buffer.h>
 #include <string.h>
 
 // TODO(jcanizales): Move these two incantations to the C library.
diff --git a/src/objective-c/RxLibrary/RxLibrary.podspec b/src/objective-c/RxLibrary/RxLibrary.podspec
deleted file mode 100644
index 605aedaf108179a0007cc4eac8110e3be98b5609..0000000000000000000000000000000000000000
--- a/src/objective-c/RxLibrary/RxLibrary.podspec
+++ /dev/null
@@ -1,13 +0,0 @@
-Pod::Spec.new do |s|
-  s.name         = 'RxLibrary'
-  s.version      = '0.0.1'
-  s.summary      = 'Reactive Extensions library for iOS'
-  s.author = {
-    'Jorge Canizales' => 'jcanizales@google.com'
-  }
-  s.source_files = '*.{h,m}', 'transformations/*.{h,m}', 'private/*.{h,m}'
-  s.private_header_files = 'private/*.h'
-  s.platform = :ios
-  s.ios.deployment_target = '6.0'
-  s.requires_arc = true
-end