c1_unity/Assets/Plugins/iOS/KeyChainPlugin.mm
2023-04-03 11:04:31 +08:00

49 lines
1.1 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#import "KeyChainPlugin.h"
#import "UICKeyChainStore.h"
 
NSString *_keyForUUID = @"B2_IOS_USER_GUID";
 
@implementation KeyChainPlugin
 
extern "C" {
    char* getKeyChainUser();
    void setKeyChainUser(const char* uuid);
    void deleteKeyChainUser();
}
 
char* getKeyChainUser()
{
    NSString *userUUID = [UICKeyChainStore stringForKey:_keyForUUID];
 
    if (userUUID == nil || [userUUID isEqualToString:@""]) {
        NSLog(@"No user information");
        userUUID = @"";
    }
 
    return makeStringCopy([userUUID UTF8String]);
}
 
void setKeyChainUser(const char* uuid)
{
    NSString *nsUUID = [NSString stringWithCString: uuid encoding:NSUTF8StringEncoding];
 
    [UICKeyChainStore setString:nsUUID forKey:_keyForUUID];
}
 
void deleteKeyChainUser()
{
    [UICKeyChainStore removeItemForKey:_keyForUUID];
}
 
char* makeStringCopy(const char* str)
{
    if (str == NULL) {
        return NULL;
    }
 
    char* res = (char*)malloc(strlen(str) + 1);
    strcpy(res, str);
    return res;
}
 
@end