mirror of https://github.com/grpc/grpc.git
commit
61827dd66f
114 changed files with 6711 additions and 2164 deletions
@ -1,18 +1,19 @@ |
||||
-Wall |
||||
-Wc++-compat |
||||
-Ithird_party/googletest/include |
||||
-Ithird_party/googletest |
||||
-Iinclude |
||||
-Igens |
||||
-I. |
||||
-Ithird_party/boringssl/include |
||||
-Ithird_party/benchmark/include |
||||
-Ithird_party/zlib |
||||
-Ithird_party/protobuf/src |
||||
-Igens |
||||
-Iinclude |
||||
-Isrc/core/ext/upb-generated |
||||
-Ithird_party/abseil-cpp |
||||
-Ithird_party/cares/cares |
||||
-Ithird_party/benchmark/include |
||||
-Ithird_party/boringssl/include |
||||
-Ithird_party/cares |
||||
-Ithird_party/googletest/googletest/include |
||||
-Ithird_party/cares/cares |
||||
-Ithird_party/googletest |
||||
-Ithird_party/googletest/googlemock/include |
||||
-Ithird_party/googletest/googletest/include |
||||
-Ithird_party/googletest/include |
||||
-Ithird_party/nanopb |
||||
|
||||
-Ithird_party/protobuf/src |
||||
-Ithird_party/upb |
||||
-Ithird_party/zlib |
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,18 @@ |
||||
# Copyright 2019 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
set(UPB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/upb) |
||||
|
||||
set(_gRPC_UPB_INCLUDE_DIR "${UPB_ROOT_DIR}") |
||||
set(_gRPC_UPB_GRPC_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated") |
@ -1,14 +1,14 @@ |
||||
/* This file was generated by upbc (the upb compiler) from the input
|
||||
* file: |
||||
* |
||||
* grpc/gcp/altscontext.proto |
||||
* src/proto/grpc/gcp/altscontext.proto |
||||
* |
||||
* Do not edit -- your changes will be discarded when the file is |
||||
* regenerated. */ |
||||
|
||||
#include <stddef.h> |
||||
#include "upb/msg.h" |
||||
#include "grpc/gcp/altscontext.upb.h" |
||||
#include "src/proto/grpc/gcp/altscontext.upb.h" |
||||
#include "src/proto/grpc/gcp/transport_security_common.upb.h" |
||||
|
||||
#include "upb/port_def.inc" |
@ -1,14 +1,14 @@ |
||||
/* This file was generated by upbc (the upb compiler) from the input
|
||||
* file: |
||||
* |
||||
* grpc/gcp/handshaker.proto |
||||
* src/proto/grpc/gcp/handshaker.proto |
||||
* |
||||
* Do not edit -- your changes will be discarded when the file is |
||||
* regenerated. */ |
||||
|
||||
#include <stddef.h> |
||||
#include "upb/msg.h" |
||||
#include "grpc/gcp/handshaker.upb.h" |
||||
#include "src/proto/grpc/gcp/handshaker.upb.h" |
||||
#include "src/proto/grpc/gcp/transport_security_common.upb.h" |
||||
|
||||
#include "upb/port_def.inc" |
@ -1,14 +1,14 @@ |
||||
/* This file was generated by upbc (the upb compiler) from the input
|
||||
* file: |
||||
* |
||||
* grpc/gcp/transport_security_common.proto |
||||
* src/proto/grpc/gcp/transport_security_common.proto |
||||
* |
||||
* Do not edit -- your changes will be discarded when the file is |
||||
* regenerated. */ |
||||
|
||||
#include <stddef.h> |
||||
#include "upb/msg.h" |
||||
#include "grpc/gcp/transport_security_common.upb.h" |
||||
#include "src/proto/grpc/gcp/transport_security_common.upb.h" |
||||
|
||||
#include "upb/port_def.inc" |
||||
|
@ -1,14 +1,14 @@ |
||||
/* This file was generated by upbc (the upb compiler) from the input
|
||||
* file: |
||||
* |
||||
* grpc/health/v1/health.proto |
||||
* src/proto/grpc/health/v1/health.proto |
||||
* |
||||
* Do not edit -- your changes will be discarded when the file is |
||||
* regenerated. */ |
||||
|
||||
#include <stddef.h> |
||||
#include "upb/msg.h" |
||||
#include "grpc/health/v1/health.upb.h" |
||||
#include "src/proto/grpc/health/v1/health.upb.h" |
||||
|
||||
#include "upb/port_def.inc" |
||||
|
@ -1,14 +1,14 @@ |
||||
/* This file was generated by upbc (the upb compiler) from the input
|
||||
* file: |
||||
* |
||||
* grpc/lb/v1/load_balancer.proto |
||||
* src/proto/grpc/lb/v1/load_balancer.proto |
||||
* |
||||
* Do not edit -- your changes will be discarded when the file is |
||||
* regenerated. */ |
||||
|
||||
#include <stddef.h> |
||||
#include "upb/msg.h" |
||||
#include "grpc/lb/v1/load_balancer.upb.h" |
||||
#include "src/proto/grpc/lb/v1/load_balancer.upb.h" |
||||
#include "google/protobuf/duration.upb.h" |
||||
#include "google/protobuf/timestamp.upb.h" |
||||
|
@ -0,0 +1,33 @@ |
||||
platform :tvos, '10.0' |
||||
|
||||
install! 'cocoapods', :deterministic_uuids => false |
||||
|
||||
use_frameworks! if ENV['FRAMEWORKS'] != 'NO' |
||||
|
||||
ROOT_DIR = '../../../..' |
||||
|
||||
target 'tvOS-sample' do |
||||
pod 'gRPC-ProtoRPC', :path => ROOT_DIR |
||||
pod 'gRPC', :path => ROOT_DIR |
||||
pod 'gRPC-Core', :path => ROOT_DIR |
||||
pod 'gRPC-RxLibrary', :path => ROOT_DIR |
||||
pod 'RemoteTest', :path => "../RemoteTestClient" |
||||
pod '!ProtoCompiler-gRPCPlugin', :path => "#{ROOT_DIR}/src/objective-c" |
||||
end |
||||
|
||||
pre_install do |installer| |
||||
grpc_core_spec = installer.pod_targets.find{|t| t.name.start_with?('gRPC-Core')}.root_spec |
||||
|
||||
src_root = "$(PODS_TARGET_SRCROOT)" |
||||
grpc_core_spec.pod_target_xcconfig = { |
||||
'GRPC_SRC_ROOT' => src_root, |
||||
'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(GRPC_SRC_ROOT)/include"', |
||||
'USER_HEADER_SEARCH_PATHS' => '"$(GRPC_SRC_ROOT)"', |
||||
# If we don't set these two settings, `include/grpc/support/time.h` and |
||||
# `src/core/lib/gpr/string.h` shadow the system `<time.h>` and `<string.h>`, breaking the |
||||
# build. |
||||
'USE_HEADERMAP' => 'NO', |
||||
'ALWAYS_SEARCH_USER_PATHS' => 'NO', |
||||
} |
||||
end |
||||
|
@ -0,0 +1,419 @@ |
||||
// !$*UTF8*$! |
||||
{ |
||||
archiveVersion = 1; |
||||
classes = { |
||||
}; |
||||
objectVersion = 48; |
||||
objects = { |
||||
|
||||
/* Begin PBXBuildFile section */ |
||||
02EBA696CC670AE7C839A074 /* libPods-tvOS-sample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E06AA8437E1C07D35F65494 /* libPods-tvOS-sample.a */; }; |
||||
AB065AFB22F3A66000418B42 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AB065AFA22F3A66000418B42 /* AppDelegate.m */; }; |
||||
AB065AFE22F3A66000418B42 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AB065AFD22F3A66000418B42 /* ViewController.m */; }; |
||||
AB065B0122F3A66000418B42 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB065AFF22F3A66000418B42 /* Main.storyboard */; }; |
||||
AB065B0622F3A66000418B42 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AB065B0522F3A66000418B42 /* main.m */; }; |
||||
/* End PBXBuildFile section */ |
||||
|
||||
/* Begin PBXFileReference section */ |
||||
48F25040998C073D575D8368 /* Pods-tvOS-sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tvOS-sample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-tvOS-sample/Pods-tvOS-sample.debug.xcconfig"; sourceTree = "<group>"; }; |
||||
4E06AA8437E1C07D35F65494 /* libPods-tvOS-sample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tvOS-sample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
6DEA6A97511C324413DA4309 /* Pods-tvOS-sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tvOS-sample.release.xcconfig"; path = "Pods/Target Support Files/Pods-tvOS-sample/Pods-tvOS-sample.release.xcconfig"; sourceTree = "<group>"; }; |
||||
AB065AF622F3A66000418B42 /* tvOS-sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "tvOS-sample.app"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
AB065AF922F3A66000418B42 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; |
||||
AB065AFA22F3A66000418B42 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; |
||||
AB065AFC22F3A66000418B42 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; |
||||
AB065AFD22F3A66000418B42 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; |
||||
AB065B0022F3A66000418B42 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; |
||||
AB065B0422F3A66000418B42 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
||||
AB065B0522F3A66000418B42 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; |
||||
/* End PBXFileReference section */ |
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */ |
||||
AB065AF322F3A66000418B42 /* Frameworks */ = { |
||||
isa = PBXFrameworksBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
02EBA696CC670AE7C839A074 /* libPods-tvOS-sample.a in Frameworks */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXFrameworksBuildPhase section */ |
||||
|
||||
/* Begin PBXGroup section */ |
||||
0BEC1FEC387B8EE89F6F099A /* Frameworks */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
4E06AA8437E1C07D35F65494 /* libPods-tvOS-sample.a */, |
||||
); |
||||
name = Frameworks; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
3FED17B5BF1125421CC89007 /* Pods */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
48F25040998C073D575D8368 /* Pods-tvOS-sample.debug.xcconfig */, |
||||
6DEA6A97511C324413DA4309 /* Pods-tvOS-sample.release.xcconfig */, |
||||
); |
||||
name = Pods; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB065AED22F3A66000418B42 = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB065AF822F3A66000418B42 /* tvOS-sample */, |
||||
AB065AF722F3A66000418B42 /* Products */, |
||||
3FED17B5BF1125421CC89007 /* Pods */, |
||||
0BEC1FEC387B8EE89F6F099A /* Frameworks */, |
||||
); |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB065AF722F3A66000418B42 /* Products */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB065AF622F3A66000418B42 /* tvOS-sample.app */, |
||||
); |
||||
name = Products; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB065AF822F3A66000418B42 /* tvOS-sample */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB065AF922F3A66000418B42 /* AppDelegate.h */, |
||||
AB065AFA22F3A66000418B42 /* AppDelegate.m */, |
||||
AB065AFC22F3A66000418B42 /* ViewController.h */, |
||||
AB065AFD22F3A66000418B42 /* ViewController.m */, |
||||
AB065AFF22F3A66000418B42 /* Main.storyboard */, |
||||
AB065B0422F3A66000418B42 /* Info.plist */, |
||||
AB065B0522F3A66000418B42 /* main.m */, |
||||
); |
||||
path = "tvOS-sample"; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
/* End PBXGroup section */ |
||||
|
||||
/* Begin PBXNativeTarget section */ |
||||
AB065AF522F3A66000418B42 /* tvOS-sample */ = { |
||||
isa = PBXNativeTarget; |
||||
buildConfigurationList = AB065B0922F3A66000418B42 /* Build configuration list for PBXNativeTarget "tvOS-sample" */; |
||||
buildPhases = ( |
||||
2C94076AB2C1F2771A45E0FF /* [CP] Check Pods Manifest.lock */, |
||||
AB065AF222F3A66000418B42 /* Sources */, |
||||
AB065AF322F3A66000418B42 /* Frameworks */, |
||||
AB065AF422F3A66000418B42 /* Resources */, |
||||
000AD98AD507990B4381492E /* [CP] Embed Pods Frameworks */, |
||||
EC4FC44DCB7C66394A17FCF9 /* [CP] Copy Pods Resources */, |
||||
); |
||||
buildRules = ( |
||||
); |
||||
dependencies = ( |
||||
); |
||||
name = "tvOS-sample"; |
||||
productName = "tvOS-sample"; |
||||
productReference = AB065AF622F3A66000418B42 /* tvOS-sample.app */; |
||||
productType = "com.apple.product-type.application"; |
||||
}; |
||||
/* End PBXNativeTarget section */ |
||||
|
||||
/* Begin PBXProject section */ |
||||
AB065AEE22F3A66000418B42 /* Project object */ = { |
||||
isa = PBXProject; |
||||
attributes = { |
||||
LastUpgradeCheck = 0920; |
||||
ORGANIZATIONNAME = "Tony Lu"; |
||||
TargetAttributes = { |
||||
AB065AF522F3A66000418B42 = { |
||||
CreatedOnToolsVersion = 9.2; |
||||
ProvisioningStyle = Automatic; |
||||
}; |
||||
}; |
||||
}; |
||||
buildConfigurationList = AB065AF122F3A66000418B42 /* Build configuration list for PBXProject "tvOS-sample" */; |
||||
compatibilityVersion = "Xcode 8.0"; |
||||
developmentRegion = en; |
||||
hasScannedForEncodings = 0; |
||||
knownRegions = ( |
||||
en, |
||||
Base, |
||||
); |
||||
mainGroup = AB065AED22F3A66000418B42; |
||||
productRefGroup = AB065AF722F3A66000418B42 /* Products */; |
||||
projectDirPath = ""; |
||||
projectRoot = ""; |
||||
targets = ( |
||||
AB065AF522F3A66000418B42 /* tvOS-sample */, |
||||
); |
||||
}; |
||||
/* End PBXProject section */ |
||||
|
||||
/* Begin PBXResourcesBuildPhase section */ |
||||
AB065AF422F3A66000418B42 /* Resources */ = { |
||||
isa = PBXResourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
AB065B0122F3A66000418B42 /* Main.storyboard in Resources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXResourcesBuildPhase section */ |
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */ |
||||
000AD98AD507990B4381492E /* [CP] Embed Pods Frameworks */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputPaths = ( |
||||
"${SRCROOT}/Pods/Target Support Files/Pods-tvOS-sample/Pods-tvOS-sample-frameworks.sh", |
||||
"${BUILT_PRODUCTS_DIR}/BoringSSL-GRPC/openssl_grpc.framework", |
||||
"${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework", |
||||
"${BUILT_PRODUCTS_DIR}/RemoteTest/RemoteTest.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC/GRPCClient.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-Core/grpc.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-ProtoRPC/ProtoRPC.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-RxLibrary/RxLibrary.framework", |
||||
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", |
||||
); |
||||
name = "[CP] Embed Pods Frameworks"; |
||||
outputPaths = ( |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl_grpc.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RemoteTest.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GRPCClient.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpc.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ProtoRPC.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxLibrary.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tvOS-sample/Pods-tvOS-sample-frameworks.sh\"\n"; |
||||
showEnvVarsInLog = 0; |
||||
}; |
||||
2C94076AB2C1F2771A45E0FF /* [CP] Check Pods Manifest.lock */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputPaths = ( |
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock", |
||||
"${PODS_ROOT}/Manifest.lock", |
||||
); |
||||
name = "[CP] Check Pods Manifest.lock"; |
||||
outputPaths = ( |
||||
"$(DERIVED_FILE_DIR)/Pods-tvOS-sample-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; |
||||
}; |
||||
EC4FC44DCB7C66394A17FCF9 /* [CP] Copy Pods Resources */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputPaths = ( |
||||
"${SRCROOT}/Pods/Target Support Files/Pods-tvOS-sample/Pods-tvOS-sample-resources.sh", |
||||
"$PODS_CONFIGURATION_BUILD_DIR/gRPC/gRPCCertificates.bundle", |
||||
); |
||||
name = "[CP] Copy Pods Resources"; |
||||
outputPaths = ( |
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tvOS-sample/Pods-tvOS-sample-resources.sh\"\n"; |
||||
showEnvVarsInLog = 0; |
||||
}; |
||||
/* End PBXShellScriptBuildPhase section */ |
||||
|
||||
/* Begin PBXSourcesBuildPhase section */ |
||||
AB065AF222F3A66000418B42 /* Sources */ = { |
||||
isa = PBXSourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
AB065AFE22F3A66000418B42 /* ViewController.m in Sources */, |
||||
AB065B0622F3A66000418B42 /* main.m in Sources */, |
||||
AB065AFB22F3A66000418B42 /* AppDelegate.m in Sources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXSourcesBuildPhase section */ |
||||
|
||||
/* Begin PBXVariantGroup section */ |
||||
AB065AFF22F3A66000418B42 /* Main.storyboard */ = { |
||||
isa = PBXVariantGroup; |
||||
children = ( |
||||
AB065B0022F3A66000418B42 /* Base */, |
||||
); |
||||
name = Main.storyboard; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
/* End PBXVariantGroup section */ |
||||
|
||||
/* Begin XCBuildConfiguration section */ |
||||
AB065B0722F3A66000418B42 /* Debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_SEARCH_USER_PATHS = NO; |
||||
CLANG_ANALYZER_NONNULL = YES; |
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
||||
CLANG_CXX_LIBRARY = "libc++"; |
||||
CLANG_ENABLE_MODULES = YES; |
||||
CLANG_ENABLE_OBJC_ARC = YES; |
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
||||
CLANG_WARN_BOOL_CONVERSION = YES; |
||||
CLANG_WARN_COMMA = YES; |
||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
||||
CLANG_WARN_EMPTY_BODY = YES; |
||||
CLANG_WARN_ENUM_CONVERSION = YES; |
||||
CLANG_WARN_INFINITE_RECURSION = YES; |
||||
CLANG_WARN_INT_CONVERSION = YES; |
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
||||
COPY_PHASE_STRIP = NO; |
||||
DEBUG_INFORMATION_FORMAT = dwarf; |
||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
||||
ENABLE_TESTABILITY = YES; |
||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
||||
GCC_DYNAMIC_NO_PIC = NO; |
||||
GCC_NO_COMMON_BLOCKS = YES; |
||||
GCC_OPTIMIZATION_LEVEL = 0; |
||||
GCC_PREPROCESSOR_DEFINITIONS = ( |
||||
"DEBUG=1", |
||||
"$(inherited)", |
||||
); |
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
||||
GCC_WARN_UNUSED_FUNCTION = YES; |
||||
GCC_WARN_UNUSED_VARIABLE = YES; |
||||
MTL_ENABLE_DEBUG_INFO = YES; |
||||
ONLY_ACTIVE_ARCH = YES; |
||||
SDKROOT = appletvos; |
||||
TVOS_DEPLOYMENT_TARGET = 11.2; |
||||
}; |
||||
name = Debug; |
||||
}; |
||||
AB065B0822F3A66000418B42 /* Release */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_SEARCH_USER_PATHS = NO; |
||||
CLANG_ANALYZER_NONNULL = YES; |
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
||||
CLANG_CXX_LIBRARY = "libc++"; |
||||
CLANG_ENABLE_MODULES = YES; |
||||
CLANG_ENABLE_OBJC_ARC = YES; |
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
||||
CLANG_WARN_BOOL_CONVERSION = YES; |
||||
CLANG_WARN_COMMA = YES; |
||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
||||
CLANG_WARN_EMPTY_BODY = YES; |
||||
CLANG_WARN_ENUM_CONVERSION = YES; |
||||
CLANG_WARN_INFINITE_RECURSION = YES; |
||||
CLANG_WARN_INT_CONVERSION = YES; |
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
||||
COPY_PHASE_STRIP = NO; |
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
||||
ENABLE_NS_ASSERTIONS = NO; |
||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
||||
GCC_NO_COMMON_BLOCKS = YES; |
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
||||
GCC_WARN_UNUSED_FUNCTION = YES; |
||||
GCC_WARN_UNUSED_VARIABLE = YES; |
||||
MTL_ENABLE_DEBUG_INFO = NO; |
||||
SDKROOT = appletvos; |
||||
TVOS_DEPLOYMENT_TARGET = 11.2; |
||||
VALIDATE_PRODUCT = YES; |
||||
}; |
||||
name = Release; |
||||
}; |
||||
AB065B0A22F3A66000418B42 /* Debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
baseConfigurationReference = 48F25040998C073D575D8368 /* Pods-tvOS-sample.debug.xcconfig */; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; |
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Developer"; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = ""; |
||||
INFOPLIST_FILE = "tvOS-sample/Info.plist"; |
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.tvOS-sample"; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
PROVISIONING_PROFILE_SPECIFIER = ""; |
||||
TARGETED_DEVICE_FAMILY = 3; |
||||
TVOS_DEPLOYMENT_TARGET = 10.0; |
||||
}; |
||||
name = Debug; |
||||
}; |
||||
AB065B0B22F3A66000418B42 /* Release */ = { |
||||
isa = XCBuildConfiguration; |
||||
baseConfigurationReference = 6DEA6A97511C324413DA4309 /* Pods-tvOS-sample.release.xcconfig */; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; |
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Developer"; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = ""; |
||||
INFOPLIST_FILE = "tvOS-sample/Info.plist"; |
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.tvOS-sample"; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
PROVISIONING_PROFILE_SPECIFIER = ""; |
||||
TARGETED_DEVICE_FAMILY = 3; |
||||
TVOS_DEPLOYMENT_TARGET = 10.0; |
||||
}; |
||||
name = Release; |
||||
}; |
||||
/* End XCBuildConfiguration section */ |
||||
|
||||
/* Begin XCConfigurationList section */ |
||||
AB065AF122F3A66000418B42 /* Build configuration list for PBXProject "tvOS-sample" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
AB065B0722F3A66000418B42 /* Debug */, |
||||
AB065B0822F3A66000418B42 /* Release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = Release; |
||||
}; |
||||
AB065B0922F3A66000418B42 /* Build configuration list for PBXNativeTarget "tvOS-sample" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
AB065B0A22F3A66000418B42 /* Debug */, |
||||
AB065B0B22F3A66000418B42 /* Release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = Release; |
||||
}; |
||||
/* End XCConfigurationList section */ |
||||
}; |
||||
rootObject = AB065AEE22F3A66000418B42 /* Project object */; |
||||
} |
@ -0,0 +1,93 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<Scheme |
||||
LastUpgradeVersion = "0920" |
||||
version = "1.3"> |
||||
<BuildAction |
||||
parallelizeBuildables = "YES" |
||||
buildImplicitDependencies = "YES"> |
||||
<BuildActionEntries> |
||||
<BuildActionEntry |
||||
buildForTesting = "YES" |
||||
buildForRunning = "YES" |
||||
buildForProfiling = "YES" |
||||
buildForArchiving = "YES" |
||||
buildForAnalyzing = "YES"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB065AF522F3A66000418B42" |
||||
BuildableName = "tvOS-sample.app" |
||||
BlueprintName = "tvOS-sample" |
||||
ReferencedContainer = "container:tvOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildActionEntry> |
||||
</BuildActionEntries> |
||||
</BuildAction> |
||||
<TestAction |
||||
buildConfiguration = "Debug" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
language = "" |
||||
shouldUseLaunchSchemeArgsEnv = "YES"> |
||||
<Testables> |
||||
</Testables> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB065AF522F3A66000418B42" |
||||
BuildableName = "tvOS-sample.app" |
||||
BlueprintName = "tvOS-sample" |
||||
ReferencedContainer = "container:tvOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</TestAction> |
||||
<LaunchAction |
||||
buildConfiguration = "Release" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
language = "" |
||||
launchStyle = "0" |
||||
useCustomWorkingDirectory = "NO" |
||||
ignoresPersistentStateOnLaunch = "NO" |
||||
debugDocumentVersioning = "YES" |
||||
debugServiceExtension = "internal" |
||||
allowLocationSimulation = "YES"> |
||||
<BuildableProductRunnable |
||||
runnableDebuggingMode = "0"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB065AF522F3A66000418B42" |
||||
BuildableName = "tvOS-sample.app" |
||||
BlueprintName = "tvOS-sample" |
||||
ReferencedContainer = "container:tvOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildableProductRunnable> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</LaunchAction> |
||||
<ProfileAction |
||||
buildConfiguration = "Release" |
||||
shouldUseLaunchSchemeArgsEnv = "YES" |
||||
savedToolIdentifier = "" |
||||
useCustomWorkingDirectory = "NO" |
||||
debugDocumentVersioning = "YES"> |
||||
<BuildableProductRunnable |
||||
runnableDebuggingMode = "0"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB065AF522F3A66000418B42" |
||||
BuildableName = "tvOS-sample.app" |
||||
BlueprintName = "tvOS-sample" |
||||
ReferencedContainer = "container:tvOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildableProductRunnable> |
||||
</ProfileAction> |
||||
<AnalyzeAction |
||||
buildConfiguration = "Debug"> |
||||
</AnalyzeAction> |
||||
<ArchiveAction |
||||
buildConfiguration = "Release" |
||||
revealArchiveInOrganizer = "YES"> |
||||
</ArchiveAction> |
||||
</Scheme> |
@ -0,0 +1,25 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <UIKit/UIKit.h> |
||||
|
||||
@interface AppDelegate : UIResponder<UIApplicationDelegate> |
||||
|
||||
@property(strong, nonatomic) UIWindow* window; |
||||
|
||||
@end |
@ -0,0 +1,27 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import "AppDelegate.h" |
||||
|
||||
@interface AppDelegate () |
||||
|
||||
@end |
||||
|
||||
@implementation AppDelegate |
||||
|
||||
@end |
@ -0,0 +1,43 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<document type="com.apple.InterfaceBuilder.AppleTV.Storyboard" version="3.0" toolsVersion="13771" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> |
||||
<device id="appleTV" orientation="landscape"> |
||||
<adaptation id="light"/> |
||||
</device> |
||||
<dependencies> |
||||
<deployment identifier="tvOS"/> |
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> |
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/> |
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
||||
</dependencies> |
||||
<scenes> |
||||
<!--View Controller--> |
||||
<scene sceneID="tne-QT-ifu"> |
||||
<objects> |
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController"> |
||||
<layoutGuides> |
||||
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> |
||||
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> |
||||
</layoutGuides> |
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> |
||||
<rect key="frame" x="0.0" y="0.0" width="1920" height="1080"/> |
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
||||
<subviews> |
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mTU-yu-aIA"> |
||||
<rect key="frame" x="838" y="497" width="246" height="86"/> |
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |
||||
<inset key="contentEdgeInsets" minX="40" minY="20" maxX="40" maxY="20"/> |
||||
<state key="normal" title="Make Call"/> |
||||
<connections> |
||||
<action selector="makeCall:" destination="BYZ-38-t0r" eventType="primaryActionTriggered" id="ZRv-7t-Fxu"/> |
||||
</connections> |
||||
</button> |
||||
</subviews> |
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/> |
||||
<viewLayoutGuide key="safeArea" id="wu6-TO-1qx"/> |
||||
</view> |
||||
</viewController> |
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> |
||||
</objects> |
||||
</scene> |
||||
</scenes> |
||||
</document> |
@ -0,0 +1,32 @@ |
||||
<?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>CFBundleDevelopmentRegion</key> |
||||
<string>$(DEVELOPMENT_LANGUAGE)</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>APPL</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>1.0</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>1</string> |
||||
<key>LSRequiresIPhoneOS</key> |
||||
<true/> |
||||
<key>UIMainStoryboardFile</key> |
||||
<string>Main</string> |
||||
<key>UIRequiredDeviceCapabilities</key> |
||||
<array> |
||||
<string>arm64</string> |
||||
</array> |
||||
<key>UIUserInterfaceStyle</key> |
||||
<string>Automatic</string> |
||||
</dict> |
||||
</plist> |
@ -0,0 +1,23 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <UIKit/UIKit.h> |
||||
|
||||
@interface ViewController : UIViewController |
||||
|
||||
@end |
@ -0,0 +1,64 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import "ViewController.h" |
||||
|
||||
#if USE_FRAMEWORKS |
||||
#import <RemoteTest/Messages.pbobjc.h> |
||||
#import <RemoteTest/Test.pbrpc.h> |
||||
#else |
||||
#import "src/objective-c/examples/RemoteTestClient/Messages.pbobjc.h" |
||||
#import "src/objective-c/examples/RemoteTestClient/Test.pbrpc.h" |
||||
#endif |
||||
|
||||
@interface ViewController ()<GRPCProtoResponseHandler> |
||||
|
||||
@end |
||||
|
||||
@implementation ViewController { |
||||
GRPCCallOptions *_options; |
||||
RMTTestService *_service; |
||||
} |
||||
|
||||
- (void)viewDidLoad { |
||||
[super viewDidLoad]; |
||||
|
||||
GRPCMutableCallOptions *options = [[GRPCMutableCallOptions alloc] init]; |
||||
_options = options; |
||||
|
||||
_service = [[RMTTestService alloc] initWithHost:@"grpc-test.sandbox.googleapis.com" |
||||
callOptions:_options]; |
||||
} |
||||
|
||||
- (IBAction)makeCall:(id)sender { |
||||
RMTSimpleRequest *request = [RMTSimpleRequest message]; |
||||
request.responseSize = 100; |
||||
GRPCUnaryProtoCall *call = |
||||
[_service unaryCallWithMessage:request responseHandler:self callOptions:nil]; |
||||
[call start]; |
||||
} |
||||
|
||||
- (void)didReceiveProtoMessage:(GPBMessage *)message { |
||||
NSLog(@"%@", [message data]); |
||||
} |
||||
|
||||
- (dispatch_queue_t)dispatchQueue { |
||||
return dispatch_get_main_queue(); |
||||
} |
||||
|
||||
@end |
@ -0,0 +1,26 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <UIKit/UIKit.h> |
||||
#import "AppDelegate.h" |
||||
|
||||
int main(int argc, char* argv[]) { |
||||
@autoreleasepool { |
||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
install! 'cocoapods', :deterministic_uuids => false |
||||
|
||||
use_frameworks! if ENV['FRAMEWORKS'] != 'NO' |
||||
|
||||
ROOT_DIR = '../../../..' |
||||
|
||||
def grpc_deps |
||||
pod 'gRPC-ProtoRPC', :path => ROOT_DIR |
||||
pod 'gRPC', :path => ROOT_DIR |
||||
pod 'gRPC-Core', :path => ROOT_DIR |
||||
pod 'gRPC-RxLibrary', :path => ROOT_DIR |
||||
pod 'RemoteTest', :path => "../RemoteTestClient" |
||||
pod '!ProtoCompiler-gRPCPlugin', :path => "#{ROOT_DIR}/src/objective-c" |
||||
pod 'BoringSSL-GRPC', :podspec => "#{ROOT_DIR}/src/objective-c" |
||||
pod '!ProtoCompiler', :path => "#{ROOT_DIR}/src/objective-c" |
||||
end |
||||
|
||||
target 'watchOS-sample' do |
||||
platform :ios, '8.0' |
||||
grpc_deps |
||||
end |
||||
|
||||
target 'watchOS-sample WatchKit Extension' do |
||||
platform :watchos, '4.0' |
||||
grpc_deps |
||||
end |
||||
|
||||
pre_install do |installer| |
||||
grpc_core_spec = installer.pod_targets.find{|t| t.name.start_with?('gRPC-Core')}.root_spec |
||||
|
||||
src_root = "$(PODS_TARGET_SRCROOT)" |
||||
grpc_core_spec.pod_target_xcconfig = { |
||||
'GRPC_SRC_ROOT' => src_root, |
||||
'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(GRPC_SRC_ROOT)/include"', |
||||
'USER_HEADER_SEARCH_PATHS' => '"$(GRPC_SRC_ROOT)"', |
||||
# If we don't set these two settings, `include/grpc/support/time.h` and |
||||
# `src/core/lib/gpr/string.h` shadow the system `<time.h>` and `<string.h>`, breaking the |
||||
# build. |
||||
'USE_HEADERMAP' => 'NO', |
||||
'ALWAYS_SEARCH_USER_PATHS' => 'NO', |
||||
} |
||||
end |
||||
|
@ -0,0 +1,60 @@ |
||||
{ |
||||
"images" : [ |
||||
{ |
||||
"size" : "24x24", |
||||
"idiom" : "watch", |
||||
"scale" : "2x", |
||||
"role" : "notificationCenter", |
||||
"subtype" : "38mm" |
||||
}, |
||||
{ |
||||
"size" : "27.5x27.5", |
||||
"idiom" : "watch", |
||||
"scale" : "2x", |
||||
"role" : "notificationCenter", |
||||
"subtype" : "42mm" |
||||
}, |
||||
{ |
||||
"size" : "29x29", |
||||
"idiom" : "watch", |
||||
"role" : "companionSettings", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "29x29", |
||||
"idiom" : "watch", |
||||
"role" : "companionSettings", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"size" : "40x40", |
||||
"idiom" : "watch", |
||||
"scale" : "2x", |
||||
"role" : "appLauncher", |
||||
"subtype" : "38mm" |
||||
}, |
||||
{ |
||||
"size" : "86x86", |
||||
"idiom" : "watch", |
||||
"scale" : "2x", |
||||
"role" : "quickLook", |
||||
"subtype" : "38mm" |
||||
}, |
||||
{ |
||||
"size" : "98x98", |
||||
"idiom" : "watch", |
||||
"scale" : "2x", |
||||
"role" : "quickLook", |
||||
"subtype" : "42mm" |
||||
}, |
||||
{ |
||||
"idiom" : "watch-marketing", |
||||
"size" : "1024x1024", |
||||
"scale" : "1x" |
||||
} |
||||
], |
||||
"info" : { |
||||
"version" : 1, |
||||
"author" : "xcode" |
||||
} |
||||
} |
@ -0,0 +1,27 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="13771" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="AgC-eL-Hgc"> |
||||
<device id="watch38" orientation="portrait"> |
||||
<adaptation id="fullscreen"/> |
||||
</device> |
||||
<dependencies> |
||||
<deployment identifier="watchOS"/> |
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> |
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBWatchKitPlugin" version="13756"/> |
||||
</dependencies> |
||||
<scenes> |
||||
<!--Interface Controller--> |
||||
<scene sceneID="aou-V4-d1y"> |
||||
<objects> |
||||
<controller id="AgC-eL-Hgc" customClass="InterfaceController"> |
||||
<items> |
||||
<button width="1" alignment="left" title="Make Call" id="4Wq-ol-07z"> |
||||
<connections> |
||||
<action selector="makeCall" destination="AgC-eL-Hgc" id="qGH-2i-3Os"/> |
||||
</connections> |
||||
</button> |
||||
</items> |
||||
</controller> |
||||
</objects> |
||||
</scene> |
||||
</scenes> |
||||
</document> |
@ -0,0 +1,33 @@ |
||||
<?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>CFBundleDevelopmentRegion</key> |
||||
<string>$(DEVELOPMENT_LANGUAGE)</string> |
||||
<key>CFBundleDisplayName</key> |
||||
<string>WatchKit-App</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>APPL</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>1.0</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>1</string> |
||||
<key>UISupportedInterfaceOrientations</key> |
||||
<array> |
||||
<string>UIInterfaceOrientationPortrait</string> |
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string> |
||||
</array> |
||||
<key>WKCompanionAppBundleIdentifier</key> |
||||
<string>com.google.watchOS-sample</string> |
||||
<key>WKWatchKitApp</key> |
||||
<true/> |
||||
</dict> |
||||
</plist> |
@ -0,0 +1,23 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <WatchKit/WatchKit.h> |
||||
|
||||
@interface ExtensionDelegate : NSObject<WKExtensionDelegate> |
||||
|
||||
@end |
@ -0,0 +1,23 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import "ExtensionDelegate.h" |
||||
|
||||
@implementation ExtensionDelegate |
||||
|
||||
@end |
@ -0,0 +1,36 @@ |
||||
<?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>CFBundleDevelopmentRegion</key> |
||||
<string>$(DEVELOPMENT_LANGUAGE)</string> |
||||
<key>CFBundleDisplayName</key> |
||||
<string>watchOS-sample WatchKit Extension</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>XPC!</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>1.0</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>1</string> |
||||
<key>NSExtension</key> |
||||
<dict> |
||||
<key>NSExtensionAttributes</key> |
||||
<dict> |
||||
<key>WKAppBundleIdentifier</key> |
||||
<string>com.google.watchOS-sample.watchkitapp</string> |
||||
</dict> |
||||
<key>NSExtensionPointIdentifier</key> |
||||
<string>com.apple.watchkit</string> |
||||
</dict> |
||||
<key>WKExtensionDelegateClassName</key> |
||||
<string>ExtensionDelegate</string> |
||||
</dict> |
||||
</plist> |
@ -0,0 +1,24 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <Foundation/Foundation.h> |
||||
#import <WatchKit/WatchKit.h> |
||||
|
||||
@interface InterfaceController : WKInterfaceController |
||||
|
||||
@end |
@ -0,0 +1,65 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
#import "InterfaceController.h" |
||||
|
||||
#if USE_FRAMEWORKS |
||||
#import <RemoteTest/Messages.pbobjc.h> |
||||
#import <RemoteTest/Test.pbrpc.h> |
||||
#else |
||||
#import "src/objective-c/examples/RemoteTestClient/Messages.pbobjc.h" |
||||
#import "src/objective-c/examples/RemoteTestClient/Test.pbrpc.h" |
||||
#endif |
||||
|
||||
@interface InterfaceController ()<GRPCProtoResponseHandler> |
||||
|
||||
@end |
||||
|
||||
@implementation InterfaceController { |
||||
GRPCCallOptions *_options; |
||||
RMTTestService *_service; |
||||
} |
||||
|
||||
- (void)awakeWithContext:(id)context { |
||||
[super awakeWithContext:context]; |
||||
|
||||
// Configure interface objects here. |
||||
|
||||
GRPCMutableCallOptions *options = [[GRPCMutableCallOptions alloc] init]; |
||||
_options = options; |
||||
|
||||
_service = [[RMTTestService alloc] initWithHost:@"grpc-test.sandbox.googleapis.com" |
||||
callOptions:_options]; |
||||
} |
||||
|
||||
- (IBAction)makeCall { |
||||
RMTSimpleRequest *request = [RMTSimpleRequest message]; |
||||
request.responseSize = 100; |
||||
GRPCUnaryProtoCall *call = |
||||
[_service unaryCallWithMessage:request responseHandler:self callOptions:nil]; |
||||
[call start]; |
||||
} |
||||
|
||||
- (void)didReceiveProtoMessage:(GPBMessage *)message { |
||||
NSLog(@"%@", [message data]); |
||||
} |
||||
|
||||
- (dispatch_queue_t)dispatchQueue { |
||||
return dispatch_get_main_queue(); |
||||
} |
||||
|
||||
@end |
@ -0,0 +1,811 @@ |
||||
// !$*UTF8*$! |
||||
{ |
||||
archiveVersion = 1; |
||||
classes = { |
||||
}; |
||||
objectVersion = 48; |
||||
objects = { |
||||
|
||||
/* Begin PBXBuildFile section */ |
||||
6DC02D8E4E24CB3EAAA9C0F7 /* libPods-watchOS-sample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D836D6D1793B03D9D9A05E4 /* libPods-watchOS-sample.a */; }; |
||||
AB35433822F3A88000C1B2E9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AB35433722F3A88000C1B2E9 /* AppDelegate.m */; }; |
||||
AB35433B22F3A88000C1B2E9 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AB35433A22F3A88000C1B2E9 /* ViewController.m */; }; |
||||
AB35433E22F3A88000C1B2E9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB35433C22F3A88000C1B2E9 /* Main.storyboard */; }; |
||||
AB35434022F3A88000C1B2E9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB35433F22F3A88000C1B2E9 /* Assets.xcassets */; }; |
||||
AB35434322F3A88000C1B2E9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB35434122F3A88000C1B2E9 /* LaunchScreen.storyboard */; }; |
||||
AB35434622F3A88000C1B2E9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AB35434522F3A88000C1B2E9 /* main.m */; }; |
||||
AB35434A22F3A88000C1B2E9 /* watchOS-sample WatchKit App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = AB35434922F3A88000C1B2E9 /* watchOS-sample WatchKit App.app */; }; |
||||
AB35435022F3A88000C1B2E9 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AB35434E22F3A88000C1B2E9 /* Interface.storyboard */; }; |
||||
AB35435222F3A88000C1B2E9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AB35435122F3A88000C1B2E9 /* Assets.xcassets */; }; |
||||
AB35435922F3A88000C1B2E9 /* watchOS-sample WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = AB35435822F3A88000C1B2E9 /* watchOS-sample WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; |
||||
AB35435F22F3A88000C1B2E9 /* InterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = AB35435E22F3A88000C1B2E9 /* InterfaceController.m */; }; |
||||
AB35436222F3A88000C1B2E9 /* ExtensionDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AB35436122F3A88000C1B2E9 /* ExtensionDelegate.m */; }; |
||||
FF523208A6A52E881C6C4CA2 /* libPods-watchOS-sample WatchKit Extension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C68E1F9D1CE4435317B0009 /* libPods-watchOS-sample WatchKit Extension.a */; }; |
||||
/* End PBXBuildFile section */ |
||||
|
||||
/* Begin PBXContainerItemProxy section */ |
||||
AB35434B22F3A88000C1B2E9 /* PBXContainerItemProxy */ = { |
||||
isa = PBXContainerItemProxy; |
||||
containerPortal = AB35432B22F3A88000C1B2E9 /* Project object */; |
||||
proxyType = 1; |
||||
remoteGlobalIDString = AB35434822F3A88000C1B2E9; |
||||
remoteInfo = "watchOS-sample WatchKit App"; |
||||
}; |
||||
AB35435A22F3A88000C1B2E9 /* PBXContainerItemProxy */ = { |
||||
isa = PBXContainerItemProxy; |
||||
containerPortal = AB35432B22F3A88000C1B2E9 /* Project object */; |
||||
proxyType = 1; |
||||
remoteGlobalIDString = AB35435722F3A88000C1B2E9; |
||||
remoteInfo = "watchOS-sample WatchKit Extension"; |
||||
}; |
||||
/* End PBXContainerItemProxy section */ |
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */ |
||||
AB35436B22F3A88000C1B2E9 /* Embed App Extensions */ = { |
||||
isa = PBXCopyFilesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
dstPath = ""; |
||||
dstSubfolderSpec = 13; |
||||
files = ( |
||||
AB35435922F3A88000C1B2E9 /* watchOS-sample WatchKit Extension.appex in Embed App Extensions */, |
||||
); |
||||
name = "Embed App Extensions"; |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
AB35436F22F3A88000C1B2E9 /* Embed Watch Content */ = { |
||||
isa = PBXCopyFilesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; |
||||
dstSubfolderSpec = 16; |
||||
files = ( |
||||
AB35434A22F3A88000C1B2E9 /* watchOS-sample WatchKit App.app in Embed Watch Content */, |
||||
); |
||||
name = "Embed Watch Content"; |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXCopyFilesBuildPhase section */ |
||||
|
||||
/* Begin PBXFileReference section */ |
||||
0980DE37FA805E61D7665FC3 /* Pods-watchOS-sample WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-sample WatchKit Extension.release.xcconfig"; path = "Pods/Target Support Files/Pods-watchOS-sample WatchKit Extension/Pods-watchOS-sample WatchKit Extension.release.xcconfig"; sourceTree = "<group>"; }; |
||||
0E281AAFDD87686AFF4DA811 /* Pods-watchOS-sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-sample.release.xcconfig"; path = "Pods/Target Support Files/Pods-watchOS-sample/Pods-watchOS-sample.release.xcconfig"; sourceTree = "<group>"; }; |
||||
2D836D6D1793B03D9D9A05E4 /* libPods-watchOS-sample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-watchOS-sample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
4C68E1F9D1CE4435317B0009 /* libPods-watchOS-sample WatchKit Extension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-watchOS-sample WatchKit Extension.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
9760150292F726236301FFB4 /* Pods-watchOS-sample WatchKit Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-sample WatchKit Extension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-watchOS-sample WatchKit Extension/Pods-watchOS-sample WatchKit Extension.debug.xcconfig"; sourceTree = "<group>"; }; |
||||
AB35433322F3A88000C1B2E9 /* watchOS-sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "watchOS-sample.app"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
AB35433622F3A88000C1B2E9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; |
||||
AB35433722F3A88000C1B2E9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; |
||||
AB35433922F3A88000C1B2E9 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; |
||||
AB35433A22F3A88000C1B2E9 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; |
||||
AB35433D22F3A88000C1B2E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; |
||||
AB35433F22F3A88000C1B2E9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; |
||||
AB35434222F3A88000C1B2E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; |
||||
AB35434422F3A88000C1B2E9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
||||
AB35434522F3A88000C1B2E9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; |
||||
AB35434922F3A88000C1B2E9 /* watchOS-sample WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "watchOS-sample WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
AB35434F22F3A88000C1B2E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; }; |
||||
AB35435122F3A88000C1B2E9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; |
||||
AB35435322F3A88000C1B2E9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
||||
AB35435822F3A88000C1B2E9 /* watchOS-sample WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "watchOS-sample WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
AB35435D22F3A88000C1B2E9 /* InterfaceController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterfaceController.h; sourceTree = "<group>"; }; |
||||
AB35435E22F3A88000C1B2E9 /* InterfaceController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterfaceController.m; sourceTree = "<group>"; }; |
||||
AB35436022F3A88000C1B2E9 /* ExtensionDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtensionDelegate.h; sourceTree = "<group>"; }; |
||||
AB35436122F3A88000C1B2E9 /* ExtensionDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExtensionDelegate.m; sourceTree = "<group>"; }; |
||||
AB35436522F3A88000C1B2E9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
||||
B04FF36D5367E20E26B17EE8 /* Pods-watchOS-sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-sample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-watchOS-sample/Pods-watchOS-sample.debug.xcconfig"; sourceTree = "<group>"; }; |
||||
/* End PBXFileReference section */ |
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */ |
||||
23B5B63423F9068CAAF8C6A8 /* Frameworks */ = { |
||||
isa = PBXFrameworksBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
AB35433022F3A88000C1B2E9 /* Frameworks */ = { |
||||
isa = PBXFrameworksBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
6DC02D8E4E24CB3EAAA9C0F7 /* libPods-watchOS-sample.a in Frameworks */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
AB35435522F3A88000C1B2E9 /* Frameworks */ = { |
||||
isa = PBXFrameworksBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
FF523208A6A52E881C6C4CA2 /* libPods-watchOS-sample WatchKit Extension.a in Frameworks */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXFrameworksBuildPhase section */ |
||||
|
||||
/* Begin PBXGroup section */ |
||||
38A0EA6120D821E9244482B4 /* Frameworks */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
2D836D6D1793B03D9D9A05E4 /* libPods-watchOS-sample.a */, |
||||
4C68E1F9D1CE4435317B0009 /* libPods-watchOS-sample WatchKit Extension.a */, |
||||
); |
||||
name = Frameworks; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
93EDCC6DB32E10D3C92C69E5 /* Pods */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
B04FF36D5367E20E26B17EE8 /* Pods-watchOS-sample.debug.xcconfig */, |
||||
0E281AAFDD87686AFF4DA811 /* Pods-watchOS-sample.release.xcconfig */, |
||||
9760150292F726236301FFB4 /* Pods-watchOS-sample WatchKit Extension.debug.xcconfig */, |
||||
0980DE37FA805E61D7665FC3 /* Pods-watchOS-sample WatchKit Extension.release.xcconfig */, |
||||
); |
||||
name = Pods; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35432A22F3A88000C1B2E9 = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB35433522F3A88000C1B2E9 /* watchOS-sample */, |
||||
AB35434D22F3A88000C1B2E9 /* WatchKit-App */, |
||||
AB35435C22F3A88000C1B2E9 /* WatchKit-Extension */, |
||||
AB35433422F3A88000C1B2E9 /* Products */, |
||||
93EDCC6DB32E10D3C92C69E5 /* Pods */, |
||||
38A0EA6120D821E9244482B4 /* Frameworks */, |
||||
); |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35433422F3A88000C1B2E9 /* Products */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB35433322F3A88000C1B2E9 /* watchOS-sample.app */, |
||||
AB35434922F3A88000C1B2E9 /* watchOS-sample WatchKit App.app */, |
||||
AB35435822F3A88000C1B2E9 /* watchOS-sample WatchKit Extension.appex */, |
||||
); |
||||
name = Products; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35433522F3A88000C1B2E9 /* watchOS-sample */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB35433622F3A88000C1B2E9 /* AppDelegate.h */, |
||||
AB35433722F3A88000C1B2E9 /* AppDelegate.m */, |
||||
AB35433922F3A88000C1B2E9 /* ViewController.h */, |
||||
AB35433A22F3A88000C1B2E9 /* ViewController.m */, |
||||
AB35433C22F3A88000C1B2E9 /* Main.storyboard */, |
||||
AB35433F22F3A88000C1B2E9 /* Assets.xcassets */, |
||||
AB35434122F3A88000C1B2E9 /* LaunchScreen.storyboard */, |
||||
AB35434422F3A88000C1B2E9 /* Info.plist */, |
||||
AB35434522F3A88000C1B2E9 /* main.m */, |
||||
); |
||||
path = "watchOS-sample"; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35434D22F3A88000C1B2E9 /* WatchKit-App */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB35434E22F3A88000C1B2E9 /* Interface.storyboard */, |
||||
AB35435122F3A88000C1B2E9 /* Assets.xcassets */, |
||||
AB35435322F3A88000C1B2E9 /* Info.plist */, |
||||
); |
||||
path = "WatchKit-App"; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35435C22F3A88000C1B2E9 /* WatchKit-Extension */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
AB35435D22F3A88000C1B2E9 /* InterfaceController.h */, |
||||
AB35435E22F3A88000C1B2E9 /* InterfaceController.m */, |
||||
AB35436022F3A88000C1B2E9 /* ExtensionDelegate.h */, |
||||
AB35436122F3A88000C1B2E9 /* ExtensionDelegate.m */, |
||||
AB35436522F3A88000C1B2E9 /* Info.plist */, |
||||
); |
||||
path = "WatchKit-Extension"; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
/* End PBXGroup section */ |
||||
|
||||
/* Begin PBXNativeTarget section */ |
||||
AB35433222F3A88000C1B2E9 /* watchOS-sample */ = { |
||||
isa = PBXNativeTarget; |
||||
buildConfigurationList = AB35437022F3A88000C1B2E9 /* Build configuration list for PBXNativeTarget "watchOS-sample" */; |
||||
buildPhases = ( |
||||
7CBBF7FBEB5B8AB30A349E22 /* [CP] Check Pods Manifest.lock */, |
||||
AB35432F22F3A88000C1B2E9 /* Sources */, |
||||
AB35433022F3A88000C1B2E9 /* Frameworks */, |
||||
AB35433122F3A88000C1B2E9 /* Resources */, |
||||
AB35436F22F3A88000C1B2E9 /* Embed Watch Content */, |
||||
5644E359E6C67CF9FD7B659D /* [CP] Embed Pods Frameworks */, |
||||
42609F71FF3FEF23C402967B /* [CP] Copy Pods Resources */, |
||||
); |
||||
buildRules = ( |
||||
); |
||||
dependencies = ( |
||||
AB35434C22F3A88000C1B2E9 /* PBXTargetDependency */, |
||||
); |
||||
name = "watchOS-sample"; |
||||
productName = "watchOS-sample"; |
||||
productReference = AB35433322F3A88000C1B2E9 /* watchOS-sample.app */; |
||||
productType = "com.apple.product-type.application"; |
||||
}; |
||||
AB35434822F3A88000C1B2E9 /* watchOS-sample WatchKit App */ = { |
||||
isa = PBXNativeTarget; |
||||
buildConfigurationList = AB35436C22F3A88000C1B2E9 /* Build configuration list for PBXNativeTarget "watchOS-sample WatchKit App" */; |
||||
buildPhases = ( |
||||
AB35434722F3A88000C1B2E9 /* Resources */, |
||||
AB35436B22F3A88000C1B2E9 /* Embed App Extensions */, |
||||
23B5B63423F9068CAAF8C6A8 /* Frameworks */, |
||||
); |
||||
buildRules = ( |
||||
); |
||||
dependencies = ( |
||||
AB35435B22F3A88000C1B2E9 /* PBXTargetDependency */, |
||||
); |
||||
name = "watchOS-sample WatchKit App"; |
||||
productName = "watchOS-sample WatchKit App"; |
||||
productReference = AB35434922F3A88000C1B2E9 /* watchOS-sample WatchKit App.app */; |
||||
productType = "com.apple.product-type.application.watchapp2"; |
||||
}; |
||||
AB35435722F3A88000C1B2E9 /* watchOS-sample WatchKit Extension */ = { |
||||
isa = PBXNativeTarget; |
||||
buildConfigurationList = AB35436822F3A88000C1B2E9 /* Build configuration list for PBXNativeTarget "watchOS-sample WatchKit Extension" */; |
||||
buildPhases = ( |
||||
C80BFB1E1525B018E6C87AF0 /* [CP] Check Pods Manifest.lock */, |
||||
AB35435422F3A88000C1B2E9 /* Sources */, |
||||
AB35435522F3A88000C1B2E9 /* Frameworks */, |
||||
AB35435622F3A88000C1B2E9 /* Resources */, |
||||
E0C622F545CB8A6103793708 /* [CP] Embed Pods Frameworks */, |
||||
D202361DA337959ACDB8D358 /* [CP] Copy Pods Resources */, |
||||
); |
||||
buildRules = ( |
||||
); |
||||
dependencies = ( |
||||
); |
||||
name = "watchOS-sample WatchKit Extension"; |
||||
productName = "watchOS-sample WatchKit Extension"; |
||||
productReference = AB35435822F3A88000C1B2E9 /* watchOS-sample WatchKit Extension.appex */; |
||||
productType = "com.apple.product-type.watchkit2-extension"; |
||||
}; |
||||
/* End PBXNativeTarget section */ |
||||
|
||||
/* Begin PBXProject section */ |
||||
AB35432B22F3A88000C1B2E9 /* Project object */ = { |
||||
isa = PBXProject; |
||||
attributes = { |
||||
LastUpgradeCheck = 0920; |
||||
ORGANIZATIONNAME = "Tony Lu"; |
||||
TargetAttributes = { |
||||
AB35433222F3A88000C1B2E9 = { |
||||
CreatedOnToolsVersion = 9.2; |
||||
ProvisioningStyle = Automatic; |
||||
}; |
||||
AB35434822F3A88000C1B2E9 = { |
||||
CreatedOnToolsVersion = 9.2; |
||||
ProvisioningStyle = Automatic; |
||||
}; |
||||
AB35435722F3A88000C1B2E9 = { |
||||
CreatedOnToolsVersion = 9.2; |
||||
ProvisioningStyle = Automatic; |
||||
}; |
||||
}; |
||||
}; |
||||
buildConfigurationList = AB35432E22F3A88000C1B2E9 /* Build configuration list for PBXProject "watchOS-sample" */; |
||||
compatibilityVersion = "Xcode 8.0"; |
||||
developmentRegion = en; |
||||
hasScannedForEncodings = 0; |
||||
knownRegions = ( |
||||
en, |
||||
Base, |
||||
); |
||||
mainGroup = AB35432A22F3A88000C1B2E9; |
||||
productRefGroup = AB35433422F3A88000C1B2E9 /* Products */; |
||||
projectDirPath = ""; |
||||
projectRoot = ""; |
||||
targets = ( |
||||
AB35433222F3A88000C1B2E9 /* watchOS-sample */, |
||||
AB35434822F3A88000C1B2E9 /* watchOS-sample WatchKit App */, |
||||
AB35435722F3A88000C1B2E9 /* watchOS-sample WatchKit Extension */, |
||||
); |
||||
}; |
||||
/* End PBXProject section */ |
||||
|
||||
/* Begin PBXResourcesBuildPhase section */ |
||||
AB35433122F3A88000C1B2E9 /* Resources */ = { |
||||
isa = PBXResourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
AB35434322F3A88000C1B2E9 /* LaunchScreen.storyboard in Resources */, |
||||
AB35434022F3A88000C1B2E9 /* Assets.xcassets in Resources */, |
||||
AB35433E22F3A88000C1B2E9 /* Main.storyboard in Resources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
AB35434722F3A88000C1B2E9 /* Resources */ = { |
||||
isa = PBXResourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
AB35435222F3A88000C1B2E9 /* Assets.xcassets in Resources */, |
||||
AB35435022F3A88000C1B2E9 /* Interface.storyboard in Resources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
AB35435622F3A88000C1B2E9 /* Resources */ = { |
||||
isa = PBXResourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXResourcesBuildPhase section */ |
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */ |
||||
42609F71FF3FEF23C402967B /* [CP] Copy Pods Resources */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputFileListPaths = ( |
||||
); |
||||
inputPaths = ( |
||||
"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample/Pods-watchOS-sample-resources.sh", |
||||
"$PODS_CONFIGURATION_BUILD_DIR/gRPC-iOS/gRPCCertificates.bundle", |
||||
); |
||||
name = "[CP] Copy Pods Resources"; |
||||
outputFileListPaths = ( |
||||
); |
||||
outputPaths = ( |
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample/Pods-watchOS-sample-resources.sh\"\n"; |
||||
showEnvVarsInLog = 0; |
||||
}; |
||||
5644E359E6C67CF9FD7B659D /* [CP] Embed Pods Frameworks */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputFileListPaths = ( |
||||
); |
||||
inputPaths = ( |
||||
"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample/Pods-watchOS-sample-frameworks.sh", |
||||
"${BUILT_PRODUCTS_DIR}/BoringSSL-GRPC-iOS/openssl_grpc.framework", |
||||
"${BUILT_PRODUCTS_DIR}/Protobuf-iOS/Protobuf.framework", |
||||
"${BUILT_PRODUCTS_DIR}/RemoteTest-iOS/RemoteTest.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-iOS/GRPCClient.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-Core-iOS/grpc.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-ProtoRPC-iOS/ProtoRPC.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-RxLibrary-iOS/RxLibrary.framework", |
||||
"${BUILT_PRODUCTS_DIR}/nanopb-iOS/nanopb.framework", |
||||
); |
||||
name = "[CP] Embed Pods Frameworks"; |
||||
outputFileListPaths = ( |
||||
); |
||||
outputPaths = ( |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl_grpc.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RemoteTest.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GRPCClient.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpc.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ProtoRPC.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxLibrary.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample/Pods-watchOS-sample-frameworks.sh\"\n"; |
||||
showEnvVarsInLog = 0; |
||||
}; |
||||
7CBBF7FBEB5B8AB30A349E22 /* [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-watchOS-sample-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; |
||||
}; |
||||
C80BFB1E1525B018E6C87AF0 /* [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-watchOS-sample WatchKit Extension-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; |
||||
}; |
||||
D202361DA337959ACDB8D358 /* [CP] Copy Pods Resources */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputFileListPaths = ( |
||||
); |
||||
inputPaths = ( |
||||
"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample WatchKit Extension/Pods-watchOS-sample WatchKit Extension-resources.sh", |
||||
"$PODS_CONFIGURATION_BUILD_DIR/gRPC-watchOS/gRPCCertificates.bundle", |
||||
); |
||||
name = "[CP] Copy Pods Resources"; |
||||
outputFileListPaths = ( |
||||
); |
||||
outputPaths = ( |
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample WatchKit Extension/Pods-watchOS-sample WatchKit Extension-resources.sh\"\n"; |
||||
showEnvVarsInLog = 0; |
||||
}; |
||||
E0C622F545CB8A6103793708 /* [CP] Embed Pods Frameworks */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputFileListPaths = ( |
||||
); |
||||
inputPaths = ( |
||||
"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample WatchKit Extension/Pods-watchOS-sample WatchKit Extension-frameworks.sh", |
||||
"${BUILT_PRODUCTS_DIR}/BoringSSL-GRPC-watchOS/openssl_grpc.framework", |
||||
"${BUILT_PRODUCTS_DIR}/Protobuf-watchOS/Protobuf.framework", |
||||
"${BUILT_PRODUCTS_DIR}/RemoteTest-watchOS/RemoteTest.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-watchOS/GRPCClient.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-Core-watchOS/grpc.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-ProtoRPC-watchOS/ProtoRPC.framework", |
||||
"${BUILT_PRODUCTS_DIR}/gRPC-RxLibrary-watchOS/RxLibrary.framework", |
||||
"${BUILT_PRODUCTS_DIR}/nanopb-watchOS/nanopb.framework", |
||||
); |
||||
name = "[CP] Embed Pods Frameworks"; |
||||
outputFileListPaths = ( |
||||
); |
||||
outputPaths = ( |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl_grpc.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RemoteTest.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GRPCClient.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpc.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ProtoRPC.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxLibrary.framework", |
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-watchOS-sample WatchKit Extension/Pods-watchOS-sample WatchKit Extension-frameworks.sh\"\n"; |
||||
showEnvVarsInLog = 0; |
||||
}; |
||||
/* End PBXShellScriptBuildPhase section */ |
||||
|
||||
/* Begin PBXSourcesBuildPhase section */ |
||||
AB35432F22F3A88000C1B2E9 /* Sources */ = { |
||||
isa = PBXSourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
AB35433B22F3A88000C1B2E9 /* ViewController.m in Sources */, |
||||
AB35434622F3A88000C1B2E9 /* main.m in Sources */, |
||||
AB35433822F3A88000C1B2E9 /* AppDelegate.m in Sources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
AB35435422F3A88000C1B2E9 /* Sources */ = { |
||||
isa = PBXSourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
AB35436222F3A88000C1B2E9 /* ExtensionDelegate.m in Sources */, |
||||
AB35435F22F3A88000C1B2E9 /* InterfaceController.m in Sources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXSourcesBuildPhase section */ |
||||
|
||||
/* Begin PBXTargetDependency section */ |
||||
AB35434C22F3A88000C1B2E9 /* PBXTargetDependency */ = { |
||||
isa = PBXTargetDependency; |
||||
target = AB35434822F3A88000C1B2E9 /* watchOS-sample WatchKit App */; |
||||
targetProxy = AB35434B22F3A88000C1B2E9 /* PBXContainerItemProxy */; |
||||
}; |
||||
AB35435B22F3A88000C1B2E9 /* PBXTargetDependency */ = { |
||||
isa = PBXTargetDependency; |
||||
target = AB35435722F3A88000C1B2E9 /* watchOS-sample WatchKit Extension */; |
||||
targetProxy = AB35435A22F3A88000C1B2E9 /* PBXContainerItemProxy */; |
||||
}; |
||||
/* End PBXTargetDependency section */ |
||||
|
||||
/* Begin PBXVariantGroup section */ |
||||
AB35433C22F3A88000C1B2E9 /* Main.storyboard */ = { |
||||
isa = PBXVariantGroup; |
||||
children = ( |
||||
AB35433D22F3A88000C1B2E9 /* Base */, |
||||
); |
||||
name = Main.storyboard; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35434122F3A88000C1B2E9 /* LaunchScreen.storyboard */ = { |
||||
isa = PBXVariantGroup; |
||||
children = ( |
||||
AB35434222F3A88000C1B2E9 /* Base */, |
||||
); |
||||
name = LaunchScreen.storyboard; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
AB35434E22F3A88000C1B2E9 /* Interface.storyboard */ = { |
||||
isa = PBXVariantGroup; |
||||
children = ( |
||||
AB35434F22F3A88000C1B2E9 /* Base */, |
||||
); |
||||
name = Interface.storyboard; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
/* End PBXVariantGroup section */ |
||||
|
||||
/* Begin XCBuildConfiguration section */ |
||||
AB35436622F3A88000C1B2E9 /* Debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_SEARCH_USER_PATHS = NO; |
||||
CLANG_ANALYZER_NONNULL = YES; |
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
||||
CLANG_CXX_LIBRARY = "libc++"; |
||||
CLANG_ENABLE_MODULES = YES; |
||||
CLANG_ENABLE_OBJC_ARC = YES; |
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
||||
CLANG_WARN_BOOL_CONVERSION = YES; |
||||
CLANG_WARN_COMMA = YES; |
||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
||||
CLANG_WARN_EMPTY_BODY = YES; |
||||
CLANG_WARN_ENUM_CONVERSION = YES; |
||||
CLANG_WARN_INFINITE_RECURSION = YES; |
||||
CLANG_WARN_INT_CONVERSION = YES; |
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
||||
CODE_SIGN_IDENTITY = "iPhone Developer"; |
||||
COPY_PHASE_STRIP = NO; |
||||
DEBUG_INFORMATION_FORMAT = dwarf; |
||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
||||
ENABLE_TESTABILITY = YES; |
||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
||||
GCC_DYNAMIC_NO_PIC = NO; |
||||
GCC_NO_COMMON_BLOCKS = YES; |
||||
GCC_OPTIMIZATION_LEVEL = 0; |
||||
GCC_PREPROCESSOR_DEFINITIONS = ( |
||||
"DEBUG=1", |
||||
"$(inherited)", |
||||
); |
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
||||
GCC_WARN_UNUSED_FUNCTION = YES; |
||||
GCC_WARN_UNUSED_VARIABLE = YES; |
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2; |
||||
MTL_ENABLE_DEBUG_INFO = YES; |
||||
ONLY_ACTIVE_ARCH = YES; |
||||
SDKROOT = iphoneos; |
||||
}; |
||||
name = Debug; |
||||
}; |
||||
AB35436722F3A88000C1B2E9 /* Release */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_SEARCH_USER_PATHS = NO; |
||||
CLANG_ANALYZER_NONNULL = YES; |
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
||||
CLANG_CXX_LIBRARY = "libc++"; |
||||
CLANG_ENABLE_MODULES = YES; |
||||
CLANG_ENABLE_OBJC_ARC = YES; |
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
||||
CLANG_WARN_BOOL_CONVERSION = YES; |
||||
CLANG_WARN_COMMA = YES; |
||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
||||
CLANG_WARN_EMPTY_BODY = YES; |
||||
CLANG_WARN_ENUM_CONVERSION = YES; |
||||
CLANG_WARN_INFINITE_RECURSION = YES; |
||||
CLANG_WARN_INT_CONVERSION = YES; |
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
||||
CODE_SIGN_IDENTITY = "iPhone Developer"; |
||||
COPY_PHASE_STRIP = NO; |
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
||||
ENABLE_NS_ASSERTIONS = NO; |
||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
||||
GCC_NO_COMMON_BLOCKS = YES; |
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
||||
GCC_WARN_UNUSED_FUNCTION = YES; |
||||
GCC_WARN_UNUSED_VARIABLE = YES; |
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2; |
||||
MTL_ENABLE_DEBUG_INFO = NO; |
||||
SDKROOT = iphoneos; |
||||
VALIDATE_PRODUCT = YES; |
||||
}; |
||||
name = Release; |
||||
}; |
||||
AB35436922F3A88000C1B2E9 /* Debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
baseConfigurationReference = 9760150292F726236301FFB4 /* Pods-watchOS-sample WatchKit Extension.debug.xcconfig */; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
||||
INFOPLIST_FILE = "$(SRCROOT)/WatchKit-Extension/Info.plist"; |
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.watchOS-sample.watchkitapp.watchkitextension"; |
||||
PRODUCT_NAME = "${TARGET_NAME}"; |
||||
SDKROOT = watchos; |
||||
SKIP_INSTALL = YES; |
||||
TARGETED_DEVICE_FAMILY = 4; |
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0; |
||||
}; |
||||
name = Debug; |
||||
}; |
||||
AB35436A22F3A88000C1B2E9 /* Release */ = { |
||||
isa = XCBuildConfiguration; |
||||
baseConfigurationReference = 0980DE37FA805E61D7665FC3 /* Pods-watchOS-sample WatchKit Extension.release.xcconfig */; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
||||
INFOPLIST_FILE = "$(SRCROOT)/WatchKit-Extension/Info.plist"; |
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.watchOS-sample.watchkitapp.watchkitextension"; |
||||
PRODUCT_NAME = "${TARGET_NAME}"; |
||||
SDKROOT = watchos; |
||||
SKIP_INSTALL = YES; |
||||
TARGETED_DEVICE_FAMILY = 4; |
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0; |
||||
}; |
||||
name = Release; |
||||
}; |
||||
AB35436D22F3A88000C1B2E9 /* Debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
||||
IBSC_MODULE = watchOS_sample_WatchKit_Extension; |
||||
INFOPLIST_FILE = "$(SRCROOT)/WatchKit-App/Info.plist"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.watchOS-sample.watchkitapp"; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
SDKROOT = watchos; |
||||
SKIP_INSTALL = YES; |
||||
TARGETED_DEVICE_FAMILY = 4; |
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0; |
||||
}; |
||||
name = Debug; |
||||
}; |
||||
AB35436E22F3A88000C1B2E9 /* Release */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
||||
IBSC_MODULE = watchOS_sample_WatchKit_Extension; |
||||
INFOPLIST_FILE = "$(SRCROOT)/WatchKit-App/Info.plist"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.watchOS-sample.watchkitapp"; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
SDKROOT = watchos; |
||||
SKIP_INSTALL = YES; |
||||
TARGETED_DEVICE_FAMILY = 4; |
||||
WATCHOS_DEPLOYMENT_TARGET = 4.0; |
||||
}; |
||||
name = Release; |
||||
}; |
||||
AB35437122F3A88000C1B2E9 /* Debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
baseConfigurationReference = B04FF36D5367E20E26B17EE8 /* Pods-watchOS-sample.debug.xcconfig */; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
||||
INFOPLIST_FILE = "watchOS-sample/Info.plist"; |
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.watchOS-sample"; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
TARGETED_DEVICE_FAMILY = "1,2"; |
||||
}; |
||||
name = Debug; |
||||
}; |
||||
AB35437222F3A88000C1B2E9 /* Release */ = { |
||||
isa = XCBuildConfiguration; |
||||
baseConfigurationReference = 0E281AAFDD87686AFF4DA811 /* Pods-watchOS-sample.release.xcconfig */; |
||||
buildSettings = { |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
||||
CODE_SIGN_STYLE = Automatic; |
||||
DEVELOPMENT_TEAM = 6T98ZJNPG5; |
||||
INFOPLIST_FILE = "watchOS-sample/Info.plist"; |
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.google.watchOS-sample"; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
TARGETED_DEVICE_FAMILY = "1,2"; |
||||
}; |
||||
name = Release; |
||||
}; |
||||
/* End XCBuildConfiguration section */ |
||||
|
||||
/* Begin XCConfigurationList section */ |
||||
AB35432E22F3A88000C1B2E9 /* Build configuration list for PBXProject "watchOS-sample" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
AB35436622F3A88000C1B2E9 /* Debug */, |
||||
AB35436722F3A88000C1B2E9 /* Release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = Release; |
||||
}; |
||||
AB35436822F3A88000C1B2E9 /* Build configuration list for PBXNativeTarget "watchOS-sample WatchKit Extension" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
AB35436922F3A88000C1B2E9 /* Debug */, |
||||
AB35436A22F3A88000C1B2E9 /* Release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = Release; |
||||
}; |
||||
AB35436C22F3A88000C1B2E9 /* Build configuration list for PBXNativeTarget "watchOS-sample WatchKit App" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
AB35436D22F3A88000C1B2E9 /* Debug */, |
||||
AB35436E22F3A88000C1B2E9 /* Release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = Release; |
||||
}; |
||||
AB35437022F3A88000C1B2E9 /* Build configuration list for PBXNativeTarget "watchOS-sample" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
AB35437122F3A88000C1B2E9 /* Debug */, |
||||
AB35437222F3A88000C1B2E9 /* Release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = Release; |
||||
}; |
||||
/* End XCConfigurationList section */ |
||||
}; |
||||
rootObject = AB35432B22F3A88000C1B2E9 /* Project object */; |
||||
} |
@ -0,0 +1,129 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<Scheme |
||||
LastUpgradeVersion = "0920" |
||||
version = "1.3"> |
||||
<BuildAction |
||||
parallelizeBuildables = "YES" |
||||
buildImplicitDependencies = "YES"> |
||||
<BuildActionEntries> |
||||
<BuildActionEntry |
||||
buildForTesting = "YES" |
||||
buildForRunning = "YES" |
||||
buildForProfiling = "YES" |
||||
buildForArchiving = "YES" |
||||
buildForAnalyzing = "YES"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35434822F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample WatchKit App.app" |
||||
BlueprintName = "watchOS-sample WatchKit App" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildActionEntry> |
||||
<BuildActionEntry |
||||
buildForTesting = "YES" |
||||
buildForRunning = "YES" |
||||
buildForProfiling = "YES" |
||||
buildForArchiving = "YES" |
||||
buildForAnalyzing = "YES"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35433222F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample.app" |
||||
BlueprintName = "watchOS-sample" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildActionEntry> |
||||
</BuildActionEntries> |
||||
</BuildAction> |
||||
<TestAction |
||||
buildConfiguration = "Debug" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
language = "" |
||||
shouldUseLaunchSchemeArgsEnv = "YES"> |
||||
<Testables> |
||||
</Testables> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35434822F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample WatchKit App.app" |
||||
BlueprintName = "watchOS-sample WatchKit App" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</TestAction> |
||||
<LaunchAction |
||||
buildConfiguration = "Release" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
language = "" |
||||
launchStyle = "0" |
||||
useCustomWorkingDirectory = "NO" |
||||
ignoresPersistentStateOnLaunch = "NO" |
||||
debugDocumentVersioning = "YES" |
||||
debugServiceExtension = "internal" |
||||
allowLocationSimulation = "YES"> |
||||
<RemoteRunnable |
||||
runnableDebuggingMode = "2" |
||||
BundleIdentifier = "com.apple.Carousel" |
||||
RemotePath = "/WatchKit-App"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35434822F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample WatchKit App.app" |
||||
BlueprintName = "watchOS-sample WatchKit App" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</RemoteRunnable> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35434822F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample WatchKit App.app" |
||||
BlueprintName = "watchOS-sample WatchKit App" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</LaunchAction> |
||||
<ProfileAction |
||||
buildConfiguration = "Release" |
||||
shouldUseLaunchSchemeArgsEnv = "YES" |
||||
savedToolIdentifier = "" |
||||
useCustomWorkingDirectory = "NO" |
||||
debugDocumentVersioning = "YES"> |
||||
<RemoteRunnable |
||||
runnableDebuggingMode = "2" |
||||
BundleIdentifier = "com.apple.Carousel" |
||||
RemotePath = "/WatchKit-App"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35434822F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample WatchKit App.app" |
||||
BlueprintName = "watchOS-sample WatchKit App" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</RemoteRunnable> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "AB35434822F3A88000C1B2E9" |
||||
BuildableName = "watchOS-sample WatchKit App.app" |
||||
BlueprintName = "watchOS-sample WatchKit App" |
||||
ReferencedContainer = "container:watchOS-sample.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
</ProfileAction> |
||||
<AnalyzeAction |
||||
buildConfiguration = "Debug"> |
||||
</AnalyzeAction> |
||||
<ArchiveAction |
||||
buildConfiguration = "Release" |
||||
revealArchiveInOrganizer = "YES"> |
||||
</ArchiveAction> |
||||
</Scheme> |
@ -0,0 +1,25 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <UIKit/UIKit.h> |
||||
|
||||
@interface AppDelegate : UIResponder<UIApplicationDelegate> |
||||
|
||||
@property(strong, nonatomic) UIWindow* window; |
||||
|
||||
@end |
@ -0,0 +1,27 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import "AppDelegate.h" |
||||
|
||||
@interface AppDelegate () |
||||
|
||||
@end |
||||
|
||||
@implementation AppDelegate |
||||
|
||||
@end |
@ -0,0 +1,93 @@ |
||||
{ |
||||
"images" : [ |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "20x20", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "20x20", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "29x29", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "29x29", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "40x40", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "40x40", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "60x60", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "iphone", |
||||
"size" : "60x60", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "20x20", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "20x20", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "29x29", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "29x29", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "40x40", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "40x40", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "76x76", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "76x76", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"idiom" : "ipad", |
||||
"size" : "83.5x83.5", |
||||
"scale" : "2x" |
||||
} |
||||
], |
||||
"info" : { |
||||
"version" : 1, |
||||
"author" : "xcode" |
||||
} |
||||
} |
@ -0,0 +1,25 @@ |
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A277" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> |
||||
<dependencies> |
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/> |
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/> |
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
||||
</dependencies> |
||||
<scenes> |
||||
<!--View Controller--> |
||||
<scene sceneID="EHf-IW-A2E"> |
||||
<objects> |
||||
<viewController id="01J-lp-oVM" sceneMemberID="viewController"> |
||||
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> |
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
||||
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> |
||||
</view> |
||||
</viewController> |
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> |
||||
</objects> |
||||
<point key="canvasLocation" x="53" y="375"/> |
||||
</scene> |
||||
</scenes> |
||||
</document> |
@ -0,0 +1,24 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A278a" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> |
||||
<dependencies> |
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/> |
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/> |
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
||||
</dependencies> |
||||
<scenes> |
||||
<!--View Controller--> |
||||
<scene sceneID="tne-QT-ifu"> |
||||
<objects> |
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController"> |
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> |
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
||||
<viewLayoutGuide key="safeArea" id="Uee-0j-aNJ"/> |
||||
</view> |
||||
</viewController> |
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> |
||||
</objects> |
||||
</scene> |
||||
</scenes> |
||||
</document> |
@ -0,0 +1,45 @@ |
||||
<?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>CFBundleDevelopmentRegion</key> |
||||
<string>$(DEVELOPMENT_LANGUAGE)</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>APPL</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>1.0</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>1</string> |
||||
<key>LSRequiresIPhoneOS</key> |
||||
<true/> |
||||
<key>UILaunchStoryboardName</key> |
||||
<string>LaunchScreen</string> |
||||
<key>UIMainStoryboardFile</key> |
||||
<string>Main</string> |
||||
<key>UIRequiredDeviceCapabilities</key> |
||||
<array> |
||||
<string>armv7</string> |
||||
</array> |
||||
<key>UISupportedInterfaceOrientations</key> |
||||
<array> |
||||
<string>UIInterfaceOrientationPortrait</string> |
||||
<string>UIInterfaceOrientationLandscapeLeft</string> |
||||
<string>UIInterfaceOrientationLandscapeRight</string> |
||||
</array> |
||||
<key>UISupportedInterfaceOrientations~ipad</key> |
||||
<array> |
||||
<string>UIInterfaceOrientationPortrait</string> |
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string> |
||||
<string>UIInterfaceOrientationLandscapeLeft</string> |
||||
<string>UIInterfaceOrientationLandscapeRight</string> |
||||
</array> |
||||
</dict> |
||||
</plist> |
@ -0,0 +1,23 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <UIKit/UIKit.h> |
||||
|
||||
@interface ViewController : UIViewController |
||||
|
||||
@end |
@ -0,0 +1,27 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import "ViewController.h" |
||||
|
||||
@interface ViewController () |
||||
|
||||
@end |
||||
|
||||
@implementation ViewController |
||||
|
||||
@end |
@ -0,0 +1,26 @@ |
||||
/* |
||||
* |
||||
* Copyright 2019 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#import <UIKit/UIKit.h> |
||||
#import "AppDelegate.h" |
||||
|
||||
int main(int argc, char* argv[]) { |
||||
@autoreleasepool { |
||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); |
||||
} |
||||
} |
@ -0,0 +1,95 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<Scheme |
||||
LastUpgradeVersion = "1010" |
||||
version = "1.3"> |
||||
<BuildAction |
||||
parallelizeBuildables = "YES" |
||||
buildImplicitDependencies = "YES"> |
||||
<BuildActionEntries> |
||||
<BuildActionEntry |
||||
buildForTesting = "YES" |
||||
buildForRunning = "YES" |
||||
buildForProfiling = "NO" |
||||
buildForArchiving = "NO" |
||||
buildForAnalyzing = "YES"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "ABCB3ED922F23B9700F0FECE" |
||||
BuildableName = "TvTests.xctest" |
||||
BlueprintName = "TvTests" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildActionEntry> |
||||
</BuildActionEntries> |
||||
</BuildAction> |
||||
<TestAction |
||||
buildConfiguration = "Test" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
shouldUseLaunchSchemeArgsEnv = "YES"> |
||||
<Testables> |
||||
<TestableReference |
||||
skipped = "NO"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "ABCB3ED922F23B9700F0FECE" |
||||
BuildableName = "TvTests.xctest" |
||||
BlueprintName = "TvTests" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
<SkippedTests> |
||||
<Test |
||||
Identifier = "InteropTests"> |
||||
</Test> |
||||
</SkippedTests> |
||||
</TestableReference> |
||||
</Testables> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</TestAction> |
||||
<LaunchAction |
||||
buildConfiguration = "Test" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
launchStyle = "0" |
||||
useCustomWorkingDirectory = "NO" |
||||
ignoresPersistentStateOnLaunch = "NO" |
||||
debugDocumentVersioning = "YES" |
||||
debugServiceExtension = "internal" |
||||
allowLocationSimulation = "YES"> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "ABCB3ED922F23B9700F0FECE" |
||||
BuildableName = "TvTests.xctest" |
||||
BlueprintName = "TvTests" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</LaunchAction> |
||||
<ProfileAction |
||||
buildConfiguration = "Release" |
||||
shouldUseLaunchSchemeArgsEnv = "YES" |
||||
savedToolIdentifier = "" |
||||
useCustomWorkingDirectory = "NO" |
||||
debugDocumentVersioning = "YES"> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "ABCB3ED922F23B9700F0FECE" |
||||
BuildableName = "TvTests.xctest" |
||||
BlueprintName = "TvTests" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
</ProfileAction> |
||||
<AnalyzeAction |
||||
buildConfiguration = "Debug"> |
||||
</AnalyzeAction> |
||||
<ArchiveAction |
||||
buildConfiguration = "Release" |
||||
revealArchiveInOrganizer = "YES"> |
||||
</ArchiveAction> |
||||
</Scheme> |
@ -0,0 +1,22 @@ |
||||
<?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>CFBundleDevelopmentRegion</key> |
||||
<string>$(DEVELOPMENT_LANGUAGE)</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>BNDL</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>1.0</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>1</string> |
||||
</dict> |
||||
</plist> |
@ -0,0 +1,92 @@ |
||||
# Copyright 2019 The gRPC Authors |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
from __future__ import division |
||||
|
||||
import datetime |
||||
from concurrent import futures |
||||
import unittest |
||||
import time |
||||
import threading |
||||
import six |
||||
|
||||
import grpc |
||||
from tests.unit.framework.common import test_constants |
||||
|
||||
_WAIT_FOR_BLOCKING = datetime.timedelta(seconds=1) |
||||
|
||||
|
||||
def _block_on_waiting(server, termination_event, timeout=None): |
||||
server.start() |
||||
server.wait_for_termination(timeout=timeout) |
||||
termination_event.set() |
||||
|
||||
|
||||
class ServerWaitForTerminationTest(unittest.TestCase): |
||||
|
||||
def test_unblock_by_invoking_stop(self): |
||||
termination_event = threading.Event() |
||||
server = grpc.server(futures.ThreadPoolExecutor()) |
||||
|
||||
wait_thread = threading.Thread( |
||||
target=_block_on_waiting, args=( |
||||
server, |
||||
termination_event, |
||||
)) |
||||
wait_thread.daemon = True |
||||
wait_thread.start() |
||||
time.sleep(_WAIT_FOR_BLOCKING.total_seconds()) |
||||
|
||||
server.stop(None) |
||||
termination_event.wait(timeout=test_constants.SHORT_TIMEOUT) |
||||
self.assertTrue(termination_event.is_set()) |
||||
|
||||
def test_unblock_by_del(self): |
||||
termination_event = threading.Event() |
||||
server = grpc.server(futures.ThreadPoolExecutor()) |
||||
|
||||
wait_thread = threading.Thread( |
||||
target=_block_on_waiting, args=( |
||||
server, |
||||
termination_event, |
||||
)) |
||||
wait_thread.daemon = True |
||||
wait_thread.start() |
||||
time.sleep(_WAIT_FOR_BLOCKING.total_seconds()) |
||||
|
||||
# Invoke manually here, in Python 2 it will be invoked by GC sometime. |
||||
server.__del__() |
||||
termination_event.wait(timeout=test_constants.SHORT_TIMEOUT) |
||||
self.assertTrue(termination_event.is_set()) |
||||
|
||||
def test_unblock_by_timeout(self): |
||||
termination_event = threading.Event() |
||||
server = grpc.server(futures.ThreadPoolExecutor()) |
||||
|
||||
wait_thread = threading.Thread( |
||||
target=_block_on_waiting, |
||||
args=( |
||||
server, |
||||
termination_event, |
||||
test_constants.SHORT_TIMEOUT / 2, |
||||
)) |
||||
wait_thread.daemon = True |
||||
wait_thread.start() |
||||
|
||||
termination_event.wait(timeout=test_constants.SHORT_TIMEOUT) |
||||
self.assertTrue(termination_event.is_set()) |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
unittest.main(verbosity=2) |
@ -0,0 +1 @@ |
||||
_Init_grpc_c |
@ -0,0 +1,6 @@ |
||||
grpc_1.0 { |
||||
global: |
||||
Init_grpc_c; |
||||
local: |
||||
*; |
||||
}; |
@ -1 +1 @@ |
||||
Subproject commit 423ea5ca9ce8da69611e6e95559efcb3a1ba8ad8 |
||||
Subproject commit b70f68269a7d51c5ce372a93742bf6960215ffef |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue