替换icon, 增加生物认证的password保存和恢复功能
@ -66,11 +66,16 @@ bool AppDelegate::applicationDidFinishLaunching()
|
||||
|
||||
se->start();
|
||||
se::AutoHandleScope hs;
|
||||
jsb_run_script("luaframework/Data/js/jsb-adapter/jsb-builtin.js");
|
||||
jsb_run_script("luaframework/Data/js/jcwallet.js");
|
||||
jsb_run_script("luaframework/Data/js/platform.js");
|
||||
jsb_run_script("luaframework/Data/js/main.js");
|
||||
jsb_run_script("luaframework/Data/js/wallet.js");
|
||||
jsb_run_script("js/jsb-adapter/jsb-builtin.js");
|
||||
jsb_run_script("js/jcwallet.js");
|
||||
jsb_run_script("js/platform.js");
|
||||
jsb_run_script("js/main.js");
|
||||
jsb_run_script("js/wallet.js");
|
||||
// jsb_run_script("luaframework/Data/js/jsb-adapter/jsb-builtin.js");
|
||||
// jsb_run_script("luaframework/Data/js/jcwallet.js");
|
||||
// jsb_run_script("luaframework/Data/js/platform.js");
|
||||
// jsb_run_script("luaframework/Data/js/main.js");
|
||||
// jsb_run_script("luaframework/Data/js/wallet.js");
|
||||
se->addAfterCleanupHook([]() {
|
||||
JSBClassType::destroy();
|
||||
});
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "platform/CCApplication.h"
|
||||
#include "base/CCScheduler.h"
|
||||
#include "scrypt/native-crypto.h"
|
||||
#include "rustwallet.h"
|
||||
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
|
||||
#include "AppDelegate.h"
|
||||
@ -565,6 +564,85 @@ static bool JSB_beginBuy(se::State& s)
|
||||
}
|
||||
SE_BIND_FUNC(JSB_beginBuy)
|
||||
|
||||
static bool JSB_passStorageState(se::State& s)
|
||||
{
|
||||
const auto& args = s.args();
|
||||
size_t argc = args.size();
|
||||
CC_UNUSED bool ok = true;
|
||||
if (argc > 1) {
|
||||
std::string funid;
|
||||
ok = seval_to_std_string(args[0], &funid);
|
||||
SE_PRECONDITION2(ok, false, "funid is invalid!");
|
||||
std::string param0;
|
||||
ok = seval_to_std_string(args[1], ¶m0);
|
||||
SE_PRECONDITION2(ok, false, "param0 is invalid!");
|
||||
NSString *nParam0 = [NSString stringWithCString:param0.c_str() encoding: NSUTF8StringEncoding];
|
||||
NSString *nfunid = [NSString stringWithCString:funid.c_str() encoding: NSUTF8StringEncoding];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
UIWindow* window = [[[UIApplication sharedApplication] delegate] window];
|
||||
[window.rootViewController passStorageState:nfunid account: nParam0 ];
|
||||
});
|
||||
return true;
|
||||
}
|
||||
SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 2);
|
||||
return false;
|
||||
}
|
||||
SE_BIND_FUNC(JSB_passStorageState)
|
||||
|
||||
static bool JSB_storagePass(se::State& s)
|
||||
{
|
||||
const auto& args = s.args();
|
||||
size_t argc = args.size();
|
||||
CC_UNUSED bool ok = true;
|
||||
if (argc > 2) {
|
||||
std::string funid;
|
||||
ok = seval_to_std_string(args[0], &funid);
|
||||
SE_PRECONDITION2(ok, false, "funid is invalid!");
|
||||
std::string param0;
|
||||
ok = seval_to_std_string(args[1], ¶m0);
|
||||
SE_PRECONDITION2(ok, false, "param0 is invalid!");
|
||||
std::string pass;
|
||||
ok = seval_to_std_string(args[2], &pass);
|
||||
SE_PRECONDITION2(ok, false, "param1 is invalid!");
|
||||
NSString *nParam0 = [NSString stringWithCString:param0.c_str() encoding: NSUTF8StringEncoding];
|
||||
NSString *nPass = [NSString stringWithCString:pass.c_str() encoding: NSUTF8StringEncoding];
|
||||
NSString *nfunid = [NSString stringWithCString:funid.c_str() encoding: NSUTF8StringEncoding];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
UIWindow* window = [[[UIApplication sharedApplication] delegate] window];
|
||||
[window.rootViewController storagePass:nfunid account: nParam0 pass:nPass ];
|
||||
});
|
||||
return true;
|
||||
}
|
||||
SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 3);
|
||||
return false;
|
||||
}
|
||||
SE_BIND_FUNC(JSB_storagePass)
|
||||
|
||||
static bool JSB_authGetStoragePass(se::State& s)
|
||||
{
|
||||
const auto& args = s.args();
|
||||
size_t argc = args.size();
|
||||
CC_UNUSED bool ok = true;
|
||||
if (argc > 1) {
|
||||
std::string funid;
|
||||
ok = seval_to_std_string(args[0], &funid);
|
||||
SE_PRECONDITION2(ok, false, "funid is invalid!");
|
||||
std::string param0;
|
||||
ok = seval_to_std_string(args[1], ¶m0);
|
||||
SE_PRECONDITION2(ok, false, "param0 is invalid!");
|
||||
NSString *nParam0 = [NSString stringWithCString:param0.c_str() encoding: NSUTF8StringEncoding];
|
||||
NSString *nfunid = [NSString stringWithCString:funid.c_str() encoding: NSUTF8StringEncoding];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
UIWindow* window = [[[UIApplication sharedApplication] delegate] window];
|
||||
[window.rootViewController authGetStoragePass:nfunid account: nParam0 ];
|
||||
});
|
||||
return true;
|
||||
}
|
||||
SE_REPORT_ERROR("wrong number of arguments: %d, was expecting %d", (int)argc, 2);
|
||||
return false;
|
||||
}
|
||||
SE_BIND_FUNC(JSB_authGetStoragePass)
|
||||
|
||||
|
||||
bool jsb_register_walletevent_modules(se::Object* global) {
|
||||
getOrCreatePlainObject_r("jsb", global, &__jsbObj);
|
||||
@ -582,6 +660,9 @@ bool jsb_register_walletevent_modules(se::Object* global) {
|
||||
__jsbObj->defineFunction("queryPurchase", _SE(JSB_queryPurchase));
|
||||
__jsbObj->defineFunction("finishTransaction", _SE(JSB_finishTransaction));
|
||||
__jsbObj->defineFunction("beginBuy", _SE(JSB_beginBuy));
|
||||
__jsbObj->defineFunction("authGetStoragePass", _SE(JSB_authGetStoragePass));
|
||||
__jsbObj->defineFunction("storagePass", _SE(JSB_storagePass));
|
||||
__jsbObj->defineFunction("passStorageState", _SE(JSB_passStorageState));
|
||||
// JSB_signWithEmail
|
||||
// JSB_beginBuyJNI
|
||||
return true;
|
||||
|
@ -14,6 +14,9 @@
|
||||
@end
|
||||
|
||||
static NSString * const cebgWalletService = @"com.cebg.wallet";
|
||||
|
||||
// static NSString * const cebgWalletService = @"com.cege.wallet";
|
||||
//
|
||||
//global var
|
||||
static id _instance;
|
||||
|
||||
@ -66,7 +69,9 @@ InitType _instanceInitType;
|
||||
-(void)saveKey:(NSString *) account key:(NSString *) key {
|
||||
if (keychain == nil ){
|
||||
keychain = [UICKeyChainStore keyChainStoreWithService:cebgWalletService];
|
||||
keychain.synchronizable = YES;
|
||||
// [keychain setAccessibility:UICKeyChainStoreAccessibilityWhenUnlocked authenticationPolicy:UICKeyChainStoreAuthenticationPolicyUserPresence];
|
||||
[keychain setAccessibility:UICKeyChainStoreAccessibilityWhenUnlocked];
|
||||
[keychain setSynchronizable:YES];
|
||||
}
|
||||
keychain[account] = key;
|
||||
}
|
||||
@ -74,7 +79,9 @@ InitType _instanceInitType;
|
||||
-(NSString *)loadKey:(NSString *) account {
|
||||
if (keychain == nil ){
|
||||
keychain = [UICKeyChainStore keyChainStoreWithService:cebgWalletService];
|
||||
keychain.synchronizable = YES;
|
||||
// [keychain setAccessibility:UICKeyChainStoreAccessibilityWhenUnlocked authenticationPolicy:UICKeyChainStoreAuthenticationPolicyUserPresence];
|
||||
[keychain setAccessibility:UICKeyChainStoreAccessibilityWhenUnlocked];
|
||||
[keychain setSynchronizable:YES];
|
||||
}
|
||||
NSError *error;
|
||||
NSString * result = [keychain stringForKey:account error:&error];
|
||||
|
@ -192,7 +192,7 @@ __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);
|
||||
|
||||
+ (nullable NSArray *)allItemsWithItemClass:(UICKeyChainStoreItemClass)itemClass;
|
||||
- (nullable NSArray *)allItems;
|
||||
|
||||
- (void)setAccessibility:(UICKeyChainStoreAccessibility)accessibility;
|
||||
- (void)setAccessibility:(UICKeyChainStoreAccessibility)accessibility authenticationPolicy:(UICKeyChainStoreAuthenticationPolicy)authenticationPolicy
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
|
||||
|
||||
|
@ -944,6 +944,10 @@ static NSString *_defaultService;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setAccessibility:(UICKeyChainStoreAccessibility)accessibility {
|
||||
_accessibility = accessibility;
|
||||
}
|
||||
|
||||
- (void)setAccessibility:(UICKeyChainStoreAccessibility)accessibility authenticationPolicy:(UICKeyChainStoreAuthenticationPolicy)authenticationPolicy
|
||||
{
|
||||
_accessibility = accessibility;
|
||||
|
@ -9,18 +9,20 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
|
||||
@interface UIViewController (Wallet)
|
||||
|
||||
+(void)toWallet:(NSString *)url;
|
||||
-(void)signWithGoogle:(NSString *)funid;
|
||||
-(void)signWithApple:(NSString *)funid;
|
||||
-(void)signWithTikTok:(NSString *)funid;
|
||||
-(void)signWithFacebook:(NSString *)funid;
|
||||
-(void)signWithTwitter:(NSString *)funid;
|
||||
-(void)signOutGoogle:(NSString *)funid;
|
||||
-(void)saveKey:(NSString *) account key:(NSString *) key;
|
||||
-(NSString *)loadKey:(NSString *) account;
|
||||
-(void)showPage:(NSString *)url;
|
||||
-(void)nativeCb:(NSString *)funid hasErr: (BOOL) hasErr dataStr:(NSString *) dataStr;
|
||||
+ (void)toWallet:(NSString *)url;
|
||||
- (void)signWithGoogle:(NSString *)funid;
|
||||
- (void)signWithApple:(NSString *)funid;
|
||||
- (void)signWithTikTok:(NSString *)funid;
|
||||
- (void)signWithFacebook:(NSString *)funid;
|
||||
- (void)signWithTwitter:(NSString *)funid;
|
||||
- (void)signOutGoogle:(NSString *)funid;
|
||||
- (void)saveKey:(NSString *)account key:(NSString *)key;
|
||||
- (NSString *)loadKey:(NSString *)account;
|
||||
- (void)showPage:(NSString *)url;
|
||||
- (void)nativeCb:(NSString *)funid hasErr:(BOOL)hasErr dataStr:(NSString *)dataStr;
|
||||
- (void)passStorageState:(NSString *)funid account:(NSString *)account;
|
||||
- (void)storagePass:(NSString *)funid account:(NSString *)account pass:(NSString *)pass;
|
||||
- (void)authGetStoragePass:(NSString *)funid account:(NSString *)account;
|
||||
@end
|
||||
|
@ -17,6 +17,8 @@
|
||||
#import "NSString+Customer.h"
|
||||
#import "NSData+Base64.h"
|
||||
#import "AppleSignIn.h"
|
||||
#include "cocos/scripting/js-bindings/manual/jsb_global.h"
|
||||
#import <LocalAuthentication/LocalAuthentication.h>
|
||||
|
||||
@import FBSDKLoginKit;
|
||||
@import GoogleSignIn;
|
||||
@ -35,12 +37,13 @@ static WebPageViewController *webpageVC = nil;
|
||||
|
||||
// save key to key chain
|
||||
-(void)saveKey:(NSString *) account key:(NSString *) key {
|
||||
// NSLog(@"saveKey::account:%@, key:%@", account, key);
|
||||
[[DataManager sharedInstanceWith: SynLock] saveKey: account key: key];
|
||||
}
|
||||
|
||||
// load key from key chain
|
||||
-(NSString *)loadKey:(NSString *) account {
|
||||
NSLog(@"loadKey::account:%@", account);
|
||||
// NSLog(@"loadKey::account:%@", account);
|
||||
return [[DataManager sharedInstanceWith: SynLock] loadKey: account];
|
||||
}
|
||||
|
||||
@ -121,10 +124,10 @@ static WebPageViewController *webpageVC = nil;
|
||||
request.permissions = scopesSet;
|
||||
|
||||
/* STEP 2: Send the request */
|
||||
// __weak typeof(self) ws = self;
|
||||
// __weak typeof(self) ws = self;
|
||||
[request sendAuthRequestViewController:self
|
||||
completion:^(TikTokOpenSDKAuthResponse *_Nonnull resp) {
|
||||
// __strong typeof(ws) sf = ws;
|
||||
// __strong typeof(ws) sf = ws;
|
||||
|
||||
/* STEP 3: Parse and handle the response */
|
||||
if (resp.errCode == 0) {
|
||||
@ -211,4 +214,116 @@ static WebPageViewController *webpageVC = nil;
|
||||
[self presentViewController:webpageVC animated:YES completion:nil];
|
||||
}
|
||||
|
||||
#pragma mark -- biometrics
|
||||
-(BOOL)checkTouchIDFaceID{
|
||||
LAContext *LAContent = [[LAContext alloc] init];
|
||||
NSError *authError = nil;
|
||||
BOOL isCanEvaluatePolicy = [LAContent canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&authError];
|
||||
NSLog(@"isCanEvaluatePolicy: %d", isCanEvaluatePolicy);
|
||||
if (authError) {
|
||||
NSLog(@"check TouchID or FaceID fail!\n error : %@",authError.localizedDescription);
|
||||
return NO;
|
||||
} else {
|
||||
if (isCanEvaluatePolicy) {
|
||||
if (@available(iOS 11.0, *)) {
|
||||
switch (LAContent.biometryType) {
|
||||
case LABiometryTypeNone:
|
||||
{
|
||||
NSLog(@"The device does not support biometry.");
|
||||
return NO;
|
||||
}
|
||||
case LABiometryTypeTouchID:
|
||||
{
|
||||
NSLog(@"The device supports Touch ID.");
|
||||
return YES;
|
||||
}
|
||||
case LABiometryTypeFaceID:
|
||||
{
|
||||
NSLog(@"The device supports Face ID.");
|
||||
return YES;
|
||||
}
|
||||
default:
|
||||
return NO;
|
||||
}
|
||||
} else {
|
||||
// Fallback on earlier versions
|
||||
NSLog(@"The device supports Face ID.");
|
||||
return YES;
|
||||
}
|
||||
} else {
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString *) generateAccountKey:(NSString *) account {
|
||||
NSString *key = [NSString stringWithFormat:@"%@%@", account, @"_pass"];
|
||||
return key;
|
||||
}
|
||||
|
||||
- (void)storagePass:(NSString *)funid account:(NSString *)account pass:(NSString *)pass {
|
||||
// NSLog(@"storagePass: %@, %@", account, pass);
|
||||
std::string passStr = std::string([pass UTF8String], [pass lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
|
||||
std::string keyStr = std::string([account UTF8String], [account lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
|
||||
keyStr = keyStr + "0x741482aE1480E552735E44Ff3A733448AcBbeD8d";
|
||||
std::string passEncrypt = encrypt_aes(passStr, keyStr);
|
||||
NSString *passEncryptStr = [NSString stringWithCString:passEncrypt.c_str() encoding:NSUTF8StringEncoding];
|
||||
NSString *accountKey = [self generateAccountKey:account];
|
||||
[self saveKey:accountKey key:passEncryptStr];
|
||||
[self nativeCb:funid hasErr:NO dataStr: @"success"];
|
||||
}
|
||||
|
||||
-(void)passStorageState: (NSString *) funid account:(NSString *) account {
|
||||
BOOL hasTouchID = [self checkTouchIDFaceID];
|
||||
NSString *accountKey = [self generateAccountKey:account];
|
||||
NSString *val = [self loadKey: accountKey];
|
||||
NSMutableDictionary *json = [[NSMutableDictionary alloc] init];
|
||||
json[@"biometrics"] = hasTouchID ? @1 : @0;
|
||||
json[@"haspass"] = [NSString isStringEmpty:val] ? @0 : @1;
|
||||
NSError *error;
|
||||
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingPrettyPrinted error:&error];
|
||||
if (error) {
|
||||
[self nativeCb:funid hasErr:YES dataStr: @"serialization json error"];
|
||||
} else {
|
||||
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
||||
[self nativeCb:funid hasErr:NO dataStr: jsonString];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)authGetStoragePass: (NSString *) funid account: (NSString *) account{
|
||||
LAContext *context = [LAContext new];
|
||||
|
||||
NSError *error = nil;
|
||||
BOOL isUseTouchID = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:&error];
|
||||
if (error) {
|
||||
[self nativeCb:funid hasErr:YES dataStr:error.localizedDescription];
|
||||
} else {
|
||||
if (isUseTouchID) {
|
||||
NSLog(@"had biometrics");
|
||||
[context evaluatePolicy:LAPolicyDeviceOwnerAuthentication localizedReason:@"Access keychain password" reply:^(BOOL success, NSError * _Nullable error) {
|
||||
if (success) {
|
||||
NSString *accountKey = [self generateAccountKey:account];
|
||||
NSString *val = [self loadKey: accountKey];
|
||||
if ([NSString isStringEmpty:val]) {
|
||||
[self nativeCb:funid hasErr:YES dataStr:@"no pass"];
|
||||
} else {
|
||||
std::string keyStr = std::string([account UTF8String], [account lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
|
||||
keyStr = keyStr + "0x741482aE1480E552735E44Ff3A733448AcBbeD8d";
|
||||
std::string passEncrypt = std::string([val UTF8String], [val lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
|
||||
std::string passDecrypt = decrypt_aes(passEncrypt, keyStr);
|
||||
NSString *passDecryptStr = [NSString stringWithCString:passDecrypt.c_str() encoding:NSUTF8StringEncoding];
|
||||
[self nativeCb:funid hasErr:NO dataStr: passDecryptStr];
|
||||
}
|
||||
}else{
|
||||
NSLog(@"%ld||%@",error.code, error.localizedDescription);
|
||||
[self nativeCb:funid hasErr:YES dataStr:error.localizedDescription];
|
||||
}
|
||||
}];
|
||||
}else{
|
||||
NSLog(@"no biometrics");
|
||||
NSLog(@"%ld||%@",error.code, error.localizedDescription);
|
||||
[self nativeCb:funid hasErr:YES dataStr:error.localizedDescription];
|
||||
}
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
@ -89,6 +89,8 @@
|
||||
<string>THe microphoe is need to talk in game.</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>Restore Wallet recovery key need Photo Libray</string>
|
||||
<key>NSFaceIDUsageDescription</key>
|
||||
<string>Use Face ID to unlock the wallet</string>
|
||||
<key>SKAdNetworkItems</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -3,614 +3,4 @@
|
||||
uuid = "FBE6B024-8F98-4B20-920C-CB18880934F0"
|
||||
type = "0"
|
||||
version = "2.0">
|
||||
<Breakpoints>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "59E92D35-4D9C-4180-9A3A-4109A376A0D4"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/AppDelegate.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "49"
|
||||
endingLineNumber = "49"
|
||||
landmarkName = "AppDelegate::applicationDidFinishLaunching()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "2810D2B3-E617-46C6-8481-904F03938601"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes/UnityAppController.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "359"
|
||||
endingLineNumber = "359"
|
||||
landmarkName = "-application:didFinishLaunchingWithOptions:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "7B38EEBB-ECBA-44A0-BA4D-B9E98DD50788"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "MainApp/main.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "27"
|
||||
endingLineNumber = "27"
|
||||
landmarkName = "main(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "2084E458-5985-4B8D-91C7-9683024F7A82"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "MainApp/main.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "22"
|
||||
endingLineNumber = "22"
|
||||
landmarkName = "main(argc, argv)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "A1F98991-065E-4367-9D39-DA762AD02226"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/KeyChain/DataManager.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "67"
|
||||
endingLineNumber = "67"
|
||||
landmarkName = "-saveKey:key:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E61866CE-9F22-4290-BA66-154B156B2A9F"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/KeyChain/DataManager.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "75"
|
||||
endingLineNumber = "75"
|
||||
landmarkName = "-loadKey:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "55FFEE8D-90DE-4FE4-B8C5-800B8EC2B12B"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../../crypto/cocos_js/cocos/scripting/js-bindings/manual/jsb_global.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1177"
|
||||
endingLineNumber = "1177"
|
||||
landmarkName = "JSB_walletSecKey(s)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "16A8A689-2943-4209-844B-12BD02C1192F"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../../crypto/cocos_js/cocos/scripting/js-bindings/manual/jsb_global.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "1178"
|
||||
endingLineNumber = "1178"
|
||||
landmarkName = "JSB_walletSecKey(s)"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "C1B2AAC2-26E1-4FD0-A684-FE40E12627CD"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/JcWallet.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "183"
|
||||
endingLineNumber = "183"
|
||||
landmarkName = "JcWallet::jsToUnity(funId, msg)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "F0E66E91-A0D4-413E-A47A-7D94782DDEE0"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Logger.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "32"
|
||||
endingLineNumber = "32"
|
||||
landmarkName = "-logEvent:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "196DD24B-12E2-4F6C-A3D6-D305C921996C"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Logger.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "47"
|
||||
endingLineNumber = "47"
|
||||
landmarkName = "-logEvent:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "891AD390-7124-4EFA-B40D-9730394DF38B"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes/UnityAppController.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "407"
|
||||
endingLineNumber = "407"
|
||||
landmarkName = "-application:didFinishLaunchingWithOptions:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "DB21E235-4B65-46EF-8B7D-A2478DF2AF6E"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Logger.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "45"
|
||||
endingLineNumber = "45"
|
||||
landmarkName = "-logEvent:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "972534CF-6961-4EBA-A8F7-0A0C0DBA257C"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Logger.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "41"
|
||||
endingLineNumber = "41"
|
||||
landmarkName = "-logEvent:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "3A702ECC-3A6F-49D9-B559-60DD627B3AE1"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/JcWallet.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "189"
|
||||
endingLineNumber = "189"
|
||||
landmarkName = "initEnv()"
|
||||
landmarkType = "9">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "BC9EFF06-D59A-4CAE-8ADE-8B169EEEF334"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/JcWallet.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "115"
|
||||
endingLineNumber = "115"
|
||||
landmarkName = "JcWallet::initEnv()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "4D59F0BA-B8D8-4997-82C4-0E290B339761"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "41"
|
||||
endingLineNumber = "41"
|
||||
landmarkName = "-queryProducts:products:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "EFF0CD4A-8153-4757-B4A4-357559BA0D1B"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "94"
|
||||
endingLineNumber = "94"
|
||||
landmarkName = "-queryProducts:products:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "6CDA02A2-8D28-4324-BFE6-7B2F4037BCB7"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "71"
|
||||
endingLineNumber = "71"
|
||||
landmarkName = "-queryProducts:products:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E24AA442-B796-47C7-B2EC-28713FB595F3"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "43"
|
||||
endingLineNumber = "43"
|
||||
landmarkName = "-queryProducts:products:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "41E5D281-1A9D-4031-AF76-9BDCF83C9611"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "77"
|
||||
endingLineNumber = "77"
|
||||
landmarkName = "-queryProducts:products:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "79F18C2C-0D3F-41EE-BCEC-0A1B0D6DDC2F"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Wallet.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "174"
|
||||
endingLineNumber = "174"
|
||||
landmarkName = "-nativeCb:hasErr:dataStr:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "8B87105F-C5EE-489F-BF1E-00FDF62602D0"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "132"
|
||||
endingLineNumber = "132"
|
||||
landmarkName = "-paymentQueue:updatedTransactions:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "6E8F3D37-5AC6-454A-8526-57B1C343F168"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "108"
|
||||
endingLineNumber = "108"
|
||||
landmarkName = "-queryPurchase:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "298A81F7-4B66-40D1-8EA3-BE7606FB25D2"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "191"
|
||||
endingLineNumber = "191"
|
||||
landmarkName = "-handleTransactionPurchased:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E989D350-F926-417F-BB88-2C17D5DDE9F2"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "51"
|
||||
endingLineNumber = "51"
|
||||
landmarkName = "-getAppReceipt"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "69659E6C-1EDA-428A-A479-A7139FF808A3"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "57"
|
||||
endingLineNumber = "57"
|
||||
landmarkName = "-getAppReceipt"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E2F34C60-2F85-4D8F-8A0A-75BD5B33C607"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "156"
|
||||
endingLineNumber = "156"
|
||||
landmarkName = "-alertWithTitle:message:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "9119790E-EDB6-49DA-B186-43B0CE2E3876"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "157"
|
||||
endingLineNumber = "157"
|
||||
landmarkName = "-alertWithTitle:message:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "A9CA3DDC-6205-4BD4-8933-EA7A3B91A6F3"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "207"
|
||||
endingLineNumber = "207"
|
||||
landmarkName = "-handleTransactionFailed:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "15FCA0D4-7E42-43F6-9DC2-FB0643322A2D"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "265"
|
||||
endingLineNumber = "265"
|
||||
landmarkName = "-onPurchaseResult:errorCode:errorDescription:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "E2A13FEA-03B1-44A2-A66B-EF0B840EBBDB"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "../../crypto/cocos_js/cocos/scripting/js-bindings/jswrapper/Value.cpp"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "539"
|
||||
endingLineNumber = "539"
|
||||
landmarkName = "Value::toObject()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "8DEA81D0-F534-48B1-B519-461E07A17677"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/AppDelegate.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "69"
|
||||
endingLineNumber = "69"
|
||||
landmarkName = "AppDelegate::applicationDidFinishLaunching()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "BD2882FC-C072-4CE1-844A-B339C7AF21D9"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "115"
|
||||
endingLineNumber = "115"
|
||||
landmarkName = "-beginBuy:productId:orderId:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "A6E70BD2-FECB-4683-A170-4830D7CB026B"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "124"
|
||||
endingLineNumber = "124"
|
||||
landmarkName = "-beginBuy:productId:orderId:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "820583EC-CE7D-4683-BC79-64E9EEBA6287"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "purchase/StoreObserver.m"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "266"
|
||||
endingLineNumber = "266"
|
||||
landmarkName = "-onPurchaseResult:errorCode:errorDescription:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "F35AF2EC-613F-4489-AD46-ABA9D1D2EFD9"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "173"
|
||||
endingLineNumber = "173"
|
||||
landmarkName = "-handlePurchaseNotification:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
<BreakpointProxy
|
||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||
<BreakpointContent
|
||||
uuid = "4E1E964B-B983-4D31-A79F-BEA739EE307B"
|
||||
shouldBeEnabled = "No"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes_cocos/UIViewController+Purchase.mm"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "180"
|
||||
endingLineNumber = "180"
|
||||
landmarkName = "-handlePurchaseNotification:"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
</BreakpointProxy>
|
||||
</Breakpoints>
|
||||
</Bucket>
|
||||
|
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 652 B |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 820 B |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.1 KiB |
351
Unity-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json
Normal file → Executable file
@ -1,350 +1 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "40.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "60.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "29.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "1x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "58.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "87.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "80.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "120.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "57.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "1x",
|
||||
"size" : "57x57"
|
||||
},
|
||||
{
|
||||
"filename" : "114.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "57x57"
|
||||
},
|
||||
{
|
||||
"filename" : "120.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename" : "180.png",
|
||||
"idiom" : "iphone",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename" : "20.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "40.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename" : "29.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "58.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "40.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "80.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename" : "50.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "50x50"
|
||||
},
|
||||
{
|
||||
"filename" : "100.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "50x50"
|
||||
},
|
||||
{
|
||||
"filename" : "72.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "72x72"
|
||||
},
|
||||
{
|
||||
"filename" : "144.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "72x72"
|
||||
},
|
||||
{
|
||||
"filename" : "76.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "1x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"filename" : "152.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"filename" : "167.png",
|
||||
"idiom" : "ipad",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"filename" : "1024.png",
|
||||
"idiom" : "ios-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"filename" : "16.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "16x16"
|
||||
},
|
||||
{
|
||||
"filename" : "32.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "16x16"
|
||||
},
|
||||
{
|
||||
"filename" : "32.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "32x32"
|
||||
},
|
||||
{
|
||||
"filename" : "64.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "32x32"
|
||||
},
|
||||
{
|
||||
"filename" : "128.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "128x128"
|
||||
},
|
||||
{
|
||||
"filename" : "256.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "128x128"
|
||||
},
|
||||
{
|
||||
"filename" : "256.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "256x256"
|
||||
},
|
||||
{
|
||||
"filename" : "512.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "256x256"
|
||||
},
|
||||
{
|
||||
"filename" : "512.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "512x512"
|
||||
},
|
||||
{
|
||||
"filename" : "1024.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "2x",
|
||||
"size" : "512x512"
|
||||
},
|
||||
{
|
||||
"filename" : "48.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "24x24",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"filename" : "55.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "27.5x27.5",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"filename" : "58.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "87.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "companionSettings",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename" : "66.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "notificationCenter",
|
||||
"scale" : "2x",
|
||||
"size" : "33x33",
|
||||
"subtype" : "45mm"
|
||||
},
|
||||
{
|
||||
"filename" : "80.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"filename" : "88.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "44x44",
|
||||
"subtype" : "40mm"
|
||||
},
|
||||
{
|
||||
"filename" : "92.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "46x46",
|
||||
"subtype" : "41mm"
|
||||
},
|
||||
{
|
||||
"filename" : "100.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "50x50",
|
||||
"subtype" : "44mm"
|
||||
},
|
||||
{
|
||||
"filename" : "102 1.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "51x51",
|
||||
"subtype" : "45mm"
|
||||
},
|
||||
{
|
||||
"filename" : "108 1.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "appLauncher",
|
||||
"scale" : "2x",
|
||||
"size" : "54x54",
|
||||
"subtype" : "49mm"
|
||||
},
|
||||
{
|
||||
"filename" : "172.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "86x86",
|
||||
"subtype" : "38mm"
|
||||
},
|
||||
{
|
||||
"filename" : "196.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "98x98",
|
||||
"subtype" : "42mm"
|
||||
},
|
||||
{
|
||||
"filename" : "216.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "108x108",
|
||||
"subtype" : "44mm"
|
||||
},
|
||||
{
|
||||
"filename" : "234 1.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "117x117",
|
||||
"subtype" : "45mm"
|
||||
},
|
||||
{
|
||||
"filename" : "258 1.png",
|
||||
"idiom" : "watch",
|
||||
"role" : "quickLook",
|
||||
"scale" : "2x",
|
||||
"size" : "129x129",
|
||||
"subtype" : "49mm"
|
||||
},
|
||||
{
|
||||
"filename" : "1024.png",
|
||||
"idiom" : "watch-marketing",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
{"images":[{"size":"20x20","idiom":"iphone","filename":"iPhoneNotification_20pt@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"iPhoneNotification_20pt@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"iPhoneSpootlight5_29pt@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"iPhoneSpootlight5_29pt@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"iPhoneSpootlight7_40pt@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"iPhoneSpootlight7_40pt@3x.png","scale":"3x"},{"size":"60x60","idiom":"iphone","filename":"iPhoneApp_60pt@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"iPhoneApp_60pt@3x.png","scale":"3x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"store_1024pt.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}
|
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneApp_60pt@2x.png
Executable file
After Width: | Height: | Size: 32 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneApp_60pt@3x.png
Executable file
After Width: | Height: | Size: 65 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneNotification_20pt@2x.png
Executable file
After Width: | Height: | Size: 4.5 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneNotification_20pt@3x.png
Executable file
After Width: | Height: | Size: 9.4 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneSpootlight5_29pt@2x.png
Executable file
After Width: | Height: | Size: 8.9 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneSpootlight5_29pt@3x.png
Executable file
After Width: | Height: | Size: 18 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneSpootlight7_40pt@2x.png
Executable file
After Width: | Height: | Size: 16 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/iPhoneSpootlight7_40pt@3x.png
Executable file
After Width: | Height: | Size: 32 KiB |
BIN
Unity-iPhone/Images.xcassets/AppIcon.appiconset/store_1024pt.png
Executable file
After Width: | Height: | Size: 1.0 MiB |
@ -2,6 +2,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>aps-environment</key>
|
||||
<string>development</string>
|
||||
<key>com.apple.developer.applesignin</key>
|
||||
<array>
|
||||
<string>Default</string>
|
||||
|
39
js/main.js
@ -247,7 +247,21 @@ function mintNFT(funId, address, tokenIds, startTime, saltNonce, signature, esti
|
||||
* accountId: account id of game user
|
||||
* orderId: from pre pay
|
||||
*/
|
||||
function beginPay(funId, crypto, address, fiat, fiatAmount, payWayCode, country, accountId, orderId) {
|
||||
function beginPay(
|
||||
funId,
|
||||
network,
|
||||
crypto,
|
||||
address,
|
||||
fiat,
|
||||
fiatAmount,
|
||||
payWayCode,
|
||||
country,
|
||||
accountId,
|
||||
orderId,
|
||||
timestamp,
|
||||
salt,
|
||||
sign
|
||||
) {
|
||||
promiseCb(
|
||||
funId,
|
||||
jc.wallet.paySvr.alchemyPrePay({
|
||||
@ -259,6 +273,10 @@ function beginPay(funId, crypto, address, fiat, fiatAmount, payWayCode, country,
|
||||
country,
|
||||
accountId,
|
||||
orderId,
|
||||
network,
|
||||
timestamp,
|
||||
salt,
|
||||
sign,
|
||||
})
|
||||
);
|
||||
}
|
||||
@ -550,3 +568,22 @@ function beginGoogleBuy(funId, productId, orderId) {
|
||||
}
|
||||
// end of in-app pay
|
||||
|
||||
function deleteAccount(funId) {
|
||||
promiseCb(funId, jc.wallet.deleteAccount());
|
||||
}
|
||||
|
||||
function resetWalletAddress(funId) {
|
||||
promiseCb(funId, jc.wallet.resetWalletAddress());
|
||||
}
|
||||
|
||||
function storePassLocal(funId, key, val) {
|
||||
promiseCb(funId, jc.wallet.nativeSvr.storagePass(key, val));
|
||||
}
|
||||
|
||||
function restorePassLocal(funId, key) {
|
||||
promiseCb(funId, jc.wallet.nativeSvr.authGetStoragePass(key));
|
||||
}
|
||||
|
||||
function getLocalPassState(funId, key) {
|
||||
promiseCb(funId, jc.wallet.nativeSvr.passStorageState(key));
|
||||
}
|
||||
|