完善扫码流程

This commit is contained in:
cebgcontract 2022-11-28 15:32:34 +08:00
parent e22c21583f
commit 9e4ddec771
9 changed files with 138 additions and 70 deletions

View File

@ -0,0 +1,16 @@
//
// NSString+Customer.h
// Unity-iPhone
//
// Created by zhl on 2022/11/28.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface NSString (Customer)
+ (BOOL)isStringEmpty:(NSString *)string;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,27 @@
//
// NSString+Customer.m
// Unity-iPhone
//
// Created by zhl on 2022/11/28.
//
#import "NSString+Customer.h"
@implementation NSString (Customer)
+ (BOOL)isStringEmpty:(NSString *)string {
if (((NSNull *) string == [NSNull null]) || (string == nil) ) {
return YES;
}
if (string == nil) {
return YES;
} else if ([string length] == 0) {
return YES;
}
string = [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
if ([string isEqualToString:@""]) {
return YES;
}
return NO;
}
@end

View File

@ -10,9 +10,9 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@interface UIViewController (QR) @interface UIViewController (QR)
-(void)scanQRCode:(NSString *)funid title:(NSString *) title;
-(void)showQRCode:(NSString *) content title:(NSString *) title oid:(NSString *) oid; -(void)showQRCode:(NSString *) content title:(NSString *) title oid:(NSString *) oid;
-(void)loadRestoreKey:(NSString *)funid oid:(NSString *) oid; -(void)loadRestoreKey:(NSString *)funid oid:(NSString *) oid;
-(void)scanQRCode:(NSString *)funid title:(NSString *) title;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@ -15,14 +15,14 @@
#include "LBXScanTypes.h" #include "LBXScanTypes.h"
#include "QrCodeViewController.h" #include "QrCodeViewController.h"
#include <string> #include <string>
#import "NSString+Customer.h"
#include "JcWallet.h"
@interface UIViewController (QR)<UIImagePickerControllerDelegate, UINavigationControllerDelegate> @interface UIViewController (QR)<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@end @end
@implementation UIViewController (QR) @implementation UIViewController (QR)
-(void)showQRCode:(NSString *) content title:(NSString *) title oid:(NSString *) oid { -(void)showQRCode:(NSString *) content title:(NSString *) title oid:(NSString *) oid {
NSLog(@"showQRCode content: %@, title: %@, oid: %@", content, title, oid); NSLog(@"showQRCode content: %@, title: %@, oid: %@", content, title, oid);
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
@ -44,9 +44,6 @@
-(void)loadRestoreKey:(NSString *)funid oid:(NSString *) oid{ -(void)loadRestoreKey:(NSString *)funid oid:(NSString *) oid{
NSLog(@"loadRestoreKey::funid: %@, oid:%@", funid, oid); NSLog(@"loadRestoreKey::funid: %@, oid:%@", funid, oid);
// if ([NSThread isMainThread]) {
//
// }
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Tips" UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Tips"
message:@"In order to restore recovery key, please Scan QRCode or Pick from Photo Library." message:@"In order to restore recovery key, please Scan QRCode or Pick from Photo Library."
@ -54,22 +51,19 @@
UIAlertAction *actionCancel = [UIAlertAction actionWithTitle:@"Cancel" UIAlertAction *actionCancel = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel style:UIAlertActionStyleCancel
handler: ^(UIAlertAction *action){ handler: ^(UIAlertAction *action){
NSLog(@"alert cancel pressed"); [self nativeCb:funid hasErr:YES dataStr: @"user cancel"];
}]; }];
UIAlertAction *scanAction = [UIAlertAction actionWithTitle:@"Scan" UIAlertAction *scanAction = [UIAlertAction actionWithTitle:@"Scan"
style:UIAlertActionStyleDefault style:UIAlertActionStyleDefault
handler: ^(UIAlertAction *action){ handler: ^(UIAlertAction *action){
NSLog(@"scan pressed"); [self scanQRCode:funid title: @"" restore:YES ];
[self scanQRCode:funid title: @"" ];
}]; }];
UIAlertAction *photoAction = [UIAlertAction actionWithTitle:@"Photo" UIAlertAction *photoAction = [UIAlertAction actionWithTitle:@"Photo"
style:UIAlertActionStyleDefault style:UIAlertActionStyleDefault
handler: ^(UIAlertAction *action){ handler: ^(UIAlertAction *action){
NSLog(@"photo pressed"); [self openLocalPhotoAlbum: funid];
[self openLocalPhotoAlbum];
}]; }];
[alertController addAction:actionCancel]; [alertController addAction:actionCancel];
[alertController addAction:scanAction]; [alertController addAction:scanAction];
@ -78,8 +72,9 @@
}); });
} }
-(void)startScanQRCode:(NSString *)funid title:(NSString *) title{ -(void)beginScanQRCode:(NSString *)funid title:(NSString *) title{
std::string sfunid = std::string([funid UTF8String], [funid lengthOfBytesUsingEncoding:NSUTF8StringEncoding]); std::string sfunid = std::string([funid UTF8String], [funid lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
__weak __typeof(self) weakSelf = self;
if ([QRCodeReader supportsMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]) { if ([QRCodeReader supportsMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]) {
static QRCodeReaderViewController *vc = nil; static QRCodeReaderViewController *vc = nil;
static dispatch_once_t onceToken; static dispatch_once_t onceToken;
@ -98,12 +93,11 @@
NSString *result; NSString *result;
if (resultAsString.length > 0) { if (resultAsString.length > 0) {
result = [NSString stringWithFormat:@"{errcode: 0, data: '%@'}", resultAsString]; [self nativeCb:funid hasErr:NO dataStr: resultAsString];
} else { } else {
result = [NSString stringWithFormat:@"{errcode: 1, errmsg: 'cancel'}"]; NSLog(@"user cancel scan");
[weakSelf loadRestoreKey:funid oid:@""];
} }
std::string sresult = std::string([result UTF8String], [result lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
// WalletEvent::Emit(sfunid.c_str(), sresult.c_str());
}]; }];
}]; }];
[self presentViewController:vc animated:YES completion:NULL]; [self presentViewController:vc animated:YES completion:NULL];
@ -112,35 +106,42 @@
} }
-(void)scanQRCode:(NSString *)funid title:(NSString *) title{ -(void)scanQRCode:(NSString *)funid title:(NSString *) title{
[self scanQRCode:funid title:title restore:false];
}
-(void)scanQRCode:(NSString *)funid title:(NSString *) title restore: (BOOL) restore{
NSLog(@"scanQRCode:: funId: %@ title: %@", funid, title); NSLog(@"scanQRCode:: funId: %@ title: %@", funid, title);
// [self openLocalPhotoAlbum];
// [self signWithApple];
__weak __typeof(self) weakSelf = self; __weak __typeof(self) weakSelf = self;
[LBXPermission authorizeWithType:LBXPermissionType_Camera completion:^(BOOL granted, BOOL firstTime) { [LBXPermission authorizeWithType:LBXPermissionType_Camera completion:^(BOOL granted, BOOL firstTime) {
if (granted) { if (granted) {
[weakSelf startScanQRCode:funid title:title]; [weakSelf beginScanQRCode:funid title:title];
} }
else if(!firstTime) else if(!firstTime) {
{ [LBXPermissionSetting showAlertToDislayPrivacySettingWithTitle:@"Error" msg:@"The camera is need to scan QR codes" cancel:@"Cancel" setting:@"Setting" completion:^{
[LBXPermissionSetting showAlertToDislayPrivacySettingWithTitle:@"Error" msg:@"The camera is need to scan QR codes" cancel:@"Cancel" setting:@"Setting" ]; if (restore) {
[weakSelf loadRestoreKey:funid oid:@""];
} else {
[weakSelf nativeCb:funid hasErr:YES dataStr: @"no permission, need resend"];
}
}];
} }
}]; }];
} }
#pragma mark- - PhotoAlbum #pragma mark- - PhotoAlbum
- (void)openLocalPhotoAlbum { - (void)openLocalPhotoAlbum:(NSString *)funid {
__weak __typeof(self) weakSelf = self; __weak __typeof(self) weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
[LBXPermission authorizeWithType:LBXPermissionType_Photos completion:^(BOOL granted, BOOL firstTime) { [LBXPermission authorizeWithType:LBXPermissionType_Photos completion:^(BOOL granted, BOOL firstTime) {
if (granted) { if (granted) {
[weakSelf openLocalPhoto]; [weakSelf openLocalPhoto:funid];
} }
else if (!firstTime ) else if (!firstTime )
{ {
[LBXPermissionSetting showAlertToDislayPrivacySettingWithTitle:@"Error" msg:@"The Photo Library is need to restore recovery key." cancel:@"Cancel" setting:@"Setting"]; [LBXPermissionSetting showAlertToDislayPrivacySettingWithTitle:@"Error" msg:@"The Photo Library is need to restore recovery key." cancel:@"Cancel" setting:@"Setting" completion:^{
[weakSelf loadRestoreKey:funid oid:@""];
}];
} }
}]; }];
}); });
@ -150,30 +151,31 @@
/*! /*!
* open local Photo Library * open local Photo Library
*/ */
- (void)openLocalPhoto - (void)openLocalPhoto:(NSString *)funid {
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self; picker.delegate = self;
// crash on some mobile // crash on some mobile
picker.allowsEditing = NO; picker.allowsEditing = NO;
picker.title = funid;
[self presentViewController:picker animated:YES completion:nil]; [self presentViewController:picker animated:YES completion:nil];
} }
#pragma mark- - UIImagePickerControllerDelegate #pragma mark- - UIImagePickerControllerDelegate
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info -(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
{
[picker dismissViewControllerAnimated:YES completion:^{ [picker dismissViewControllerAnimated:YES completion:^{
NSString *funid = picker.title;
[self handPhotoDidFinishPickingMediaWithInfo:info]; [self handPhotoDidFinishPickingMediaWithInfo:funid info:info];
}]; }];
} }
- (void)handPhotoDidFinishPickingMediaWithInfo:(NSDictionary *)info -(void)imagePickerControllerDidCancel:(UIImagePickerController*)picker {
{ [picker dismissViewControllerAnimated:YES completion:^{
NSLog(@"imagePickerControllerDidCancel %@", picker.title);
[self loadRestoreKey: picker.title oid: @"" ];
}];
}
- (void)handPhotoDidFinishPickingMediaWithInfo:(NSString *)funid info:(NSDictionary *)info {
__block UIImage* image = [info objectForKey:UIImagePickerControllerEditedImage]; __block UIImage* image = [info objectForKey:UIImagePickerControllerEditedImage];
if (!image){ if (!image){
@ -182,31 +184,41 @@
if (@available(iOS 8.0, *)) { if (@available(iOS 8.0, *)) {
__weak __typeof(self) weakSelf = self; __weak __typeof(self) weakSelf = self;
[LBXScanNative recognizeImage:image success:^(NSArray<LBXScanResult *> *array) { [LBXScanNative recognizeImage:image success:^(NSArray<LBXScanResult *> *array) {
[weakSelf scanResultWithArray:array]; [weakSelf scanResultWithArray:funid array:array];
}]; }];
}else{ }else{
NSLog(@"native低于ios8.0不支持识别图片"); [self nativeCb:funid hasErr:YES dataStr: @"os version is lower then IOS8.0"];
} }
} }
- (void)scanResultWithArray:(NSArray<LBXScanResult*>*)array - (void)scanResultWithArray:(NSString *)funid array:(NSArray<LBXScanResult*>*)array {
{ if (!array || array.count < 1) {
if (!array || array.count < 1) [self nativeCb:funid hasErr:YES dataStr: @"error scan photo"];
{
NSLog(@"error scan photo");
return; return;
} }
for (LBXScanResult *result in array) {
NSLog(@"scanResult:%@",result.strScanned);
}
if (!array[0].strScanned || [array[0].strScanned isEqualToString:@""] ) { if (!array[0].strScanned || [array[0].strScanned isEqualToString:@""] ) {
NSLog(@"识别失败了"); [self nativeCb:funid hasErr:YES dataStr: @"failed decoding QR code"];
return; return;
} }
LBXScanResult *scanResult = array[0]; LBXScanResult *scanResult = array[0];
[self nativeCb:funid hasErr:NO dataStr: scanResult.strScanned];
}
-(void)nativeCb:(NSString *)funid hasErr: (BOOL) hasErr dataStr:(NSString *) dataStr {
if ([NSString isStringEmpty:funid]) {
NSLog(@"nativeCallBack with empty funid: %@", funid);
return;
}
std::string methodName = "nativeCallBack";
NSString *paramStr;
if (hasErr) {
paramStr = [NSString stringWithFormat:@"{\"errcode\": 1, \"errmessage\": \"%@\"}", dataStr];
} else {
paramStr = [NSString stringWithFormat:@"{\"errcode\": 0, \"data\": \"%@\"}", dataStr];
}
std::string sfunid = std::string([funid UTF8String], [funid lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
std::string sparam = std::string([paramStr UTF8String], [paramStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
cocos2d::nativeCallBack(sfunid.c_str(), methodName.c_str(), sparam.c_str());
} }
@end @end

View File

@ -17,4 +17,5 @@
-(void)signOutGoogle:(NSString *)funid; -(void)signOutGoogle:(NSString *)funid;
-(void)saveKey:(NSString *) account key:(NSString *) key; -(void)saveKey:(NSString *) account key:(NSString *) key;
-(NSString *)loadKey:(NSString *) account; -(NSString *)loadKey:(NSString *) account;
//-(void)nativeCb:(NSString *)funid hasErr: (BOOL) hasErr dataStr:(NSString *) dataStr;
@end @end

View File

@ -12,6 +12,7 @@
#include "JcWallet.h" #include "JcWallet.h"
#import <GoogleSignIn/GoogleSignIn.h> #import <GoogleSignIn/GoogleSignIn.h>
#include "KeyChain/DataManager.h" #include "KeyChain/DataManager.h"
#import "NSString+Customer.h"
#import <AuthenticationServices/AuthenticationServices.h> #import <AuthenticationServices/AuthenticationServices.h>
@import GoogleSignIn; @import GoogleSignIn;
@ -29,8 +30,6 @@ static NSString * const kClientID =
[app openURL:[NSURL URLWithString:url]]; [app openURL:[NSURL URLWithString:url]];
} }
// save key to key chain // save key to key chain
-(void)saveKey:(NSString *) account key:(NSString *) key { -(void)saveKey:(NSString *) account key:(NSString *) key {
[[DataManager sharedInstanceWith: SynLock] saveKey: account key: key]; [[DataManager sharedInstanceWith: SynLock] saveKey: account key: key];
@ -42,8 +41,6 @@ static NSString * const kClientID =
return [[DataManager sharedInstanceWith: SynLock] loadKey: account]; return [[DataManager sharedInstanceWith: SynLock] loadKey: account];
} }
-(void)signToGoogle:(NSString *) funid { -(void)signToGoogle:(NSString *) funid {
GIDConfiguration *_configuration = [[GIDConfiguration alloc] initWithClientID:kClientID]; GIDConfiguration *_configuration = [[GIDConfiguration alloc] initWithClientID:kClientID];
[GIDSignIn.sharedInstance signInWithConfiguration:_configuration [GIDSignIn.sharedInstance signInWithConfiguration:_configuration
@ -56,6 +53,7 @@ static NSString * const kClientID =
[self refreshTokenID: user funid:funid]; [self refreshTokenID: user funid:funid];
}]; }];
} }
-(void) refreshTokenID:(GIDGoogleUser *)user funid:(NSString*) funid{ -(void) refreshTokenID:(GIDGoogleUser *)user funid:(NSString*) funid{
[user.authentication doWithFreshTokens:^(GIDAuthentication * _Nullable authentication, [user.authentication doWithFreshTokens:^(GIDAuthentication * _Nullable authentication,
NSError * _Nullable error) { NSError * _Nullable error) {
@ -65,11 +63,7 @@ static NSString * const kClientID =
NSString *idToken = authentication.idToken; NSString *idToken = authentication.idToken;
// Send ID token to backend (example below). // Send ID token to backend (example below).
NSLog(@"idToken: %@", idToken); NSLog(@"idToken: %@", idToken);
std::string methodName = "nativeCallBack"; [self nativeCb:funid hasErr:NO dataStr:idToken];
NSString *paramStr = [NSString stringWithFormat:@"{\"errcode\": 0, \"data\": \"%@\"}", idToken];
std::string sfunid = std::string([funid UTF8String], [funid lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
std::string sparam = std::string([paramStr UTF8String], [paramStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
cocos2d::nativeCallBack(sfunid.c_str(), methodName.c_str(), sparam.c_str());
}]; }];
} }
@ -155,7 +149,6 @@ static NSString * const kClientID =
#pragma mark - 授权回调失败 #pragma mark - 授权回调失败
- (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithError:(NSError *)error API_AVAILABLE(ios(13.0)){ - (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithError:(NSError *)error API_AVAILABLE(ios(13.0)){
NSLog(@"错误信息:%@", error); NSLog(@"错误信息:%@", error);
NSString *errorMsg; NSString *errorMsg;
switch (error.code) { switch (error.code) {
@ -189,8 +182,21 @@ static NSString * const kClientID =
} }
} }
-(void)nativeCb:(NSString *)funid hasErr: (BOOL) hasErr dataStr:(NSString *) dataStr {
if ([NSString isStringEmpty:funid]) {
NSLog(@"nativeCallBack with empty funid: %@", funid);
return;
}
std::string methodName = "nativeCallBack";
NSString *paramStr;
if (hasErr) {
paramStr = [NSString stringWithFormat:@"{\"errcode\": 1, \"errmessage\": \"%@\"}", dataStr];
} else {
paramStr = [NSString stringWithFormat:@"{\"errcode\": 0, \"data\": \"%@\"}", dataStr];
}
std::string sfunid = std::string([funid UTF8String], [funid lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
std::string sparam = std::string([paramStr UTF8String], [paramStr lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
cocos2d::nativeCallBack(sfunid.c_str(), methodName.c_str(), sparam.c_str());
}
@end @end

View File

@ -79,6 +79,7 @@
D0DD4D8D8AC82F06A4331428 /* libil2cpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 924940699744FB37428516DD /* libil2cpp.a */; }; D0DD4D8D8AC82F06A4331428 /* libil2cpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 924940699744FB37428516DD /* libil2cpp.a */; };
D52A8DA1288E6547006574E8 /* libuv_a.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D52A8D9F288E6547006574E8 /* libuv_a.a */; }; D52A8DA1288E6547006574E8 /* libuv_a.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D52A8D9F288E6547006574E8 /* libuv_a.a */; };
D5538BA5287E9908000BDFB6 /* WalletEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5538BA3287E9908000BDFB6 /* WalletEvent.cpp */; }; D5538BA5287E9908000BDFB6 /* WalletEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D5538BA3287E9908000BDFB6 /* WalletEvent.cpp */; };
D5608AF929348B83007F146A /* NSString+Customer.m in Sources */ = {isa = PBXBuildFile; fileRef = D5608AF829348B83007F146A /* NSString+Customer.m */; };
D56436422930AAF700E2B633 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = D56436412930AAF700E2B633 /* UIView+Toast.m */; }; D56436422930AAF700E2B633 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = D56436412930AAF700E2B633 /* UIView+Toast.m */; };
D56436462930ABAB00E2B633 /* UIUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = D56436452930ABAB00E2B633 /* UIUtils.m */; }; D56436462930ABAB00E2B633 /* UIUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = D56436452930ABAB00E2B633 /* UIUtils.m */; };
D56436492930BC1300E2B633 /* AuthenticationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D56436472930BC0900E2B633 /* AuthenticationServices.framework */; }; D56436492930BC1300E2B633 /* AuthenticationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D56436472930BC0900E2B633 /* AuthenticationServices.framework */; };
@ -376,6 +377,8 @@
D52A8D9F288E6547006574E8 /* libuv_a.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libuv_a.a; sourceTree = "<group>"; }; D52A8D9F288E6547006574E8 /* libuv_a.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libuv_a.a; sourceTree = "<group>"; };
D5538BA3287E9908000BDFB6 /* WalletEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WalletEvent.cpp; sourceTree = "<group>"; }; D5538BA3287E9908000BDFB6 /* WalletEvent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WalletEvent.cpp; sourceTree = "<group>"; };
D5538BA4287E9908000BDFB6 /* WalletEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WalletEvent.h; sourceTree = "<group>"; }; D5538BA4287E9908000BDFB6 /* WalletEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WalletEvent.h; sourceTree = "<group>"; };
D5608AF729348B83007F146A /* NSString+Customer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+Customer.h"; sourceTree = "<group>"; };
D5608AF829348B83007F146A /* NSString+Customer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+Customer.m"; sourceTree = "<group>"; };
D56436402930AAF700E2B633 /* UIView+Toast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = "<group>"; }; D56436402930AAF700E2B633 /* UIView+Toast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = "<group>"; };
D56436412930AAF700E2B633 /* UIView+Toast.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = "<group>"; }; D56436412930AAF700E2B633 /* UIView+Toast.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = "<group>"; };
D56436442930ABAB00E2B633 /* UIUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIUtils.h; sourceTree = "<group>"; }; D56436442930ABAB00E2B633 /* UIUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIUtils.h; sourceTree = "<group>"; };
@ -977,6 +980,8 @@
D5AB1D4228C0539600AA6AFA /* UIViewController+Wallet.mm */, D5AB1D4228C0539600AA6AFA /* UIViewController+Wallet.mm */,
D5D9BAF7293477E700F18A7F /* UIViewController+QR.h */, D5D9BAF7293477E700F18A7F /* UIViewController+QR.h */,
D5D9BAF8293477E700F18A7F /* UIViewController+QR.mm */, D5D9BAF8293477E700F18A7F /* UIViewController+QR.mm */,
D5608AF729348B83007F146A /* NSString+Customer.h */,
D5608AF829348B83007F146A /* NSString+Customer.m */,
D5F2D105287C12DD003C2B62 /* JcWallet.h */, D5F2D105287C12DD003C2B62 /* JcWallet.h */,
D5F2D104287C12DD003C2B62 /* JcWallet.mm */, D5F2D104287C12DD003C2B62 /* JcWallet.mm */,
D5538BA4287E9908000BDFB6 /* WalletEvent.h */, D5538BA4287E9908000BDFB6 /* WalletEvent.h */,
@ -1281,6 +1286,7 @@
8AC71EC419E7FBA90027502F /* OrientationSupport.mm in Sources */, 8AC71EC419E7FBA90027502F /* OrientationSupport.mm in Sources */,
D5F2CFA5287BEC0D003C2B62 /* Bulk_Assembly-CSharp_0.cpp in Sources */, D5F2CFA5287BEC0D003C2B62 /* Bulk_Assembly-CSharp_0.cpp in Sources */,
8A7939FD1ED2F53200B44EF1 /* UnityViewControllerBase.mm in Sources */, 8A7939FD1ED2F53200B44EF1 /* UnityViewControllerBase.mm in Sources */,
D5608AF929348B83007F146A /* NSString+Customer.m in Sources */,
D5F2CFA1287BEC0D003C2B62 /* Il2CppGenericMethodDefinitions.cpp in Sources */, D5F2CFA1287BEC0D003C2B62 /* Il2CppGenericMethodDefinitions.cpp in Sources */,
D5F2CF60287BEC0D003C2B62 /* Bulk_UnityEngine.PhysicsModule_0.cpp in Sources */, D5F2CF60287BEC0D003C2B62 /* Bulk_UnityEngine.PhysicsModule_0.cpp in Sources */,
D5F2CF93287BEC0D003C2B62 /* Bulk_UnityEngine.AnimationModule_0.cpp in Sources */, D5F2CF93287BEC0D003C2B62 /* Bulk_UnityEngine.AnimationModule_0.cpp in Sources */,

View File

@ -72,14 +72,14 @@
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent <BreakpointContent
uuid = "CD5DBE0E-A7FC-4F93-B4A6-3E7E540525FA" uuid = "CD5DBE0E-A7FC-4F93-B4A6-3E7E540525FA"
shouldBeEnabled = "Yes" shouldBeEnabled = "No"
ignoreCount = "0" ignoreCount = "0"
continueAfterRunningActions = "No" continueAfterRunningActions = "No"
filePath = "Classes_cocos/UIViewController+Wallet.mm" filePath = "Classes_cocos/UIViewController+Wallet.mm"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "133" startingLineNumber = "127"
endingLineNumber = "133" endingLineNumber = "127"
landmarkName = "-authorizationController:didCompleteWithAuthorization:" landmarkName = "-authorizationController:didCompleteWithAuthorization:"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>