From 9dee3a2d738042b89b85d7d1875226a37cd3678e Mon Sep 17 00:00:00 2001 From: cebgcontract <99630598+cebgcontract@users.noreply.github.com> Date: Wed, 7 Sep 2022 19:43:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5google=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Classes_cocos/JcWallet.mm | 36 +++++ Classes_cocos/UIViewController+Wallet.h | 3 +- Classes_cocos/UIViewController+Wallet.mm | 129 ++++++++++++++---- Info.plist | 19 ++- Podfile | 6 + Unity-iPhone.xcodeproj/project.pbxproj | 95 ++++++++++++- .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 31115 bytes js/main.js | 17 +++ 10 files changed, 283 insertions(+), 40 deletions(-) create mode 100644 Podfile create mode 100644 Unity-iPhone.xcworkspace/contents.xcworkspacedata create mode 100644 Unity-iPhone.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Unity-iPhone.xcworkspace/xcuserdata/zhl.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/Classes_cocos/JcWallet.mm b/Classes_cocos/JcWallet.mm index 744a769..5f5b4f6 100644 --- a/Classes_cocos/JcWallet.mm +++ b/Classes_cocos/JcWallet.mm @@ -242,10 +242,46 @@ bool jsb_scanQRCode(se::State& s) { } SE_BIND_FUNC(jsb_scanQRCode) +bool jsb_signWithGoogle(se::State& s) { + const auto& args = s.args(); + size_t argc = args.size(); + if (argc >= 1) { + bool ok; + std::string funid; + ok = seval_to_std_string(args[0], &funid); + SE_PRECONDITION2(ok, false, "Error processing arguments"); + NSString *nfunid = [NSString stringWithCString:funid.c_str() encoding:NSUTF8StringEncoding]; + UIWindow* window = [[[UIApplication sharedApplication] delegate] window]; + [window.rootViewController signWithGoogle:nfunid]; + return true; + } + return false; +} +SE_BIND_FUNC(jsb_signWithGoogle) + +bool jsb_signOutGoogle(se::State& s) { + const auto& args = s.args(); + size_t argc = args.size(); + if (argc >= 1) { + bool ok; + std::string funid; + ok = seval_to_std_string(args[0], &funid); + SE_PRECONDITION2(ok, false, "Error processing arguments"); + NSString *nfunid = [NSString stringWithCString:funid.c_str() encoding:NSUTF8StringEncoding]; + UIWindow* window = [[[UIApplication sharedApplication] delegate] window]; + [window.rootViewController signOutGoogle:nfunid]; + return true; + } + return false; +} +SE_BIND_FUNC(jsb_signOutGoogle) + bool jsb_register_walletevent_modules(se::Object* global) { getOrCreatePlainObject_r("jsb", global, &__jsbObj); __jsbObj->defineFunction("jcCallback", _SE(jsb_wallet_callback)); __jsbObj->defineFunction("scanQRCode", _SE(jsb_scanQRCode)); + __jsbObj->defineFunction("signWithGoogle", _SE(jsb_signWithGoogle)); + __jsbObj->defineFunction("signOutGoogle", _SE(jsb_signOutGoogle)); return true; } diff --git a/Classes_cocos/UIViewController+Wallet.h b/Classes_cocos/UIViewController+Wallet.h index 002a763..0e64ba9 100644 --- a/Classes_cocos/UIViewController+Wallet.h +++ b/Classes_cocos/UIViewController+Wallet.h @@ -14,5 +14,6 @@ +(void)toWallet:(NSString *)url; -(void)scanQRCode:(NSString *)funid title:(NSString *) title; - +-(void)signWithGoogle:(NSString *)funid; +-(void)signOutGoogle:(NSString *)funid; @end diff --git a/Classes_cocos/UIViewController+Wallet.mm b/Classes_cocos/UIViewController+Wallet.mm index 8a7252e..af9b2a5 100644 --- a/Classes_cocos/UIViewController+Wallet.mm +++ b/Classes_cocos/UIViewController+Wallet.mm @@ -11,8 +11,11 @@ #import "QRCodeReaderDelegate.h" #include #include "WalletEvent.h" +#import +@import GoogleSignIn; - +static NSString * const kClientID = +@"165555585193-alshovj5m91vlmj8uuhb11e6msvq32gm.apps.googleusercontent.com"; @implementation UIViewController (Wallet) @@ -52,36 +55,102 @@ }]; [self presentViewController:vc animated:YES completion:NULL]; }); - } - else { - dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Error" - message:@"The camera is need to scan QR codes" - preferredStyle:UIAlertControllerStyleAlert]; - //We add buttons to the alert controller by creating UIAlertActions: - UIAlertAction *actionOk = [UIAlertAction actionWithTitle:@"Cancel" - style:UIAlertActionStyleCancel - handler: ^(UIAlertAction *action){ - NSLog(@"alert cancel pressed"); - }]; //You can use a block here to handle a press on this button - // - UIAlertAction *setting = [UIAlertAction actionWithTitle:@"Setting" - style:UIAlertActionStyleDefault - handler: ^(UIAlertAction *action){ - NSLog(@"setting pressed"); - NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; - if ([[UIApplication sharedApplication] canOpenURL:url]){ - [[UIApplication sharedApplication] openURL:url]; - } - }]; - [alertController addAction:actionOk]; - [alertController addAction:setting]; - [self presentViewController:alertController animated:YES completion:nil]; - }); + } + else { + dispatch_async(dispatch_get_main_queue(), ^{ + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Error" + message:@"The camera is need to scan QR codes" + preferredStyle:UIAlertControllerStyleAlert]; + //We add buttons to the alert controller by creating UIAlertActions: + UIAlertAction *actionOk = [UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler: ^(UIAlertAction *action){ + NSLog(@"alert cancel pressed"); + }]; //You can use a block here to handle a press on this button + // + UIAlertAction *setting = [UIAlertAction actionWithTitle:@"Setting" + style:UIAlertActionStyleDefault + handler: ^(UIAlertAction *action){ + NSLog(@"setting pressed"); + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + if ([[UIApplication sharedApplication] canOpenURL:url]){ + [[UIApplication sharedApplication] openURL:url]; + } + }]; + [alertController addAction:actionOk]; + [alertController addAction:setting]; + [self presentViewController:alertController animated:YES completion:nil]; + }); - std::string sresult = "{errcode: 1, errmsg: 'no camera permission'}"; - WalletEvent::Emit(sfunid.c_str(), sresult.c_str()); - } + std::string sresult = "{errcode: 1, errmsg: 'no camera permission'}"; + WalletEvent::Emit(sfunid.c_str(), sresult.c_str()); + } +} + +-(void)signToGoogle { + GIDConfiguration *_configuration = [[GIDConfiguration alloc] initWithClientID:kClientID]; + [GIDSignIn.sharedInstance signInWithConfiguration:_configuration + presentingViewController:self + completion:^(GIDGoogleUser *user, NSError *error) { + if (error) { + NSLog(@"Status: Authentication error: %@", error); + } + [self refreshUserInfo]; + [self refreshTokenID: user]; + }]; +} +-(void) refreshTokenID:(GIDGoogleUser *)user { + [user.authentication doWithFreshTokens:^(GIDAuthentication * _Nullable authentication, + NSError * _Nullable error) { + if (error) { return; } + if (authentication == nil) { return; } + + NSString *idToken = authentication.idToken; + // Send ID token to backend (example below). + NSLog(@"idToken: %@", idToken); + }]; +} + +-(void)signWithGoogle:(NSString *)funid { + [GIDSignIn.sharedInstance restorePreviousSignInWithCompletion:^(GIDGoogleUser * _Nullable user, + NSError * _Nullable error) { + if (error) { + // Show the app's signed-out state. + [self signToGoogle]; + } else { + // Show the app's signed-in state. + [self refreshTokenID: user]; + } + }]; + +} + +-(void)signOutGoogle:(NSString *)funid { + [GIDSignIn.sharedInstance signOut]; +} + +- (void)reportAuthStatus { + GIDGoogleUser *googleUser = [GIDSignIn.sharedInstance currentUser]; + if (googleUser.authentication) { + NSLog(@"Status: Authenticated"); + } else { + // To authenticate, use Google Sign-In button. + NSLog(@"Status: Not authenticated"); + } + + [self refreshUserInfo]; +} + +- (void)refreshUserInfo { + if (GIDSignIn.sharedInstance.currentUser.authentication == nil) { + return; + } + NSLog(@"email: %@", GIDSignIn.sharedInstance.currentUser.profile.email); + NSLog(@"username: %@", GIDSignIn.sharedInstance.currentUser.profile.name); + NSLog(@"userid: %@", GIDSignIn.sharedInstance.currentUser.userID); + NSLog(@"givenName: %@", GIDSignIn.sharedInstance.currentUser.profile.givenName); + NSLog(@"familyName: %@", GIDSignIn.sharedInstance.currentUser.profile.familyName); + NSLog(@"hostedDomain: %@", GIDSignIn.sharedInstance.currentUser.hostedDomain); } diff --git a/Info.plist b/Info.plist index b793bcc..901431e 100644 --- a/Info.plist +++ b/Info.plist @@ -2,10 +2,6 @@ - NSCameraUsageDescription - The camera is need to scan QR codes - UIApplicationExitsOnSuspend - CADisableMinimumFrameDuration CFBundleDevelopmentRegion @@ -24,6 +20,17 @@ APPL CFBundleShortVersionString 0.1 + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + com.googleusercontent.apps.165555585193-alshovj5m91vlmj8uuhb11e6msvq32gm + + + CFBundleVersion 0 LSRequiresIPhoneOS @@ -33,6 +40,10 @@ NSAllowsArbitraryLoads + NSCameraUsageDescription + The camera is need to scan QR codes + UIApplicationExitsOnSuspend + UILaunchStoryboardName~ipad LaunchScreen-iPad UILaunchStoryboardName~iphone diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..ea7b6fe --- /dev/null +++ b/Podfile @@ -0,0 +1,6 @@ +platform :ios, '9.0' +use_frameworks! + +target 'Unity-iPhone' do + pod 'GoogleSignIn', :path => '/Users/zhl/Downloads/sourcecode/ios/GoogleSignIn-iOS/' +end diff --git a/Unity-iPhone.xcodeproj/project.pbxproj b/Unity-iPhone.xcodeproj/project.pbxproj index e321f52..bf4d7db 100644 --- a/Unity-iPhone.xcodeproj/project.pbxproj +++ b/Unity-iPhone.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 00000000008063A1000160D3 /* libiPhone-lib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D8A1C72A0E8063A1000160D3 /* libiPhone-lib.a */; }; 03F528631B447098000F4FB8 /* Il2CppOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 03F528621B447098000F4FB8 /* Il2CppOptions.cpp */; }; + 11D10E290B9C7BABBF144797 /* Pods_Unity_iPhone.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B0207025791C682891488AD /* Pods_Unity_iPhone.framework */; }; 1859EA9B19214E7B0022C3D3 /* MetalHelper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1859EA9A19214E7B0022C3D3 /* MetalHelper.mm */; }; 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 35DD4E0BA71A8E4480E79156 /* LaunchScreen-iPhonePortrait.png in Resources */ = {isa = PBXBuildFile; fileRef = A03A47E096662C4BAF1D598F /* LaunchScreen-iPhonePortrait.png */; }; @@ -242,6 +243,7 @@ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 1D6058910D05DD3D006BFB54 /* ProductName.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ProductName.app; sourceTree = BUILT_PRODUCTS_DIR; }; 4A5A4C7E840E8BFA450026D8 /* IUnityGraphics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IUnityGraphics.h; path = Classes/Unity/IUnityGraphics.h; sourceTree = SOURCE_ROOT; }; + 4B0207025791C682891488AD /* Pods_Unity_iPhone.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Unity_iPhone.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4C5D493DAA759EC62F5C506E /* LaunchScreen-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "LaunchScreen-iPhone.xib"; sourceTree = SOURCE_ROOT; }; 4E090A331F27884B0077B28D /* StoreReview.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StoreReview.m; sourceTree = ""; }; 5623C57317FDCB0800090B9E /* Unity-iPhone Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Unity-iPhone Tests.xctest"; path = ProductName.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -260,6 +262,7 @@ 5BAA49C5B6C1A0380C7D1843 /* IUnityGraphicsMetal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IUnityGraphicsMetal.h; path = Classes/Unity/IUnityGraphicsMetal.h; sourceTree = SOURCE_ROOT; }; 5BAD78601F2B5A59006103DE /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 5C824C7597221AFF9649D008 /* LaunchScreen-iPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "LaunchScreen-iPad.png"; sourceTree = SOURCE_ROOT; }; + 64D951E2E197936FF46DBB4A /* Pods-Unity-iPhone.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Unity-iPhone.debug.xcconfig"; path = "Target Support Files/Pods-Unity-iPhone/Pods-Unity-iPhone.debug.xcconfig"; sourceTree = ""; }; 65204119BF754354B5DD4D0C /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; 7F36C10E13C5C673007FBDD9 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; 7F36C10F13C5C673007FBDD9 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; @@ -353,6 +356,7 @@ AAC3E38C1A68945900F6174A /* RegisterFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterFeatures.h; sourceTree = ""; }; AAFE69D019F187C200638316 /* UnityViewControllerListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnityViewControllerListener.h; sourceTree = ""; }; AAFE69D119F187C200638316 /* UnityViewControllerListener.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = UnityViewControllerListener.mm; sourceTree = ""; }; + B41A4D99DD320B1E06F51AE6 /* Pods-Unity-iPhone.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Unity-iPhone.release.xcconfig"; path = "Target Support Files/Pods-Unity-iPhone/Pods-Unity-iPhone.release.xcconfig"; sourceTree = ""; }; C6CC4EECB3BBA57C6F9A8015 /* IUnityInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IUnityInterface.h; path = Classes/Unity/IUnityInterface.h; sourceTree = SOURCE_ROOT; }; D52A8D9F288E6547006574E8 /* libuv_a.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libuv_a.a; sourceTree = ""; }; D5538BA3287E9908000BDFB6 /* WalletEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WalletEvent.cpp; sourceTree = ""; }; @@ -492,10 +496,12 @@ D8A1C7240E80637F000160D3 /* RegisterMonoModules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegisterMonoModules.cpp; path = Libraries/RegisterMonoModules.cpp; sourceTree = SOURCE_ROOT; }; D8A1C7250E80637F000160D3 /* RegisterMonoModules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegisterMonoModules.h; path = Libraries/RegisterMonoModules.h; sourceTree = SOURCE_ROOT; }; D8A1C72A0E8063A1000160D3 /* libiPhone-lib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libiPhone-lib.a"; path = "Libraries/libiPhone-lib.a"; sourceTree = SOURCE_ROOT; }; + DF09136C644F6C0DE6044DC4 /* Pods-Unity-iPhone.releaseforrunning.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Unity-iPhone.releaseforrunning.xcconfig"; path = "Target Support Files/Pods-Unity-iPhone/Pods-Unity-iPhone.releaseforrunning.xcconfig"; sourceTree = ""; }; FC0B20A11B7A4F0B00FDFC55 /* OnDemandResources.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OnDemandResources.mm; sourceTree = ""; }; FC3D7EBE16D2621600D1BD0D /* CrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrashReporter.h; sourceTree = ""; }; FC85CCB916C3ED8000BAF7C7 /* CrashReporter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CrashReporter.mm; sourceTree = ""; }; FC85CCBA16C3ED8000BAF7C7 /* PLCrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PLCrashReporter.h; sourceTree = ""; }; + FD1C45EFD70F96442D46270D /* Pods-Unity-iPhone.releaseforprofiling.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Unity-iPhone.releaseforprofiling.xcconfig"; path = "Target Support Files/Pods-Unity-iPhone/Pods-Unity-iPhone.releaseforprofiling.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -530,6 +536,7 @@ D0DD4D8D8AC82F06A4331428 /* libil2cpp.a in Frameworks */, E9D340DABD2259166E8A82AF /* Metal.framework in Frameworks */, D5F2D102287C092D003C2B62 /* libcocos2d.a in Frameworks */, + 11D10E290B9C7BABBF144797 /* Pods_Unity_iPhone.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -576,6 +583,7 @@ 910F4CC7BAC9F179C0C2F5D1 /* LaunchScreen-iPhoneLandscape.png */, 90994FBFA981DC89AB1ADF90 /* LaunchScreen-iPad.xib */, 5C824C7597221AFF9649D008 /* LaunchScreen-iPad.png */, + B874123C858A9B88D7B58415 /* Pods */, ); name = CustomTemplate; sourceTree = ""; @@ -606,6 +614,7 @@ 56BCBA380FCF049A0030C3B2 /* SystemConfiguration.framework */, 830B5C100E5ED4C100C7819F /* UIKit.framework */, 65204119BF754354B5DD4D0C /* Metal.framework */, + 4B0207025791C682891488AD /* Pods_Unity_iPhone.framework */, ); name = Frameworks; sourceTree = ""; @@ -727,6 +736,17 @@ name = UnityAds; sourceTree = ""; }; + B874123C858A9B88D7B58415 /* Pods */ = { + isa = PBXGroup; + children = ( + B41A4D99DD320B1E06F51AE6 /* Pods-Unity-iPhone.release.xcconfig */, + FD1C45EFD70F96442D46270D /* Pods-Unity-iPhone.releaseforprofiling.xcconfig */, + DF09136C644F6C0DE6044DC4 /* Pods-Unity-iPhone.releaseforrunning.xcconfig */, + 64D951E2E197936FF46DBB4A /* Pods-Unity-iPhone.debug.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; D5AB1D2728BF782200AA6AFA /* QRCodeReaderViewController */ = { isa = PBXGroup; children = ( @@ -931,11 +951,13 @@ isa = PBXNativeTarget; buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Unity-iPhone" */; buildPhases = ( + 6CEA41FA163B3F3677EADF3F /* [CP] Check Pods Manifest.lock */, 1D60588D0D05DD3D006BFB54 /* Resources */, 83D0C1FD0E6C8D7700EBCE5D /* CopyFiles */, 1D60588E0D05DD3D006BFB54 /* Sources */, 1D60588F0D05DD3D006BFB54 /* Frameworks */, 033966F41B18B03000ECD701 /* ShellScript */, + 3019DFB992AFEEDC432FD501 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -972,7 +994,7 @@ attributes = { TargetAttributes = { 1D6058900D05DD3D006BFB54 = { - DevelopmentTeam = 8TB4N4YTJ3; + DevelopmentTeam = 3M965CAG25; ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.GameControllers.appletvos = { @@ -998,6 +1020,7 @@ en, ); mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */; projectDirPath = ""; projectReferences = ( { @@ -1064,6 +1087,52 @@ shellPath = /bin/sh; shellScript = "\"$PROJECT_DIR/MapFileParser.sh\""; }; + 3019DFB992AFEEDC432FD501 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Unity-iPhone/Pods-Unity-iPhone-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework", + "${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework", + "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework", + "${BUILT_PRODUCTS_DIR}/GoogleSignIn/GoogleSignIn.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppAuth.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleSignIn.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Unity-iPhone/Pods-Unity-iPhone-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 6CEA41FA163B3F3677EADF3F /* [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-Unity-iPhone-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -1264,6 +1333,7 @@ /* Begin XCBuildConfiguration section */ 1D6058940D05DD3E006BFB54 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 64D951E2E197936FF46DBB4A /* Pods-Unity-iPhone.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = ( @@ -1274,13 +1344,14 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - DEVELOPMENT_TEAM = 8TB4N4YTJ3; + DEVELOPMENT_TEAM = 3M965CAG25; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_DYNAMIC_NO_PIC = NO; @@ -1321,6 +1392,8 @@ OTHER_CPLUSPLUSFLAGS = ( "$(inherited)", "$(OTHER_CFLAGS)", + "-fmodules", + "-fcxx-modules", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -1349,6 +1422,7 @@ }; 1D6058950D05DD3E006BFB54 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = B41A4D99DD320B1E06F51AE6 /* Pods-Unity-iPhone.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = ( @@ -1359,13 +1433,14 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = 8TB4N4YTJ3; + DEVELOPMENT_TEAM = 3M965CAG25; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_ENABLE_CPP_EXCEPTIONS = YES; @@ -1403,6 +1478,8 @@ OTHER_CPLUSPLUSFLAGS = ( "$(inherited)", "$(OTHER_CFLAGS)", + "-fmodules", + "-fcxx-modules", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -1560,6 +1637,7 @@ }; 56E860811D6757FF00A1AB2B /* ReleaseForRunning */ = { isa = XCBuildConfiguration; + baseConfigurationReference = DF09136C644F6C0DE6044DC4 /* Pods-Unity-iPhone.releaseforrunning.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = ( @@ -1570,6 +1648,7 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CODE_SIGN_IDENTITY = "Apple Development"; @@ -1577,7 +1656,7 @@ CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = 8TB4N4YTJ3; + DEVELOPMENT_TEAM = 3M965CAG25; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_ENABLE_CPP_EXCEPTIONS = YES; @@ -1615,6 +1694,8 @@ OTHER_CPLUSPLUSFLAGS = ( "$(inherited)", "$(OTHER_CFLAGS)", + "-fmodules", + "-fcxx-modules", ); OTHER_LDFLAGS = ( "$(inherited)", @@ -1715,6 +1796,7 @@ }; 56E860841D67581C00A1AB2B /* ReleaseForProfiling */ = { isa = XCBuildConfiguration; + baseConfigurationReference = FD1C45EFD70F96442D46270D /* Pods-Unity-iPhone.releaseforprofiling.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = ( @@ -1725,13 +1807,14 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = 8TB4N4YTJ3; + DEVELOPMENT_TEAM = 3M965CAG25; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_ENABLE_CPP_EXCEPTIONS = YES; @@ -1769,6 +1852,8 @@ OTHER_CPLUSPLUSFLAGS = ( "$(inherited)", "$(OTHER_CFLAGS)", + "-fmodules", + "-fcxx-modules", ); OTHER_LDFLAGS = ( "$(inherited)", diff --git a/Unity-iPhone.xcworkspace/contents.xcworkspacedata b/Unity-iPhone.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..41e9af4 --- /dev/null +++ b/Unity-iPhone.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Unity-iPhone.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Unity-iPhone.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Unity-iPhone.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Unity-iPhone.xcworkspace/xcuserdata/zhl.xcuserdatad/UserInterfaceState.xcuserstate b/Unity-iPhone.xcworkspace/xcuserdata/zhl.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fd354942cc143610a3cc82844604853408b45211 GIT binary patch literal 31115 zcmeHwd0bT0`~N-Xt}MzRJA$mT2n-A$tAOl_?8A;Q3^3v(Fvx&w+C43%WxFkArhrS5 zW|n64X?4j=EyFEsu~jWCwX{vs-*e~AAf)y4`~CI#{gu9ExO4B>&-*;*InQ}N=Qeh< z>Wy6y5eF$mVTz_0ilsP;r>v{|XXrYOdP94)zqYe!svdro`F9yQs{9R&x9FO>jH4*D zV5LT3SE!z(o2_e3H3#~T5-6*3b(gkFC!&q^_!Y{AvZY)oSIUhFry?j76-h-=(bRY< zhKi-)sCX)!%Ahi-EUJ(yqspmTN<%eJQ>Yf|7OIV!PR*p|QG~jkT1?$X-A_G0Jwh#` zo}yM!tEn~ATIv~U1N9vB0`)#MKpmitP#;mBP@hs?P+w9fsFT!b>I`*`I!|4sex`n> zE>Twzg&4#lD`bs)kstC$V^IJKL_sJRjYAa%+J?5H9cU+d2fc?rL<8smI*N{=FVR=%1UiXMp>NT7^dq*$HrN)Az$398R$zNP z3Ois&?25gxHx9soI2=b{6^_JFI1x|4Ww;zy;7VMDt8opk#glOzuE&j7k8i;pcsibq z=is^cRy+^ig%{wb@d~^W_uyXKhgad%cnw~QpTX<#i+D5Mf?vX~;n(p_{0`oQ-^IJ} zhj;*ghfm`(_BaOT^iujsx|i;wSJCU~4fIa>9eNl2F1?$6kKRM?rT5YA(;v_W=wtN9^cVD(^mp`W z`V9R&eUbi|8Ohi&3dWup#W*mIj1%L`xG=7a2jj>1Gh>+$CX|V0#xpTYEEC5}WKx-G zriQ6yCNp(RJ)>b77%kJtG%+nqJ7ZwFnHkJ{<~BxT2y;7g4|6Z`5c4qe2=gqnp4q@W z$82PtXEre}FfTHjnJvsq%vR=Q<`w2u=0D6X=3Qnt^B%K@*~{!>-e(RnpE1Xo&zUcn zFPSsU_sn_bBFnNI%d-M&#agpAtQ|Xwbzq%Ych;NrX9L-2Hja&FC$af#0b9rxvBhi& zTgs|gJ$nl~jcsMy*ml;ycCgdgPF7?IdpmmvdnbDr`w;su`v|*)eUx3wKFO|Rd)U?N z8unTCKkRGl>+Boso9tWc+w3-WKl>p&z#d=^vWM7X?8odU?C0#)>^b&4`zw2ey~ z!wH-fH-fY0MsW_D3+KwYaqgTyHuTrpR| zm2p*EHCM~ka~e*^P2u$1EnEjTotw?g;pTFWa*uJ3b5C$fxhJ`0+*90g?rClXx037O zdbww~b=-5@%iJs6tK5IM*SOcYUEI6eZf+mF!2QJ2 zyftsb+w)GmGw;ri=Dm1t-k%TRL-{aX#Ygga{3Je~FW?LLBEFa};Y)cnU&dGQ8oq&_ z!ng1SzJs5|&*tawbNSo&h5Q5jqx@3-Nq!l>f?vt^@T>VXd_TX9-_Gygck=J>yZCqc z-TZs}9)2&spFhHX%74b6;7{^r`E&ev{v!XIfCVeTPH+%hgwcYB;4Q=n@j`--C`=HN zgk&K_m?)$QX+oAzAgF~hVX{ys=!7Z4Ey6URQ|YZjtL(N-v}p!lfw7H55igDC*c?2Qn`P7cWdhb zY6LZsvZEA~1La&8jZb_JvBA9vK%I zlbRK)vgGVe`BTbu)M(0s@}$O4UX(ZGL-|sEA}ewtFAAcSXf4`^w&I9&)L1Hj3Z#Ol zU}_u{LWNRc;z-espk{(v2%1IEqXa!h&=UkL6+NMJX`MRlv<`#5y~~)|)TN&RvrV%` z;hv$JqU~<&%52tm89GgKkTJ{9SzelNoNNlFQ#Vc3wdo)M`DbZ&dxp-~rEk}E!Az%7 zMC5CYUFn9lj#eEcSS(F|#xAJ194$?2gn3TNPTw`VRM%nXgch;0G)|?yz1c9+2&Is( zQad}f?Jba7dsl|8vAZR=eTo5st97j~d+M48gS(dMnjnl^W=mpHk*zH4m_Q{{%04QQ znm{Fq3ejF1)kmdJ6RA|uLG%(;QiB9mH5r<9O6asn`Yz@0w3PXV7E8JsMXVgs^c_{) zX^`e}b$5qUnLo!H7Dl58`@1}fbuC(Bw^42A?rhSfLs=|^&!+MyWiORO<%*7?OD{Ev z$`{?lF{0-IstC|oOqEcjlv=`PBQ$R<{O#1WLU+v2iInIpI%yPkOeAC+s|t(D zQpIIO#-znYre|1ct)-eMWe?RTy7y4c;%KRh+$=qB>5F_rlL>al0n<30O6gaM9&*X2 zQLWG-5`t#;Qq!m!`EEM}0CFf)7j$=N8(Vc5dVr##UE4Xkk7}nnsG7-z>TCBbCF!KP zhL^QRF4=*>uXb7J(wKd#Qeq;Ddi+~94 zZigWeK1JVY>!@uuOHKfs7%T>fKBCeubw_h?igU(P5$fbs^zd^Ak4{cr=PBjNl@grf`R7IIElRnb+DvVsUZS>AFH^5juTuY^UZY;8-k{zTBgJSjMvM~^ z#0g@uI8jU!GsG-0XFc^cwT;?N?Vxs2?@+s_cd6afd(<9kub3xJ5$B1Ii5tWn;-}(I z1lbVeMbLPH3Wj6&LlcIhGz#O5Fg&xp)u3%Qh8s;1OOh`p;AR^PEv-7K=X2Y`^hN6M zp*O;1@n#G!?rv<=Hw}L_G@x?oP=RvTRFLr+Ma_*0B2TS1IhahK)fvO(;iOUP+Kq-z zqq41SXnr4?@{83dx^I-2CvSg6j0ZUr5WDPfs0;RU2BRt*EF3se|@C@AyU8|u(*BM?6^UM@O zXPc!ti`2>v^Q|GF)ESe81TZ#F3-2~|hU?p#TDt)=O(7xSGgRRkOXZV;tiFf|4&_!otq)UR5`5k&zf>f(J1O~l;i)X#Vueni5O^BsR=s`t*yGw zKLPH7DbG}mV%m-J{AX&J3*Fb*u5B&qkS0BV{Lp6p%~XJNjbi3MUVs}8_1p|-iz)h+ z?oQJTJ{H%p+X1Ircz{U6#5&L;(vn!%Y2?&q1Vm4hJ}zyEkL4c zI3$o@%05@4=(vMxc?%4k?g58igE?BXSZa ziTPrISSS{W#bSwADyqe@e&m8&P5(zD59A3~Ues8zT&yC5%K<;1mMT$GZ}!N0stTAMaR+S z;)CKt*8xx#(_fp67WSN<-$bPhM#Z3f{tkUFWAO}N@zK9d$x_~*&=m=b7tlrYGx`Pn zihe`Cqf6*A`a^tNd_r6*J}E8}pAwggPm3$WmHp_dj73ai2D8W&^MJ)3GZt5g>%@Mz ze)eB1{_|MGPJl)1EcTkQh}{5-*d2LFAF&T`D1AKa5jJ-%_Q8GtMeHlC?!o@znwx_n z4#FV-ARLU+#kFExFAhb=#b*GF*U3Wn6@C-F&G5Tu$ukxDXcs z{7L|RFPq`_AMq{mZMfd{FZ})s@Y6`}YY<)}_i zUGbwOD+k)yggV*@Q1|0sN3w+XpaTJQv?o1=_M*LMAKI7pqy6czbbxq4yeR%G{v!S= z{wDq|UJ@^hfArHqGV171I*e8#S2_YvcSS}WL6{((fa$54Agh0o_s=7bP6p)BDdJT# z^5`@`9-U5SNFRbIf{^?T@-J19Zt3Gmbb$oFe1hm6x{x5|CIMJVm&*Vw6YB_KB`{Tr z4-&*(4?&kEzlpK{q!e+MeCuhgjKu~Kcm&pe6W&}im5^RR0j@m2K6BlQ#5UHF*=qV38H8&k5RL(p481}eEk*ltBuk9v=vO2V zZls^5H_uim}X=r8zu!Gzx?TTMl2w)#H zbpl0qvc5y26&j4H@yf_5%MXnrzIjGhv#Cm9^383o9mB}1tjxZk)bUQ(J5OilB9magjY%^(*cR?kkx&>TUm|=Mr zcj^tDK>ySzLjFErnzm`0TGyckK8>MMqX_={&~hFX+SYDeiMOT9Uoj_dP-grD^DXn8 zc$A>K30f$6Hc{SVG37nL{6N_;XPI*n@wgdiYen|-!A6TO6v8yaa{T|^2THIi>ogd; zzyV6(W@GE%=;0X{6dDs7=Nq4tnU$TBTcj?lsx{N}M~t*n*pC7xvbk0=O&Pensa+r} z8i7`31bV)!NLQ=7o0@dGW?l0EC+CqaZliBN>hEzCnI3l_*gI4dsC0?QPC3RUvv^3Ol)Q; zJ*ixS@iYqWLUnqXbU#a{m4t;_*99E?7UPg0u9hI>x#dP6%nUvna2}a3p(hdKoTHR? za_Z>bl!>C9sOU{gm#FhnuA?D!OUe=(-_V)c3?l`YQaS*i%izk#-f%fRZbhv+xB5B_@gl;o-rOhtl6UM`gnlzcU1pt`AB zft9_OS_&R_%c&LAI$-v`43ylRK*!w;RNQ^kLFzd8*`1{>BN{kXcEGN3Ku$=BqQG0O z6qTV`ptNX#&Z0wlG!6JF1~eV~d4eZe5_HrjveIq{z?AACz(pNWNd0-OUz}H{JWQ+#UKI+ zf=T`UHOv*}Doe45xyoE62xfRtCmtf`5!1zkl3eutdjTc^>;D=EiUolJ|2`!tkh*KO zG@blkLY4t3-4xPqq98Yq0u8XXlpQ;Q9Vv+tiM1|~)9YFd8!r*`u&Lcx1#2%ik*=3j zP&M^shGy+-Z*7;iDn21vC5Lfjo&Jn))=~Cb7zydSfVu}hMzmO=6ST6m}w;O3-qGK(Sjv z5Y(@Spk9Ld*0Skr26APy*a?z8N6;#QR)YqI!SM66q|1q(^?(N1b1175#I;6|EZwlU zVU%ebukkW9S>vNss`RMXu$c6S$gt?txX7@y*zsv$=`k_!X;EoW@v0c$h)XlLoFc?d z({@&BjTJJ*uu|VORSjadRR>QrilCu6$uTsA>QZoYFmy`pC?-mwG?ak52tj2BtG_6k z!tGkF219G3wlmj~tE~GBEzyui&U5ERMud7t%nS9NtBQ_*%edI_^X8ccFI°TonH z&Q`FMY!zG0*08ngWERx^H3Y3C=oy065!6r6vjnXtXahmdf#(_9z-rk>wuxk1r%Hjys|>=41J5NtVp*8f2M+Cnnqy{x5~Tpt@b!_H-IW#_S=t8O9aZGyfg z=o^B*lj`X$Gv^^;$)RkpkjlXh1d!0;O)-~rs9OHA`h*2)1$M}v7Rz^n0B@OU`m2FvvwrgrNcsS~2<$%*=ueD8C zv7uR71e)C`q?LxZbPFaGNuj+_rn*@jS`#tZRIDh;4@$fF=$#4*vT$(jb#xlGF0M4Y zA1L?%S2uUtn@g~6-N2#?ker8okLR$|20#tI`9j6L4Qcq<_gUNcPaf*mGY}9MbknJ9 znI@HFTv%^N=&+*HnJXsq=@raCc!cVv6Wu&L77~rJ?Xeyh9}|1?(GCScwD<|V35mnX zQhJL~fd`UPCfS&dx&7$ruiFhu_efbCtX{ej!O&`0C?U&s2 zZZf<^(Woiw%1*CP#em=5wLCzCN5)+HIV4L-5jDn|v(r?lHBqW-;Y`C+4HI2^%e7UI z#v;$wvoC_C%x++xV>hzTvzu6$SHL*1ouC~Aff3{#f_AN8H?v!iC(NoZOZv>a1nq{+ zIGA6*l9U-)XhJSc(@F56@E$>X2--`~K7!s~&Atbo>toq{?E3_L04f?(?EpbvN_BIxQ~(-O z3xZP?t{TNy%l*_=n5>&;O9gHRFZDv*%wlaf2xwD1H3}7k%hApNmjsZ};9@h|l1_SY zxvUF7_0p$;X{S@yZjLj?lJ@Yq7Z7EV?BEXq0n)oWAx2lew!6J)s#<{c&X<{+E&RWcf z_17?143iNw@SrYI3bq!Qs&(>xh$%S=UJDMs*CxM?qA8X%uRRkfg1|qMpf3nIM9}BZ z?t^NL3^H@$DKls3n!2UgG824oIt}e6$9_{za=m^88#enBdx5>k!m9HKK_3(JDM6pX zLWKQ|{T=FfiM`DJQFATta#N`Yf;I;G)G>{sDAL>5)tr!^(Wnv)4=pBy_y8yT&Ni3baD1n7-(=UP@6 zk+G4X-mx(e^XA=zK5Uj4+-S}V%#fT1=gGm!_5?vE2|Crs-pcu~V1fq?`&&@LCHXLR z5NE?QY?FqpgzkZ%X0ns}{#`g(O$HCHzYAnm$Zty3=7PBxaM$L>aUonN7se^Ma4v#V zagkgU7tM_)=rloR2>PC&9|$^2&^dz66Z9iNKM{0+po;|kyq=5Y;<$J&0l7*a*q8vO zK9|5H5cCT{zY_EtL6@bC3HXx!JZQR>ewvoI!{oFiM6Z)&Fb7BrtaR{W({_NsG)-di zjA4G^Wj#4Lwq6%{O3LlI$#Ci5r@+snh>lElHxmz3TuO9XW5FN#t;) zL#!iQIak@kRS@($L6-opL(c{9?vT&5)Ioi}p()4Xcfut6hyU`M_lk0}#5;!B*MKDV+*DFEH zv~>#!I1MI{4+q5Pn&s&qBu-W7;1lyCpVet-8=OHbiQmdCq?FHc^SJrkZJfvv?so1D z?oRG5ZUJ{U!2-cn1X~kqL$EEuBM1hwfE~dKg6#<&^(?mtd2;u1i@5u^`?&|W2f2s1 zhq*@xb^y7D9pNv*P6Yc9yoBHt1aBsI3&C3f_66Em`ZlnETju_8X*!UJ;0@XaTOxX+ zq1~k4NWQJ+c9B>6vesi~R)%0|GTHZPhCZ~HRRvwA8a6k&q~?T1x@Idd-L)uIejT0Q zp9+0w+VYjaDhg(Ciiv%Tm(0~W) zY|?&YjQ2AKdbwx0^#r>T3=-P1=f!R0UZkA+xaYY|+zSM|5$sOz=ss>UHI{pcU=PUx z;*CrdrKAqJ5zJRYzYP-si|Qc?KcfhxjOHGHpT5B*mp=x-scX1X3l-U?dLw^2Dk&< zL4y4V_9u8O!2tvZ5*)OKJIo#7K7#LKpqb-fg2xfuZMu+r_&kS$NUnoyAT+C*4)VPm zut~tMhnt{g*U9%JSgN8zYNb}6q;GFF8D2bL{B^fBOQWzDPNyo>O$Ymqbk>q-k5WNf z+T|PWlr+3ga3={4Avm;``xbc;90uzK=+#kDzo#0_xtf()g#}pf&;%yAY0gsmUhW)s zo?s=x<)X(&+y(9;_cQkkWyk%>{l@*yUE(fte{fg0t31U9^PnTSS^R#7X&SP|>odiC z!i6N$l}6J>{%~|cXBnk)53e1<0}`#>WGFN%k$(c|0%#Y(kYC2$*A*;y*Paqi17>WO1pMoTpN6ClRLTRLlU0SO2@)1OHm>oA=xV?Lt|4#5g*3hQX?Hp*W{(^)mFWB6D;j*sUP_(XmJ z51>dPcp|~61g8<4PH+annFMDMoK0{}Kc6DgpZIi{n8#;RAQ*B@b0~)z*bn0?2+lLppZIE6I`TF2ThfQ%Nd)Lmrf;A>O|dLa9OcSv0?6G=5oq`d1%%a)v`^Iayw6K@2<6D|S9G7$Mj z--yWfKRpu;C<>!H_J2+hq5%9hId}*xS@Y!`D9ViQz z`P=zBK&0PAy~@MZ4FDR(gO*@ua1fGRBFM`>$;d_gJ=bJp1HqL;WTY(d;MlJ|{vrNh z9+bH%f@=w`AC!2!$UiQLCdjD9B=MYXcwUZTq(ziH#V?n_PbL^PrjA`Rb6cMG%A!v5 zm!gh3D~UQ0#yChiORqi4za&Y6_523@IesJmJim#5fq#+T%!7&vpaHENI#WmR6oOj_ zo=UKu;9Cfu*3V0R{P3UukL<|BzbQ$BR*N)fmtDCC?)+C4{PR>uexD=@-Y2-tA`3nQ zS#Z5Gm!+3K;*UvE;3&a{9{yv3J8n`69Ou83q`>Er6qqit#Ya%h;L7#aLf{mCS{4G| zNkRZl32g@NuhBQ~{sL-O7@V(VIdUtZS>K!m=iC^l%JxNAYfJmcX7(Bkb|3`sKZ4TA z|3vT%X=|VV8SebT{|amICfPDMOtX}9Jc4Hu{P1;yUDDt9%lsb}{mr5g-A3@Nzto5X zT41h?_W1<*bd;H+PgZZBy%tAU0W+8*%d(DGc$d-7`H)Pyf`npgk zh5;=U5qw{dP(tuc9@8O|3sutiOcyG}I)Wegn@QS|Q@tR2!wHf%9De9;Vwh%Rp+%5v z?0=q-O$)tVK`%|oH-0EBS}7(N6a47l_yaSzNj?ZhO21m@ z61s&M!b|~%@?!))PViEKVSTe~a47N=u&`hvg>?_`uZ~#;-EH!qd%`s6K&bqAJ26N; zuPoRc{(m%}7t3isb^U-oMm;7xBs?rUA}pcogh#1Ig~x=)*;rI0EQQ14i-aeIWmJi< zOjr(@3@j2mB|anA9lP7w3%lDIC9cOPUAuHv*6^G5O;dpr3+DxQmP&^S!*Nv7KDhbd z*vxid20#?JCC8P{(;7_9lFQJWe@@QO1Pdkwto)x=xQmp7+3J2(2EYnorL@^rQC6m# z)%E8URG-iz^hzN3s{l7%U0J}mN>~Sk4q>&hMp!F6L-0z1dkF3&xNnuvFFea$7B&#P zieRAYz+Cr&=vkGon_@9v0VW46JA)>u8rjSw*&eD(^(|9Pfi2l>7Qm%$m9Ry4N!Tj9 zOz>)g*ATpx;Ad8W#Po!H{y8JJS>PQb;+b)DeDg59k6BzI|=UZ5q1&$?B7_kggs!* z67~xF2nK@|kd`dgEMdQJ@CN23;Sh2aju5;-GA}(RHVn3^-^97{Mzy6Bp9r7dDE=4J zSm7&zpO>s*o4}J`u%#gZ*`vpjz$xK7sT$uB{9+F{VVbNr_F#H78d`O-Jzch5jxw7E zrT#55n9@5SoDFUhFAAY6n)qz5DP3O~ad zd&mt-`F<6Clh3I&QNe}F%()_arfxWmhT{YNx39rCuCNoVtZi&%cDIA0ld}u3SVnt{ zmiX8b9UI7~Lx_C9zcf1q*aN9fejropbe(W!yJUHjOurB;*9hh`U}To(=4JrNIM-MJ zd!42R$&yZAhDaR-*lq5FI-7VV=Iz?SRORM2!ef)MxIk;121C`7=b%A6H$%=gyR*ZT zk7QbFo&_vVxoonO5fP9&Il)TAR=}@hMBW~V)~sl+py1^oV<&D@j0y|_l6YvCGBznW zB@?LA#cG-L4yLWh2=54QiNq&y_~26d5iS2Hhtej*85F@(IS@SbR2Q&4;ebFmEPN{P zlG`aAY87FNJ$mg6M0BTNTbd1D~op!_1^LwI1p=Uhs*%b%k;#CQW6JWxDmIdb&UAx@U z<>hcrtI1dhSr30CvEF4;JRGc_6&(|k6%(lnOBQ_BIXTDOifF_5fdHyXlVYuX%bA#r<`YHt8#Mlz|LvuN4bncfCyV9 z!=DXJ%e1`()O|RbAH>*=xtP$D*LG0l;+i;`P~O6#LHx-1_7-Nq?UK^rRT0-Q)Ni3?!HL^TfRnx!-u|)`4u(EVeM?|>j z{M+&^`I|3-s<=_U@O}dol>le>mjHYxQ}yr~j$`ae_AL85Y}Iq{;tgxg4qm+B$T`Cf zY#FEJy0{tKEO>dwt*|d8!k*NfuphM)UY@ZWUYpU!t$~+jtcU%J7r4#b9_|!(k+Z&!iW~_N@kcHN+*6!9G)?=(^S>I*7 z*!q6!2dy8rUTVF}db#xq>mKX<)>mzUZ6a;P+r-+$+vM4l+0@(IV$*8VZqs4YX*1Vm zq0N0Z57<0p^O(&OHc#3-Wz%QVZ}XPTKAXcfKim9a>uDQhn`>KPTWMQmTVvZ|E85;} zd#CLJ+l99G*erw(r^Q zv;DyK6Wh;hKezpIMAZo0h?Wuh5z|JzJL1rYBO{KE_;{pxWW&hDkUVwYmKVvk~eT99M zeU1G-`(yT>*nejK`KbI+)uU=h)s51OIy~yDQNND*ebnVqR~#q@?7%p14uXTVgRO&) zgP+4#hd_s5hY*J_hj0g#LzKgKhggR)2cyH|4zDPR~VI%YZQ9B+5L*YSSG2OS@F zT;{mSagF0Mj{T179iMZ2-th&;7aiYn-0ry3@m-e+dCC5J;uR1YKoRi>W z?d0q<)+xwI{Rd6;MC|e)oG^FolZ-gmN_kVTH(~=)aSI? zX|2;br)QluIBj#<;q;EvyH4*p?R9$JX}{Be(?O@hP9Hg4bar%(bFOio@4U+SUFVZ7 zoQt1Js7ttu$|cHWf=i}Lwo9(dB$oo0B9~GZjZ33TvrCJM-esE0LYGHfo^*N2@JlA~JLf2x~Qr9xq3fC&vZr3HQFS{Odz2fHYmgCmqw!p2= zZN1w@w@q#@y1nMM(`}dAZnr&d``kWo`_S!x+vjdyxqahy%I!P1GwxRI&hDe#J>9+B z{oMoHgWSit$GfMwr@Lpm=eU=+tKA#ib?zszSe!6`?KyF z+&8*!a(~f%i~CmhSKQxs-|s%)e$f4}`$z7_+&^*u%>8rsFWtW$jYfNq&KNyq^gW}W zAANB2PadN@!ad?V5Sxw|jmw#%fIX81G%$Og>oFDVkn2TPcyu7^p zy#l;~yu!S~y;NRNUTI#LUWH!8UUgoLUd>)pyry}zc^SN>dx>86dG&g&@>=8dj90(c zdaviap7(meYqQr&UVFUud41sZq1OSgLtaO`j(UCU^{Ll!uP?l=czb%MdN+CB?Y+VK zL+^7wc0Qp#<9*_M5_~53Wcn2P6#JC=l=)QnRQc5SO!lewndZ~()8S+E>GqlFv&5&z zXN}J@KK(u$eKz^L=(ELVhtDpb{XPRe$9=x`IpK54=X;;CKIeUY^2NS(zW%-ezCpg@ zd_#Sez7f8WzR|uhzHz<ab zU#H(ge$V-B^?TLtHNQ9fcKPl18}K{mci8VEzhi!%`hDm3z28~CAN?-){p|1H@9jU< zKhQteU+Ev=AL$?MpYEUKpW|QdU*kX7zuv#eU+3TAulJwjf0zH0{!jTo?Z48$*MF7& z8vkef`~BDZKj**Qf2aR0|K0w3{NMNg(Ep(SVgIB4ANzmm|NB_Cu}Nb!WA7NdZtT9X zX98>jf&x?l(E%|5aRI3Tc>x6h#R2Moih!zsnt;gx`heB|LqKOhcfibmB>_DFYXY7L zcsAhqfENO`1Z)j>Ct!ELK)}I(F9J>koC-J{a4z7-fQtdY1ag56fkA;GfyzKtV02(? zU_xM0;Kac6z^uU9!1}<3z{bGlz?MLL;IzQDz>dJqz^=fD0-p~&82EFLd(gz7=Ab)* zdV}5!dN*iK(ECCAgN_D$8T56~iJ((K-vyls`Yq^k(A8iZ4EwUd{=ur?nBe%}#Ndg+ z>A{)7*})aT)xlGOrvVg!+^%t_L##uBL$X4O zLP|r*Ln=cWLi8c6A%>97knWI~A+tjkge(eK9P&WO!y!vTHif(qvOVOTkat7&h3pR* z2ss$?Rmh2uQy~{aeh;}Eay66*q4f{3hQrHzGQZha(h`4M8oqKJnh z9*uY+Vp+t~5i28lBQ{375V0lV<%s`8ydH5Z;$*~`h#w-(NBkV|Ys969KUB6VJC&=- zT@|PbRVh^}Rg5Z5m8eQm<*TYylT{j3qe`c0QFW_sS3RIwrCO`%S8Y%|uX<7SlIj)J zYpOR@+f+wX$5fxHj;p>YVCF)dkg+NT*2e$oR zPvpTUMU-=tXH-zs_^9Nl)ToT8?5MmbbyP)Eb=2f2O_VljPSm4O&qsX~^=;I-s2`&) zMdN5TT8OrZ9vMA4+BbS^bWn6ibY%4S=(y;_=%nZ=(MzJ=iryCeLG z$v-JDDL5%KNtu+IRF*U~X>QU3NlzuckhC-DK+@+)r;~n2I-hhQ>6fJ6li6e;*(P~p zvVF2+vU75La#eC`^8Dndlb=oAoV+#p)#TTc-%8${yf^uSADxJ2Ich+?)A*mP3|DmQR*{R$$h+teC9atkNt^7C264b!W}W znwvF0>+!7qtXHx=%=$W;%EsAjHlJ;sJtA9?osnITU6Ea#Jvm#G-I(2+Jw5x@?Ax>N z%3hd#Z}z9z$Foo6@Hw_QAvtk5i8)C*6LWHNDsrlGYIEvyrscHfbmSOw9?f|=XKl_v z&XHW4YnL04o10saTbJ9A+mt&cw=K6L*O)sacUJDo+?~1K=2_)A=Y{7*=8eyb%S+5l z&P&b9$ji>l%PYt$&Qs^L<{9!j^Sbk9<;}^Pmv>tp$-6UeLEfUg#d-JVEzjGMw>$5v zyepI3CXJs|HmPaS%t?zUt(>%V(p!_>p0s1qzDfHh9hh`@(r@`VpU+q1+vhvxd*+YJ z56h3pkIIk9kISE&ugjm3ug~wyzb*gv{JZiO=HHXQIKMxCYyNBbZ{}~y-<7{Re^36t z{BH{Q0>^@o0%d`!Ai5y7AfX_sU}8afK~_O-L4H9~!IXlj1=9-J3#J!z70fJ{Q!uYU zEV!fKu7V{6Zx)v2(F& zv0rg)aY1oyaZB;t#fyp`D_&Ooba7Adn&NfE&lYbe-d235__N}#icb`OTYS32wj`(| zzofq8){+NHo+^2@JV>pHu%-CY0Hf zjVQA#voCWjb18E#^CkPyQ6G%+3vElaXTTM<|hToGEKtVpV8tGK=5-iqFewH0qv9IyDY;+u+76{jnHs5oEoQ^n7fc9o+l zohn@`M^}!i^sWr9jHryNjH!&TOsveQoK#s@SyHL5oK`uja&G1PN>aI~^4`iPDwkC* zuUuKVq4L$r*DBwve7o}f%C9OQ}2@uYRj~TlMkkGu7v-FI4|reX077>Z>)VMp5Hg<6Glj6Ic^kqpXRj ziL6PjG1SbenOifzhSc0sv%2P)nrCbF)_hPiP;;o}qneLvKCAhn=Ife2YN=YfmaDa@ zwXGdl>ry+W)~D9LHn29hHl{Ydc0z4RZGLT0ZE0)# z>^3=W^5n_$C-+W%ck-D!o4Rpz*>%Nr>bi=$syc1mEp=^m9d*XK8FjPj?y6f@cW>SO zbr01&Quln_>vh}ecGT^v+gta3-G_At>b|TyTX&)E=epnOuGCZYbUj<|SnpXszCNM8 zw7$81UcFdYC z)qbr#sr^p-z4n6k7wvD_%i1fAe50b#v(djXuyI^tSYvc!Y-4=mgvR8?oW_#I`bKSI zb7M=RzHwUPZH-GBdm6VizT3E`@nGZUjo&n$Z@kiYwTWuNO*Sp9X7do1{|Z+uh9UWH Hi{bwO^4qgF literal 0 HcmV?d00001 diff --git a/js/main.js b/js/main.js index 9a336e0..0bbeb2f 100644 --- a/js/main.js +++ b/js/main.js @@ -240,3 +240,20 @@ function scanQRCode(funId, title) { } } +function signWithGoogle(funId) { + try { + jsb.signWithGoogle(funId); + } catch(err) { + return JSON.stringify({errcode: 1, errmsg: err}); + } +} + +function signOutGoogle(funId) { + try { + jsb.signOutGoogle(funId); + return JSON.stringify({errcode: 0, data: 'success'}); + } catch(err) { + return JSON.stringify({errcode: 1, errmsg: err}); + } +} +