替换icon, 增加生物认证的password保存和恢复功能

This commit is contained in:
CounterFire2023 2023-08-15 18:58:21 +08:00
parent 6cfeece523
commit 7d1cea16dc
61 changed files with 975 additions and 2579 deletions

View File

@ -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();
});

View File

@ -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], &param0);
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], &param0);
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], &param0);
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;

View File

@ -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];

View File

@ -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);

View File

@ -944,6 +944,10 @@ static NSString *_defaultService;
}
}
- (void)setAccessibility:(UICKeyChainStoreAccessibility)accessibility {
_accessibility = accessibility;
}
- (void)setAccessibility:(UICKeyChainStoreAccessibility)accessibility authenticationPolicy:(UICKeyChainStoreAuthenticationPolicy)authenticationPolicy
{
_accessibility = accessibility;

View File

@ -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

View File

@ -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];
}
@ -119,24 +122,24 @@ static WebPageViewController *webpageVC = nil;
NSOrderedSet *scopesSet = [NSOrderedSet orderedSetWithArray:scopes];
TikTokOpenSDKAuthRequest *request = [[TikTokOpenSDKAuthRequest alloc] init];
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;
/* STEP 3: Parse and handle the response */
if (resp.errCode == 0) {
NSString *responseCode = resp.code;
// Upload response code to your server and obtain user access token
[self nativeCb:funid hasErr:NO dataStr:responseCode];
NSLog(@"tiktok resp: %@", responseCode);
} else {
// User authorization failed. Handle errors
NSLog(@"tiktok resp error: %@", resp.description);
[self nativeCb:funid hasErr:YES dataStr: resp.description];
}
completion:^(TikTokOpenSDKAuthResponse *_Nonnull resp) {
// __strong typeof(ws) sf = ws;
/* STEP 3: Parse and handle the response */
if (resp.errCode == 0) {
NSString *responseCode = resp.code;
// Upload response code to your server and obtain user access token
[self nativeCb:funid hasErr:NO dataStr:responseCode];
NSLog(@"tiktok resp: %@", responseCode);
} else {
// User authorization failed. Handle errors
NSLog(@"tiktok resp error: %@", resp.description);
[self nativeCb:funid hasErr:YES dataStr: resp.description];
}
}];
}
@ -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

View File

@ -59,23 +59,23 @@
<string>3e29f2606ae15a99bb3824d2ef1a9d0b</string>
<key>FacebookDisplayName</key>
<string>CEBG</string>
<key>FacebookAutoLogAppEventsEnabled</key>
<true/>
<key>FacebookAdvertiserIDCollectionEnabled</key>
<true/>
<key>FacebookAutoLogAppEventsEnabled</key>
<true/>
<key>FacebookAdvertiserIDCollectionEnabled</key>
<true/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
<string>tiktokopensdk</string>
<string>tiktoksharesdk</string>
<string>snssdk1180</string>
<string>snssdk1233</string>
<string>tiktokopensdk</string>
<string>tiktoksharesdk</string>
<string>snssdk1180</string>
<string>snssdk1233</string>
</array>
<key>TikTokAppID</key>
<string>awqbuzh2qymmq8hs</string>
<key>TikTokAppID</key>
<string>awqbuzh2qymmq8hs</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
@ -83,12 +83,14 @@
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>The camera is need to scan QR codes</string>
<key>NSMicrophoneUsageDescription</key>
<string>THe microphoe is need to talk in game.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Restore Wallet recovery key need Photo Libray</string>
<key>NSCameraUsageDescription</key>
<string>The camera is need to scan QR codes</string>
<key>NSMicrophoneUsageDescription</key>
<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>
@ -329,8 +331,8 @@
</array>
<key>UIRequiresFullScreen</key>
<true/>
<key>UISupportsTrueScreenSizeOnMac</key>
<true/>
<key>UISupportsTrueScreenSizeOnMac</key>
<true/>
<key>UIRequiresPersistentWiFi</key>
<false/>
<key>UIStatusBarHidden</key>

File diff suppressed because it is too large Load Diff

View File

@ -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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

View 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"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@ -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>

File diff suppressed because one or more lines are too long

View File

@ -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));
}