Browse Source

Migrate speech to text example app to swift package manager & fix compile errors (#1402)

Jake Prickett 3 years ago
parent
commit
0981d4dccc

+ 2 - 2
Examples/Google/SpeechToText/Makefile

@@ -13,6 +13,7 @@ protos:
 generate:
 	protoc \
 	googleapis/google/cloud/speech/v1/cloud_speech.proto \
+	googleapis/google/cloud/speech/v1/resource.proto \
 	googleapis/google/rpc/status.proto \
 	googleapis/google/api/client.proto \
 	googleapis/google/api/annotations.proto \
@@ -25,9 +26,8 @@ generate:
 	mkdir -p Sources/Generated
 	find google/ -name \*.swift -exec cp {} Sources/Generated/ \;
 
-## clean	     : Clean workspace and start from scratch (remove googleapis, generated swift, pods, etc.)
+## clean	     : Clean workspace and start from scratch (remove googleapis, generated swift, etc.)
 clean:
-	rm -rf Pods/
 	rm -rf googleapis/
 	rm -rf google/
 	rm Sources/Generated/*

+ 0 - 10
Examples/Google/SpeechToText/Podfile

@@ -1,10 +0,0 @@
-platform :ios, '13.0'
-
-inhibit_all_warnings!
-
-target 'SpeechToText-gRPC-iOS' do
-  use_frameworks!
-
-  pod 'SnapKit'
-  pod 'gRPC-Swift', '1.0.0'
-end

+ 0 - 117
Examples/Google/SpeechToText/Podfile.lock

@@ -1,117 +0,0 @@
-PODS:
-  - CGRPCZlib (1.0.0)
-  - CNIOAtomics (2.26.0)
-  - CNIOBoringSSL (2.10.3)
-  - CNIOBoringSSLShims (2.10.3):
-    - CNIOBoringSSL (= 2.10.3)
-  - CNIODarwin (2.26.0)
-  - CNIOHTTPParser (2.26.0)
-  - CNIOLinux (2.26.0)
-  - CNIOWindows (2.26.0)
-  - gRPC-Swift (1.0.0):
-    - CGRPCZlib (= 1.0.0)
-    - Logging (< 2.0.0, >= 1.4.0)
-    - SwiftNIO (< 3.0.0, >= 2.22.0)
-    - SwiftNIOExtras (< 2.0.0, >= 1.4.0)
-    - SwiftNIOHTTP2 (< 2.0.0, >= 1.16.1)
-    - SwiftNIOSSL (< 3.0.0, >= 2.8.0)
-    - SwiftNIOTransportServices (< 2.0.0, >= 1.6.0)
-    - SwiftProtobuf (< 2.0.0, >= 1.9.0)
-  - Logging (1.4.0)
-  - SnapKit (5.0.1)
-  - SwiftNIO (2.26.0):
-    - CNIODarwin (= 2.26.0)
-    - CNIOLinux (= 2.26.0)
-    - CNIOWindows (= 2.26.0)
-    - SwiftNIOConcurrencyHelpers (= 2.26.0)
-  - SwiftNIOConcurrencyHelpers (2.26.0):
-    - CNIOAtomics (= 2.26.0)
-  - SwiftNIOExtras (1.8.0):
-    - SwiftNIO (< 3, >= 2.9.0)
-  - SwiftNIOFoundationCompat (2.26.0):
-    - SwiftNIO (= 2.26.0)
-  - SwiftNIOHPACK (1.16.3):
-    - SwiftNIO (< 3, >= 2.18.0)
-    - SwiftNIOConcurrencyHelpers (< 3, >= 2.18.0)
-    - SwiftNIOHTTP1 (< 3, >= 2.18.0)
-  - SwiftNIOHTTP1 (2.26.0):
-    - CNIOHTTPParser (= 2.26.0)
-    - SwiftNIO (= 2.26.0)
-    - SwiftNIOConcurrencyHelpers (= 2.26.0)
-  - SwiftNIOHTTP2 (1.16.3):
-    - SwiftNIO (< 3, >= 2.18.0)
-    - SwiftNIOConcurrencyHelpers (< 3, >= 2.18.0)
-    - SwiftNIOHPACK (= 1.16.3)
-    - SwiftNIOHTTP1 (< 3, >= 2.18.0)
-    - SwiftNIOTLS (< 3, >= 2.18.0)
-  - SwiftNIOSSL (2.10.3):
-    - CNIOBoringSSL (= 2.10.3)
-    - CNIOBoringSSLShims (= 2.10.3)
-    - SwiftNIO (< 3, >= 2.15.0)
-    - SwiftNIOConcurrencyHelpers (< 3, >= 2.15.0)
-    - SwiftNIOTLS (< 3, >= 2.15.0)
-  - SwiftNIOTLS (2.26.0):
-    - SwiftNIO (= 2.26.0)
-  - SwiftNIOTransportServices (1.9.2):
-    - SwiftNIO (< 3, >= 2.19.0)
-    - SwiftNIOConcurrencyHelpers (< 3, >= 2.19.0)
-    - SwiftNIOFoundationCompat (< 3, >= 2.19.0)
-    - SwiftNIOTLS (< 3, >= 2.19.0)
-  - SwiftProtobuf (1.15.0)
-
-DEPENDENCIES:
-  - gRPC-Swift (= 1.0.0)
-  - SnapKit
-
-SPEC REPOS:
-  trunk:
-    - CGRPCZlib
-    - CNIOAtomics
-    - CNIOBoringSSL
-    - CNIOBoringSSLShims
-    - CNIODarwin
-    - CNIOHTTPParser
-    - CNIOLinux
-    - CNIOWindows
-    - gRPC-Swift
-    - Logging
-    - SnapKit
-    - SwiftNIO
-    - SwiftNIOConcurrencyHelpers
-    - SwiftNIOExtras
-    - SwiftNIOFoundationCompat
-    - SwiftNIOHPACK
-    - SwiftNIOHTTP1
-    - SwiftNIOHTTP2
-    - SwiftNIOSSL
-    - SwiftNIOTLS
-    - SwiftNIOTransportServices
-    - SwiftProtobuf
-
-SPEC CHECKSUMS:
-  CGRPCZlib: b0c9d704a12fa667f1824ffff20688f191945989
-  CNIOAtomics: 7599e2500f637f1e043047da52efd710d6020dd3
-  CNIOBoringSSL: 8e20acf863216a6d7b75a56fe0567a36147d8ee0
-  CNIOBoringSSLShims: 72cc9d43e6f5d8a137a2699eb08a0c67865c9797
-  CNIODarwin: 68f6ff440e989ef43ca6eb3335f3e5484066fab7
-  CNIOHTTPParser: 26678afdbc27f24d1a3498bf87413bfc3391fbc5
-  CNIOLinux: 5fd92122d58b04508074371d95a1f874310fe8e3
-  CNIOWindows: 0af55cf84c3811318aee91888737e0b124552029
-  gRPC-Swift: 77154009a019e97f8c4bd8f2bb75fe9726801157
-  Logging: beeb016c9c80cf77042d62e83495816847ef108b
-  SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb
-  SwiftNIO: 1f309539cfe7ed42648f505a48c546e83a2f66c3
-  SwiftNIOConcurrencyHelpers: ebbceb814afcd8b4fab86935855f6c8c77ae4285
-  SwiftNIOExtras: aa561b71020cd6844f722cf4513fb176c577414d
-  SwiftNIOFoundationCompat: 6869943bce8c6b777114d840f7d795178a7391ae
-  SwiftNIOHPACK: 38e855a72ae0c5176485ddd039b3933b99daa2b7
-  SwiftNIOHTTP1: 7f7aa111d51d09a97ef1fddb50855074e5e42778
-  SwiftNIOHTTP2: de7eff9d32fd347338f85b86c6fd0e13c3fbd1a0
-  SwiftNIOSSL: ac6e05adff65df9a3b518bbd27ff1f152fa82999
-  SwiftNIOTLS: 0faded6aff802c423ddee27828850a8ea4a818d0
-  SwiftNIOTransportServices: 896c9a4ac98698d32aa2feea7657ade219ae80bb
-  SwiftProtobuf: 3320217e9d8fb75f36b40282e78c482640fd75dd
-
-PODFILE CHECKSUM: 305feb672adb81dcf423236b654bbb028bd64d16
-
-COCOAPODS: 1.10.1

+ 2 - 2
Examples/Google/SpeechToText/README.md

@@ -18,11 +18,11 @@ This project requires a Google Cloud API Key. Please [register](https://cloud.go
 
 ## Project Setup
 1. Clone the repository
-2. Navigate to the root directory (`Examples/Google/SpeechToText`) and run `pod install`
+2. Navigate to the root directory (`Examples/Google/SpeechToText`)
 3. Run `make protos` to pull the most recent .proto files from the googleapis repository
 4. run `make generate` to leverage the `protoc` plugin to generate the Swift interfaces
     - Note: Please refer to [Getting the `protoc` Plugins](https://github.com/grpc/grpc-swift#getting-the-protoc-plugins). For this tutorial, the Makefile requires that the `protoc-gen-grpc-swift` and `protoc-gen-swift` are on the users PATH.
-5. Open the `.xcworkspace`
+5. Open the `.xcodeproj`
 6. Open the `Constants.swift` file and assign your generated Google Cloud API Key to the `apiKey` variable.
     - Note: Once you add the API Key, feel free to remove the forced warning/reminder on line 23.
 7. Run the application!

+ 2 - 1
Examples/Google/SpeechToText/Sources/SpeechService.swift

@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+import Foundation
 import GRPC
 import Logging
 
@@ -50,7 +51,7 @@ final class SpeechService {
 
     // Create a connection secured with TLS to Google's speech service running on our `EventLoopGroup`
     let channel = ClientConnection
-      .secure(group: group)
+      .usingPlatformAppropriateTLS(for: group)
       .withBackgroundActivityLogger(logger)
       .connect(host: "speech.googleapis.com", port: 443)
 

+ 95 - 113
Examples/Google/SpeechToText/SpeechToText-gRPC-iOS.xcodeproj/project.pbxproj

@@ -3,40 +3,34 @@
 	archiveVersion = 1;
 	classes = {
 	};
-	objectVersion = 51;
+	objectVersion = 52;
 	objects = {
 
 /* Begin PBXBuildFile section */
 		45600AC42445365000180DCE /* AudioStreamManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45600AC32445365000180DCE /* AudioStreamManager.swift */; };
 		458EDDB32444997700BEBFD3 /* SpeechService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 458EDDB22444997700BEBFD3 /* SpeechService.swift */; };
-		45A6D4F82457CA700038EA68 /* operations.grpc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F02457CA700038EA68 /* operations.grpc.swift */; };
-		45A6D4F92457CA700038EA68 /* cloud_speech.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F12457CA700038EA68 /* cloud_speech.pb.swift */; };
-		45A6D4FA2457CA700038EA68 /* annotations.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F22457CA700038EA68 /* annotations.pb.swift */; };
-		45A6D4FB2457CA700038EA68 /* operations.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F32457CA700038EA68 /* operations.pb.swift */; };
-		45A6D4FC2457CA700038EA68 /* status.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F42457CA700038EA68 /* status.pb.swift */; };
-		45A6D4FD2457CA700038EA68 /* http.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F52457CA700038EA68 /* http.pb.swift */; };
-		45A6D4FE2457CA700038EA68 /* client.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F62457CA700038EA68 /* client.pb.swift */; };
-		45A6D4FF2457CA700038EA68 /* cloud_speech.grpc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6D4F72457CA700038EA68 /* cloud_speech.grpc.swift */; };
 		45A75D542446506000ACB73B /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A75D532446506000ACB73B /* Constants.swift */; };
 		45EA4F3024439C2300622606 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45EA4F2F24439C2300622606 /* AppDelegate.swift */; };
 		45EA4F3224439C2300622606 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45EA4F3124439C2300622606 /* SceneDelegate.swift */; };
 		45EA4F3424439C2300622606 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45EA4F3324439C2300622606 /* ViewController.swift */; };
 		45EA4F3924439C2400622606 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 45EA4F3824439C2400622606 /* Assets.xcassets */; };
 		45EA4F3C24439C2400622606 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 45EA4F3A24439C2400622606 /* LaunchScreen.storyboard */; };
-		90F12C7BFCE27B60F4C455D5 /* Pods_SpeechToText_gRPC_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BB47463A962540B72022723 /* Pods_SpeechToText_gRPC_iOS.framework */; };
+		E7726D7B282887B3006686BE /* cloud_speech.grpc.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D73282887B3006686BE /* cloud_speech.grpc.swift */; };
+		E7726D7C282887B3006686BE /* status.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D74282887B3006686BE /* status.pb.swift */; };
+		E7726D7D282887B3006686BE /* cloud_speech.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D75282887B3006686BE /* cloud_speech.pb.swift */; };
+		E7726D7E282887B3006686BE /* annotations.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D76282887B3006686BE /* annotations.pb.swift */; };
+		E7726D7F282887B3006686BE /* operations.grpc.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D77282887B3006686BE /* operations.grpc.swift */; };
+		E7726D80282887B3006686BE /* http.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D78282887B3006686BE /* http.pb.swift */; };
+		E7726D81282887B3006686BE /* operations.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D79282887B3006686BE /* operations.pb.swift */; };
+		E7726D82282887B3006686BE /* client.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7726D7A282887B3006686BE /* client.pb.swift */; };
+		E7726D8528288825006686BE /* GRPC in Frameworks */ = {isa = PBXBuildFile; productRef = E7726D8428288825006686BE /* GRPC */; };
+		E7726D8828288850006686BE /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = E7726D8728288850006686BE /* SnapKit */; };
+		E7DB07D128288C160049B966 /* resource.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7DB07D028288C160049B966 /* resource.pb.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
 		45600AC32445365000180DCE /* AudioStreamManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioStreamManager.swift; sourceTree = "<group>"; };
 		458EDDB22444997700BEBFD3 /* SpeechService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpeechService.swift; sourceTree = "<group>"; };
-		45A6D4F02457CA700038EA68 /* operations.grpc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = operations.grpc.swift; sourceTree = "<group>"; };
-		45A6D4F12457CA700038EA68 /* cloud_speech.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = cloud_speech.pb.swift; sourceTree = "<group>"; };
-		45A6D4F22457CA700038EA68 /* annotations.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = annotations.pb.swift; sourceTree = "<group>"; };
-		45A6D4F32457CA700038EA68 /* operations.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = operations.pb.swift; sourceTree = "<group>"; };
-		45A6D4F42457CA700038EA68 /* status.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = status.pb.swift; sourceTree = "<group>"; };
-		45A6D4F52457CA700038EA68 /* http.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = http.pb.swift; sourceTree = "<group>"; };
-		45A6D4F62457CA700038EA68 /* client.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = client.pb.swift; sourceTree = "<group>"; };
-		45A6D4F72457CA700038EA68 /* cloud_speech.grpc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = cloud_speech.grpc.swift; sourceTree = "<group>"; };
 		45A75D532446506000ACB73B /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
 		45EA4F2C24439C2300622606 /* gRPC Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "gRPC Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		45EA4F2F24439C2300622606 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
@@ -45,9 +39,15 @@
 		45EA4F3824439C2400622606 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
 		45EA4F3B24439C2400622606 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
 		45EA4F3D24439C2400622606 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		8BB47463A962540B72022723 /* Pods_SpeechToText_gRPC_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SpeechToText_gRPC_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		B4D057349E6BFEE6BE2D0FFE /* Pods-SpeechToText-gRPC-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SpeechToText-gRPC-iOS.debug.xcconfig"; path = "Target Support Files/Pods-SpeechToText-gRPC-iOS/Pods-SpeechToText-gRPC-iOS.debug.xcconfig"; sourceTree = "<group>"; };
-		E8E493D0DC00CC6697CDDB7B /* Pods-SpeechToText-gRPC-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SpeechToText-gRPC-iOS.release.xcconfig"; path = "Target Support Files/Pods-SpeechToText-gRPC-iOS/Pods-SpeechToText-gRPC-iOS.release.xcconfig"; sourceTree = "<group>"; };
+		E7726D73282887B3006686BE /* cloud_speech.grpc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = cloud_speech.grpc.swift; sourceTree = "<group>"; };
+		E7726D74282887B3006686BE /* status.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = status.pb.swift; sourceTree = "<group>"; };
+		E7726D75282887B3006686BE /* cloud_speech.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = cloud_speech.pb.swift; sourceTree = "<group>"; };
+		E7726D76282887B3006686BE /* annotations.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = annotations.pb.swift; sourceTree = "<group>"; };
+		E7726D77282887B3006686BE /* operations.grpc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = operations.grpc.swift; sourceTree = "<group>"; };
+		E7726D78282887B3006686BE /* http.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = http.pb.swift; sourceTree = "<group>"; };
+		E7726D79282887B3006686BE /* operations.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = operations.pb.swift; sourceTree = "<group>"; };
+		E7726D7A282887B3006686BE /* client.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = client.pb.swift; sourceTree = "<group>"; };
+		E7DB07D028288C160049B966 /* resource.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = resource.pb.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -55,7 +55,8 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				90F12C7BFCE27B60F4C455D5 /* Pods_SpeechToText_gRPC_iOS.framework in Frameworks */,
+				E7726D8528288825006686BE /* GRPC in Frameworks */,
+				E7726D8828288850006686BE /* SnapKit in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -81,28 +82,11 @@
 			path = Launch;
 			sourceTree = "<group>";
 		};
-		45A6D4E12457C7780038EA68 /* Generated */ = {
-			isa = PBXGroup;
-			children = (
-				45A6D4F22457CA700038EA68 /* annotations.pb.swift */,
-				45A6D4F62457CA700038EA68 /* client.pb.swift */,
-				45A6D4F72457CA700038EA68 /* cloud_speech.grpc.swift */,
-				45A6D4F12457CA700038EA68 /* cloud_speech.pb.swift */,
-				45A6D4F52457CA700038EA68 /* http.pb.swift */,
-				45A6D4F02457CA700038EA68 /* operations.grpc.swift */,
-				45A6D4F32457CA700038EA68 /* operations.pb.swift */,
-				45A6D4F42457CA700038EA68 /* status.pb.swift */,
-			);
-			path = Generated;
-			sourceTree = "<group>";
-		};
 		45EA4F2324439C2300622606 = {
 			isa = PBXGroup;
 			children = (
 				45EA4F2E24439C2300622606 /* Sources */,
 				45EA4F2D24439C2300622606 /* Products */,
-				962026E13832C719518050CA /* Pods */,
-				D32D774F4BFD3DE348FECF6C /* Frameworks */,
 			);
 			sourceTree = "<group>";
 		};
@@ -117,9 +101,9 @@
 		45EA4F2E24439C2300622606 /* Sources */ = {
 			isa = PBXGroup;
 			children = (
+				E7726D72282887B3006686BE /* Generated */,
 				4524351F244495EC00EF8317 /* Launch */,
 				4524351E244495D800EF8317 /* Configuration */,
-				45A6D4E12457C7780038EA68 /* Generated */,
 				45EA4F3324439C2300622606 /* ViewController.swift */,
 				458EDDB22444997700BEBFD3 /* SpeechService.swift */,
 				45600AC32445365000180DCE /* AudioStreamManager.swift */,
@@ -128,21 +112,20 @@
 			path = Sources;
 			sourceTree = "<group>";
 		};
-		962026E13832C719518050CA /* Pods */ = {
-			isa = PBXGroup;
-			children = (
-				B4D057349E6BFEE6BE2D0FFE /* Pods-SpeechToText-gRPC-iOS.debug.xcconfig */,
-				E8E493D0DC00CC6697CDDB7B /* Pods-SpeechToText-gRPC-iOS.release.xcconfig */,
-			);
-			path = Pods;
-			sourceTree = "<group>";
-		};
-		D32D774F4BFD3DE348FECF6C /* Frameworks */ = {
+		E7726D72282887B3006686BE /* Generated */ = {
 			isa = PBXGroup;
 			children = (
-				8BB47463A962540B72022723 /* Pods_SpeechToText_gRPC_iOS.framework */,
+				E7726D76282887B3006686BE /* annotations.pb.swift */,
+				E7726D7A282887B3006686BE /* client.pb.swift */,
+				E7726D73282887B3006686BE /* cloud_speech.grpc.swift */,
+				E7726D75282887B3006686BE /* cloud_speech.pb.swift */,
+				E7726D78282887B3006686BE /* http.pb.swift */,
+				E7726D77282887B3006686BE /* operations.grpc.swift */,
+				E7726D79282887B3006686BE /* operations.pb.swift */,
+				E7DB07D028288C160049B966 /* resource.pb.swift */,
+				E7726D74282887B3006686BE /* status.pb.swift */,
 			);
-			name = Frameworks;
+			path = Generated;
 			sourceTree = "<group>";
 		};
 /* End PBXGroup section */
@@ -152,17 +135,19 @@
 			isa = PBXNativeTarget;
 			buildConfigurationList = 45EA4F4024439C2400622606 /* Build configuration list for PBXNativeTarget "SpeechToText-gRPC-iOS" */;
 			buildPhases = (
-				DFF4D2B80023A85872DBD34B /* [CP] Check Pods Manifest.lock */,
 				45EA4F2824439C2300622606 /* Sources */,
 				45EA4F2924439C2300622606 /* Frameworks */,
 				45EA4F2A24439C2300622606 /* Resources */,
-				BF340858D237F347B150C34C /* [CP] Embed Pods Frameworks */,
 			);
 			buildRules = (
 			);
 			dependencies = (
 			);
 			name = "SpeechToText-gRPC-iOS";
+			packageProductDependencies = (
+				E7726D8428288825006686BE /* GRPC */,
+				E7726D8728288850006686BE /* SnapKit */,
+			);
 			productName = "SpeechToText-gRPC-iOS";
 			productReference = 45EA4F2C24439C2300622606 /* gRPC Example.app */;
 			productType = "com.apple.product-type.application";
@@ -174,7 +159,7 @@
 			isa = PBXProject;
 			attributes = {
 				LastSwiftUpdateCheck = 1130;
-				LastUpgradeCheck = 1130;
+				LastUpgradeCheck = 1330;
 				ORGANIZATIONNAME = "Prickett, Jacob (J.A.)";
 				TargetAttributes = {
 					45EA4F2B24439C2300622606 = {
@@ -191,6 +176,10 @@
 				Base,
 			);
 			mainGroup = 45EA4F2324439C2300622606;
+			packageReferences = (
+				E7726D8328288825006686BE /* XCRemoteSwiftPackageReference "grpc-swift" */,
+				E7726D8628288850006686BE /* XCRemoteSwiftPackageReference "SnapKit" */,
+			);
 			productRefGroup = 45EA4F2D24439C2300622606 /* Products */;
 			projectDirPath = "";
 			projectRoot = "";
@@ -212,67 +201,26 @@
 		};
 /* End PBXResourcesBuildPhase section */
 
-/* Begin PBXShellScriptBuildPhase section */
-		BF340858D237F347B150C34C /* [CP] Embed Pods Frameworks */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-				"${PODS_ROOT}/Target Support Files/Pods-SpeechToText-gRPC-iOS/Pods-SpeechToText-gRPC-iOS-frameworks-${CONFIGURATION}-input-files.xcfilelist",
-			);
-			name = "[CP] Embed Pods Frameworks";
-			outputFileListPaths = (
-				"${PODS_ROOT}/Target Support Files/Pods-SpeechToText-gRPC-iOS/Pods-SpeechToText-gRPC-iOS-frameworks-${CONFIGURATION}-output-files.xcfilelist",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SpeechToText-gRPC-iOS/Pods-SpeechToText-gRPC-iOS-frameworks.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
-		DFF4D2B80023A85872DBD34B /* [CP] Check Pods Manifest.lock */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-			);
-			inputPaths = (
-				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
-				"${PODS_ROOT}/Manifest.lock",
-			);
-			name = "[CP] Check Pods Manifest.lock";
-			outputFileListPaths = (
-			);
-			outputPaths = (
-				"$(DERIVED_FILE_DIR)/Pods-SpeechToText-gRPC-iOS-checkManifestLockResult.txt",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
-			showEnvVarsInLog = 0;
-		};
-/* End PBXShellScriptBuildPhase section */
-
 /* Begin PBXSourcesBuildPhase section */
 		45EA4F2824439C2300622606 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
 				45600AC42445365000180DCE /* AudioStreamManager.swift in Sources */,
-				45A6D4FC2457CA700038EA68 /* status.pb.swift in Sources */,
 				45EA4F3424439C2300622606 /* ViewController.swift in Sources */,
-				45A6D4FB2457CA700038EA68 /* operations.pb.swift in Sources */,
-				45A6D4FD2457CA700038EA68 /* http.pb.swift in Sources */,
+				E7DB07D128288C160049B966 /* resource.pb.swift in Sources */,
+				E7726D7D282887B3006686BE /* cloud_speech.pb.swift in Sources */,
+				E7726D81282887B3006686BE /* operations.pb.swift in Sources */,
 				45EA4F3024439C2300622606 /* AppDelegate.swift in Sources */,
-				45A6D4F82457CA700038EA68 /* operations.grpc.swift in Sources */,
+				E7726D80282887B3006686BE /* http.pb.swift in Sources */,
+				E7726D7F282887B3006686BE /* operations.grpc.swift in Sources */,
+				E7726D82282887B3006686BE /* client.pb.swift in Sources */,
 				458EDDB32444997700BEBFD3 /* SpeechService.swift in Sources */,
-				45A6D4FE2457CA700038EA68 /* client.pb.swift in Sources */,
 				45EA4F3224439C2300622606 /* SceneDelegate.swift in Sources */,
-				45A6D4F92457CA700038EA68 /* cloud_speech.pb.swift in Sources */,
+				E7726D7B282887B3006686BE /* cloud_speech.grpc.swift in Sources */,
+				E7726D7C282887B3006686BE /* status.pb.swift in Sources */,
 				45A75D542446506000ACB73B /* Constants.swift in Sources */,
-				45A6D4FF2457CA700038EA68 /* cloud_speech.grpc.swift in Sources */,
-				45A6D4FA2457CA700038EA68 /* annotations.pb.swift in Sources */,
+				E7726D7E282887B3006686BE /* annotations.pb.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -316,6 +264,7 @@
 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -340,7 +289,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
 				MTL_FAST_MATH = YES;
 				ONLY_ACTIVE_ARCH = YES;
@@ -376,6 +325,7 @@
 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -394,7 +344,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				MTL_FAST_MATH = YES;
 				SDKROOT = iphoneos;
@@ -406,17 +356,17 @@
 		};
 		45EA4F4124439C2400622606 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = B4D057349E6BFEE6BE2D0FFE /* Pods-SpeechToText-gRPC-iOS.debug.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_STYLE = Automatic;
 				DEVELOPMENT_TEAM = 24DLJQTAR9;
 				INFOPLIST_FILE = "$(SRCROOT)/Sources/Configuration/Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.ford.SpeechToText-gRPC-iOS";
+				PRODUCT_BUNDLE_IDENTIFIER = "com.jakeprickett.SpeechToText-gRPC-iOS";
 				PRODUCT_NAME = "gRPC Example";
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = 1;
@@ -425,17 +375,17 @@
 		};
 		45EA4F4224439C2400622606 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = E8E493D0DC00CC6697CDDB7B /* Pods-SpeechToText-gRPC-iOS.release.xcconfig */;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_STYLE = Automatic;
 				DEVELOPMENT_TEAM = 24DLJQTAR9;
 				INFOPLIST_FILE = "$(SRCROOT)/Sources/Configuration/Info.plist";
+				IPHONEOS_DEPLOYMENT_TARGET = 15.0;
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.ford.SpeechToText-gRPC-iOS";
+				PRODUCT_BUNDLE_IDENTIFIER = "com.jakeprickett.SpeechToText-gRPC-iOS";
 				PRODUCT_NAME = "gRPC Example";
 				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = 1;
@@ -452,7 +402,7 @@
 				45EA4F3F24439C2400622606 /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
+			defaultConfigurationName = Debug;
 		};
 		45EA4F4024439C2400622606 /* Build configuration list for PBXNativeTarget "SpeechToText-gRPC-iOS" */ = {
 			isa = XCConfigurationList;
@@ -461,9 +411,41 @@
 				45EA4F4224439C2400622606 /* Release */,
 			);
 			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
+			defaultConfigurationName = Debug;
 		};
 /* End XCConfigurationList section */
+
+/* Begin XCRemoteSwiftPackageReference section */
+		E7726D8328288825006686BE /* XCRemoteSwiftPackageReference "grpc-swift" */ = {
+			isa = XCRemoteSwiftPackageReference;
+			repositoryURL = "https://github.com/grpc/grpc-swift.git";
+			requirement = {
+				kind = upToNextMajorVersion;
+				minimumVersion = 1.0.0;
+			};
+		};
+		E7726D8628288850006686BE /* XCRemoteSwiftPackageReference "SnapKit" */ = {
+			isa = XCRemoteSwiftPackageReference;
+			repositoryURL = "https://github.com/SnapKit/SnapKit";
+			requirement = {
+				kind = upToNextMajorVersion;
+				minimumVersion = 5.0.0;
+			};
+		};
+/* End XCRemoteSwiftPackageReference section */
+
+/* Begin XCSwiftPackageProductDependency section */
+		E7726D8428288825006686BE /* GRPC */ = {
+			isa = XCSwiftPackageProductDependency;
+			package = E7726D8328288825006686BE /* XCRemoteSwiftPackageReference "grpc-swift" */;
+			productName = GRPC;
+		};
+		E7726D8728288850006686BE /* SnapKit */ = {
+			isa = XCSwiftPackageProductDependency;
+			package = E7726D8628288850006686BE /* XCRemoteSwiftPackageReference "SnapKit" */;
+			productName = SnapKit;
+		};
+/* End XCSwiftPackageProductDependency section */
 	};
 	rootObject = 45EA4F2424439C2300622606 /* Project object */;
 }

+ 78 - 0
Examples/Google/SpeechToText/SpeechToText-gRPC-iOS.xcodeproj/xcshareddata/xcschemes/SpeechToText-gRPC-iOS.xcscheme

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1330"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "45EA4F2B24439C2300622606"
+               BuildableName = "gRPC Example.app"
+               BlueprintName = "SpeechToText-gRPC-iOS"
+               ReferencedContainer = "container:SpeechToText-gRPC-iOS.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "45EA4F2B24439C2300622606"
+            BuildableName = "gRPC Example.app"
+            BlueprintName = "SpeechToText-gRPC-iOS"
+            ReferencedContainer = "container:SpeechToText-gRPC-iOS.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "45EA4F2B24439C2300622606"
+            BuildableName = "gRPC Example.app"
+            BlueprintName = "SpeechToText-gRPC-iOS"
+            ReferencedContainer = "container:SpeechToText-gRPC-iOS.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 0 - 10
Examples/Google/SpeechToText/SpeechToText-gRPC-iOS.xcworkspace/contents.xcworkspacedata

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "group:SpeechToText-gRPC-iOS.xcodeproj">
-   </FileRef>
-   <FileRef
-      location = "group:Pods/Pods.xcodeproj">
-   </FileRef>
-</Workspace>

+ 0 - 8
Examples/Google/SpeechToText/SpeechToText-gRPC-iOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>IDEDidComputeMac32BitWarning</key>
-	<true/>
-</dict>
-</plist>