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

49 lines
1.1 KiB
Plaintext
Raw 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