Post

Replies

Boosts

Views

Activity

Keychain errSecItemNotFound
Hello Apple Developer: I encountered some issues during development. I encrypted the secret key and stored it in the Keychain, but it failed when I tried to read it. I would like to ask if there is any problem with the code I wrote. Below is my code, including the storage and retrieval NSMutableDictionary *query = [[NSMutableDictionary alloc] initWithObjectsAndKeys:(id)kSecClassGenericPassword,(id)kSecClass, serviceID,(id)kSecAttrService, @YES,(id)kSecReturnData,nil]; CFTypeRef dataTypeRef = NULL; NSLog(@"SecItemCopyMatching"); OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)(query), &dataTypeRef); NSLog(@"SecItemCopyMatching end status = %d",status); if (status == errSecSuccess) { *privateData = CFBridgingRelease(dataTypeRef); return 0; }else{ return status; } NSMutableDictionary *attributespri = [[NSMutableDictionary alloc] initWithObjectsAndKeys: (id)kSecClassGenericPassword, (id)kSecClass, serviceID, (id)kSecAttrService, outData, (id)kSecValueData, nil]; CFTypeRef dataRef = NULL; OSStatus priStatus = SecItemAdd((__bridge CFDictionaryRef)attributespri, &dataRef); if (dataRef) CFRelease(dataRef); return priStatus == noErr;
5
0
197
9h
evaluatedPolicyDomainState
Hi Apple Developers, I'm having a problem with evaluatedPolicyDomainState: on the same device, its value keeps changing and then switching back to the original. My current iOS version is 26.1. I upgraded my iOS from version 18.6.2 to 26.1. What could be the potential reasons for this issue? { NSError *error; BOOL success = YES; char *eds = nil; int edslen = 0; LAContext *context = [[LAContext alloc] init]; // test if we can evaluate the policy, this test will tell us if Touch ID is available and enrolled // success = [context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]; if (SystemVersion > 9.3) { // test if we can evaluate the policy, this test will tell us if Touch ID is available and enrolled success = [context canEvaluatePolicy: LAPolicyDeviceOwnerAuthentication error:&error]; } else{ // test if we can evaluate the policy, this test will tell us if Touch ID is available and enrolled success = [context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]; } if (success) { if (@available(iOS 18.0, *)) { NSData *stateHash = nil; if ([context respondsToSelector:@selector(domainState)]) { stateHash = [[context performSelector:@selector(domainState)] performSelector:@selector(stateHash)]; }else{ stateHash = [context evaluatedPolicyDomainState]; } eds = (char *)stateHash.bytes; edslen = (int)stateHash.length; } else { eds = (char *)[[context evaluatedPolicyDomainState] bytes]; edslen = (int)[[context evaluatedPolicyDomainState] length]; } CC_SHA256(eds, edslen, uviOut); *poutlen = CC_SHA256_DIGEST_LENGTH; } else { *poutlen = 32; gm_memset(uviOut, 0x01, 32); } }
6
0
1.3k
Jan ’26
The ASCredentialProviderViewController method is not executing.
Hello, when I attempted to use the passkey, the method - (void)prepareCredentialListForServiceIdentifiers:(NSArray<ASCredentialServiceIdentifier *> *)serviceIdentifiers requestParameters:(ASPasskeyCredentialRequestParameters *)requestParameters API_AVAILABLE(ios(17.0), macos(14.0)) API_UNAVAILABLE(watchos, tvos); didn't execute. Are there any specific prerequisites for this method to run? I would appreciate your assistance. Thank you.
3
0
741
Oct ’23
about iOS17 passKey
I have many questions about iOS passkey. I'm using my app extension to implement something similar to an iCloud passkey authenticator. I securely store my self-generated keys in the Secure Enclave (SE). I'd like to know how to make the extension execute the prepareInterfaceToProvideCredentialForRequest method instead of provideCredentialWithoutUserInteractionForIdentity. I need to display a UI to obtain my key. Please provide assistance. Thank you.
1
0
810
Oct ’23
About Crash Much
Dear Apple Apple Engineer: An exception has occurred in my application. Here is the crash report: 42183A4C-7A9C-36F9-B29A-A28577CE39B7 0x0000000100ecc000 caused by:Application received signal 5 callStackSymbols: { 0 libdispatch.dylib 0x000000018888c768 0x0000000188853000 + 235368 1 libdispatch.dylib 0x0000000188858344 0x0000000188853000 + 21316 2 libdispatch.dylib 0x00000001888564b4 0x0000000188853000 + 13492 3 iIndustrial 0x00000001031cb09c 0x0000000100ecc000 + 36696220 4 libobjc.A.dylib 0x000000019d79fcd8 0x000000019d79a000 + 23768 5 libobjc.A.dylib 0x000000019d7b7148 0x000000019d79a000 + 119112 6 libobjc.A.dylib 0x000000019d7be5c4 0x000000019d79a000 + 148932 7 libsystem_blocks.dylib 0x00000001d48c1764 0x00000001d48c0000 + 5988 8 libdispatch.dylib 0x000000018885781c 0x0000000188853000 + 18460 9 libdispatch.dylib 0x000000018885a968 0x0000000188853000 + 31080 10 libdispatch.dylib 0x0000000188868fe0 0x0000000188853000 + 90080 11 libdispatch.dylib 0x00000001888697d8 0x0000000188853000 + 92120 12 libsystem_pthread.dylib 0x00000001d492e768 0x00000001d492b000 + 14184 } This is my crash func, - (GMRZUACStatus)FPCodeConvertUACCode:(FidoStatus)status { GMRZUACStatus retStatus = GMRZUACStatus_FAILED; switch (status) { case SUCCESS: retStatus = GMRZUACStatus_SUCCESS; break; case FAILURE: retStatus = GMRZUACStatus_FAILED; break; case CANCELED: retStatus = GMRZUACStatus_CANCELED; break; case NO_MATCH: retStatus = GMRZUACStatus_NO_MATCH; break; case PROTOCOL_ERROR: retStatus = GMRZUACStatus_PROTOCOL_ERROR; break; case BIOIDINVALID: retStatus = GMRZUACStatus_BIOID_INVALID; break; case BIOID_HAS_CHANGED: retStatus = GMRZUACStatus_BIOID_CHANGED; break; case CURRENT_BIO_NOT_AVAILABLE: retStatus = GMRZUACStatus_BIOID_NOT_AVAILABLE; break; case WAIT_USER_ACTION: retStatus = GMRZUACStatus_WAIT_USER_ACTION; break; case UNKNOWN_ERROR: retStatus = GMRZUACStatus_UNKNOWN_ERROR; break; case USER_REGISTED: retStatus = GMRZUACStatus_USER_REGISTED; break; case TOUCHID_NOT_SUPPORT: retStatus = GMRZUACStatus_TOUCHID_NOT_SUPPORT; break; case FACEID_NOT_SUPPORT: retStatus = GMRZUACStatus_FACEID_NOT_SUPPORT; break; case FACEID_NOT_PERMISSION: retStatus = GMRZUACStatus_FACEID_NOT_PERMISSION; break; default: break; } return retStatus; } I don't know why this method is broken, can you help me? Best wishes
4
0
1k
May ’22
ios 15 platform webauthn
Hi Apple Developer: I'm having some problems with iOS15 WebAuthn. Can't found parameter for excludeList at the time of registration.Can‘t found parameter for allowList at the time of authentication. When I use an external authenticator, the registration succeeds, but the authentication prompts that no credentials are available. Related to the interface: ASAuthorizationSecurityKeyPublicKeyCredentialProvider; ASAuthorizationPlatformPublicKeyCredentialRegistration; Best regards;
0
0
1k
Jul ’21
Keychain errSecItemNotFound
Hello Apple Developer: I encountered some issues during development. I encrypted the secret key and stored it in the Keychain, but it failed when I tried to read it. I would like to ask if there is any problem with the code I wrote. Below is my code, including the storage and retrieval NSMutableDictionary *query = [[NSMutableDictionary alloc] initWithObjectsAndKeys:(id)kSecClassGenericPassword,(id)kSecClass, serviceID,(id)kSecAttrService, @YES,(id)kSecReturnData,nil]; CFTypeRef dataTypeRef = NULL; NSLog(@"SecItemCopyMatching"); OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)(query), &dataTypeRef); NSLog(@"SecItemCopyMatching end status = %d",status); if (status == errSecSuccess) { *privateData = CFBridgingRelease(dataTypeRef); return 0; }else{ return status; } NSMutableDictionary *attributespri = [[NSMutableDictionary alloc] initWithObjectsAndKeys: (id)kSecClassGenericPassword, (id)kSecClass, serviceID, (id)kSecAttrService, outData, (id)kSecValueData, nil]; CFTypeRef dataRef = NULL; OSStatus priStatus = SecItemAdd((__bridge CFDictionaryRef)attributespri, &dataRef); if (dataRef) CFRelease(dataRef); return priStatus == noErr;
Replies
5
Boosts
0
Views
197
Activity
9h
evaluatedPolicyDomainState
Hi Apple Developers, I'm having a problem with evaluatedPolicyDomainState: on the same device, its value keeps changing and then switching back to the original. My current iOS version is 26.1. I upgraded my iOS from version 18.6.2 to 26.1. What could be the potential reasons for this issue? { NSError *error; BOOL success = YES; char *eds = nil; int edslen = 0; LAContext *context = [[LAContext alloc] init]; // test if we can evaluate the policy, this test will tell us if Touch ID is available and enrolled // success = [context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]; if (SystemVersion > 9.3) { // test if we can evaluate the policy, this test will tell us if Touch ID is available and enrolled success = [context canEvaluatePolicy: LAPolicyDeviceOwnerAuthentication error:&error]; } else{ // test if we can evaluate the policy, this test will tell us if Touch ID is available and enrolled success = [context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]; } if (success) { if (@available(iOS 18.0, *)) { NSData *stateHash = nil; if ([context respondsToSelector:@selector(domainState)]) { stateHash = [[context performSelector:@selector(domainState)] performSelector:@selector(stateHash)]; }else{ stateHash = [context evaluatedPolicyDomainState]; } eds = (char *)stateHash.bytes; edslen = (int)stateHash.length; } else { eds = (char *)[[context evaluatedPolicyDomainState] bytes]; edslen = (int)[[context evaluatedPolicyDomainState] length]; } CC_SHA256(eds, edslen, uviOut); *poutlen = CC_SHA256_DIGEST_LENGTH; } else { *poutlen = 32; gm_memset(uviOut, 0x01, 32); } }
Replies
6
Boosts
0
Views
1.3k
Activity
Jan ’26
The ASCredentialProviderViewController method is not executing.
Hello, when I attempted to use the passkey, the method - (void)prepareCredentialListForServiceIdentifiers:(NSArray<ASCredentialServiceIdentifier *> *)serviceIdentifiers requestParameters:(ASPasskeyCredentialRequestParameters *)requestParameters API_AVAILABLE(ios(17.0), macos(14.0)) API_UNAVAILABLE(watchos, tvos); didn't execute. Are there any specific prerequisites for this method to run? I would appreciate your assistance. Thank you.
Replies
3
Boosts
0
Views
741
Activity
Oct ’23
about iOS17 passKey
I have many questions about iOS passkey. I'm using my app extension to implement something similar to an iCloud passkey authenticator. I securely store my self-generated keys in the Secure Enclave (SE). I'd like to know how to make the extension execute the prepareInterfaceToProvideCredentialForRequest method instead of provideCredentialWithoutUserInteractionForIdentity. I need to display a UI to obtain my key. Please provide assistance. Thank you.
Replies
1
Boosts
0
Views
810
Activity
Oct ’23
About Crash Much
Dear Apple Apple Engineer: An exception has occurred in my application. Here is the crash report: 42183A4C-7A9C-36F9-B29A-A28577CE39B7 0x0000000100ecc000 caused by:Application received signal 5 callStackSymbols: { 0 libdispatch.dylib 0x000000018888c768 0x0000000188853000 + 235368 1 libdispatch.dylib 0x0000000188858344 0x0000000188853000 + 21316 2 libdispatch.dylib 0x00000001888564b4 0x0000000188853000 + 13492 3 iIndustrial 0x00000001031cb09c 0x0000000100ecc000 + 36696220 4 libobjc.A.dylib 0x000000019d79fcd8 0x000000019d79a000 + 23768 5 libobjc.A.dylib 0x000000019d7b7148 0x000000019d79a000 + 119112 6 libobjc.A.dylib 0x000000019d7be5c4 0x000000019d79a000 + 148932 7 libsystem_blocks.dylib 0x00000001d48c1764 0x00000001d48c0000 + 5988 8 libdispatch.dylib 0x000000018885781c 0x0000000188853000 + 18460 9 libdispatch.dylib 0x000000018885a968 0x0000000188853000 + 31080 10 libdispatch.dylib 0x0000000188868fe0 0x0000000188853000 + 90080 11 libdispatch.dylib 0x00000001888697d8 0x0000000188853000 + 92120 12 libsystem_pthread.dylib 0x00000001d492e768 0x00000001d492b000 + 14184 } This is my crash func, - (GMRZUACStatus)FPCodeConvertUACCode:(FidoStatus)status { GMRZUACStatus retStatus = GMRZUACStatus_FAILED; switch (status) { case SUCCESS: retStatus = GMRZUACStatus_SUCCESS; break; case FAILURE: retStatus = GMRZUACStatus_FAILED; break; case CANCELED: retStatus = GMRZUACStatus_CANCELED; break; case NO_MATCH: retStatus = GMRZUACStatus_NO_MATCH; break; case PROTOCOL_ERROR: retStatus = GMRZUACStatus_PROTOCOL_ERROR; break; case BIOIDINVALID: retStatus = GMRZUACStatus_BIOID_INVALID; break; case BIOID_HAS_CHANGED: retStatus = GMRZUACStatus_BIOID_CHANGED; break; case CURRENT_BIO_NOT_AVAILABLE: retStatus = GMRZUACStatus_BIOID_NOT_AVAILABLE; break; case WAIT_USER_ACTION: retStatus = GMRZUACStatus_WAIT_USER_ACTION; break; case UNKNOWN_ERROR: retStatus = GMRZUACStatus_UNKNOWN_ERROR; break; case USER_REGISTED: retStatus = GMRZUACStatus_USER_REGISTED; break; case TOUCHID_NOT_SUPPORT: retStatus = GMRZUACStatus_TOUCHID_NOT_SUPPORT; break; case FACEID_NOT_SUPPORT: retStatus = GMRZUACStatus_FACEID_NOT_SUPPORT; break; case FACEID_NOT_PERMISSION: retStatus = GMRZUACStatus_FACEID_NOT_PERMISSION; break; default: break; } return retStatus; } I don't know why this method is broken, can you help me? Best wishes
Replies
4
Boosts
0
Views
1k
Activity
May ’22
ios 15 platform webauthn
Hi Apple Developer: I'm having some problems with iOS15 WebAuthn. Can't found parameter for excludeList at the time of registration.Can‘t found parameter for allowList at the time of authentication. When I use an external authenticator, the registration succeeds, but the authentication prompts that no credentials are available. Related to the interface: ASAuthorizationSecurityKeyPublicKeyCredentialProvider; ASAuthorizationPlatformPublicKeyCredentialRegistration; Best regards;
Replies
0
Boosts
0
Views
1k
Activity
Jul ’21