Post marked as unsolved
128
Views
Hi all,
I'm working on an App that relies on the TrueDepth to obtain depth information through avCaptureSession. Throughout the process, I programmatically turn the TrueDepth camera on/off by setting avCaptureSession to run/stop when the program switch to different views. This has been working fine on my iPhone 11 Pro Max, iPhone X and iPhone XR. Yet, after purchasing the new iPhone 12 Pro, the same program occasionally crashes when switching in these views.
Have anyone else experienced the same problem?
Thanks in advance.
Post marked as unsolved
143
Views
I have a new design for Iphones that perfectly suits Apple's design and reputation. Best design an Iphone can have. But I don't know how to approach Apple. Please Help.
Post marked as unsolved
101
Views
Hi,
We have an implementation where we are changing the app language from inside the app and not from the Settings -> App -> Preferred language. While this is working for us but we are running into issue where system level alerts, allow/disallow Face ID/Touch ID is not taking the translated strings from InfoPlist.strings. It only changes when we change language from device settings. Is there a way we can also update which translated InfoPlist.strings should the app pick programmatically?
Also, like we can use NSFaceIDUsageDescription in strings file for Face ID but how can we update the title and the info inside an alert for asking to allow/disallow Push Notification?
Post marked as unsolved
165
Views
I build both apps from the same project but change bundle identifier.
They are the same target name (product name). So one of them can't using Face ID or Touch ID, the fail one got error code -1004 from LAContext.
Is there any documentation from Apple or anyone could explain ?
(Both working fine with difference target name)
Post marked as unsolved
98
Views
Hi Team
We have a mobile app that breaks out by opening a URL to the website for more information. The breakout is supposed to work with SSO so the user does not have to login again when we breakout to the website. Currently when using user credentials to login the SSO works fine, but when using Face ID to login to the app after 1 hour the session expires and the SSO no longer works and requests credentials. Is this a native design of Safari to expire/delete the cookie after an hour? We also have this scenario on Android and chrome does not do this. It does not expire after an hour.
Post marked as unsolved
174
Views
Hi
From the video https://developer.apple.com/videos/play/wwdc2020/10670/
the overall picture is clear. But, for developers to implement on their website, Can we get a reference app and GitHub repo of how it is implemented using node backend and front end javascript.
Post marked as unsolved
106
Views
Hi, Face ID really is best in class for UX and security from my research. So - is there any way to leverage this in non-apple hardware? example - an API/SDK that manufactures could use to bake Face-ID into their hardware?
Kind of like how one can see car-play implemented in in non-apple manufactured products.
The use case I have in mind wouldn't be one that competes with any apple products. Rather something in an office environment that would be integrated into a Linux-based appliance with its own processing and camera.
Post marked as unsolved
44
Views
What can I do to return the cameras to normal, in many forums the same thing has happened to them. I need a solution now.
Post marked as unsolved
260
Views
According to the documentation - https://github.com/w3c/webauthn/pull/1491 of Apple's Anonymous Attestation Statement Format (fmt="apple"),
the nonce generated from the authenticatorData the clientDataHash is embedded in an extension with OID ( 1.2.840.113635.100.8.2 ) in the certificate for the credential public key.
If I try to validate a response generated after using touchID from my browser on my iOS14 device, I get a 38-byte value:
414:d=5 hl=2 l= 9 prim: OBJECT :1.2.840.113635.100.8.2
425:d=5 hl=2 l= 38 prim: OCTET STRING [HEX DUMP]:3024A1220420D9052FED7AA782C1B416C59B0AE15F309A336E22984E32505307A6339DDE52FD
How can this be a SHA-256 hash value?
Post marked as unsolved
141
Views
Very helpful video, thank you.
i have both an iPad with iOS 14 and a MacBook Pro with Safari 14. Neither are responding with true when checking isUserVerifyingPlatformAuthenticatorAvailable(). What are minimal versions of Safari needed for this?
We are excited to leverage Face/Touch on browsers.
Post marked as solved
288
Views
Feature detection in Safari 14 (running on macOS Big Sur on Intel MacBook Pro) is returning false. Tested this in localhost and HTTPS served pages with no luck. As per the "Meet Face ID and Touch ID for the web" session, it is supposed to be available.
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().then(console.log) // resolves to "false"
Is the feature available? Is there anything that has to be installed or enabled explicitly?
Post marked as unsolved
159
Views
Dear all,
This is Alex and I work at Raonsecure, an ICT company based in Korea. We are deploying FIDO2 in South Korea.
We have some questions related to how FIDO2's WebAuthn is supported in Apple iOS14 Safari.
We recently conducted a test on iOS14 Beta terminal while following instructions from the guide provided by Apple, but the result value is different from what is mentioned in the guide.
More precisely, we conducted a FIDO 2 registration test as described in this link (https://developer.apple.com/documentation/devicecheck/validating_apps_that_connect_to_your_server) , and some data on the authentication device are different from what is mentioned in the instructions.
In this regard, here are our questions (The description refers to the link above)
1. The description states that aaguid is a 16 bytes long constant, but the actual data length was set to 0x00 (16 times), similarly to U2F.
Is the aaguid's length value we found correct?
2. The description states that credentialId's length is 32 bytes, but the credentialId delivered from the authentication device is 20 bytes.
Is the length of the credentialId 20 bytes that we found correct?
3. The description does not mention about the metadata platform authenticator.
Does it mean that there is no metadata? In this case, what would the process for supporting feature such as Face ID (for which metada file link is needed)?
4. How can we get the key identifier and App ID that are mentioned in the description?
For your information, here is below the environment used for conducting the test:
iOS 14 beta 8, Safari
navigator.credentials.create's results:
2.1) clientDataJson : "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiOUlRclR3YXhfaFJNVTlua0FIcEwxZzFvS2NKZUVqUjRxekxNYTNwT1NBVSIsIm9yaWdpbiI6Imh0dHBzOi8vb25lcGFzc2Rldi5yYW9uc2VjdXJlLmNvLmtyOjI4NDQ1In0";
2.2) atestationObject : "o2NmbXRlYXBwbGVnYXR0U3RtdKJjYWxnJmN4NWOCWQJGMIICQjCCAcmgAwIBAgIGAXR3IfJrMAoGCCqGSM49BAMCMEgxHDAaBgNVBAMME0FwcGxlIFdlYkF1dGhuIENBIDExEzARBgNVBAoMCkFwcGxlIEluYy4xEzARBgNVBAgMCkNhbGlmb3JuaWEwHhcNMjAwOTEwMDgxOTA3WhcNMjAwOTExMDgyOTA3WjCBkTFJMEcGA1UEAwxAY2E1ZjZjYTQwZTE5OTQ0MTQzZjgzMjRlZTE3ZTliZjM2YmI4Nzk4YTllM2YzOWE4MjM4YjkwNWU3YTdmYmJlMTEaMBgGA1UECwwRQUFBIENlcnRpZmljYXRpb24xEzARBgNVBAoMCkFwcGxlIEluYy4xEzARBgNVBAgMCkNhbGlmb3JuaWEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAShkVB07nrqMlaitq-5wjv8EzSikGdNRWvmTAA2gwYfz-9YTxpHF9UEnsTVTtl1v3Rdip4TUopyW-TYIVXUQ4o1UwUzAMBgNVHRMBAf8EAjAAMA4GA1UdDwEBwQEAwIE8DAzBgkqhkiG92NkCAIEJjAkoSIEIHGCgF2RQrOUtNb3sBPwfRGEPAkN3drdsUJ5xmleeC8lMAoGCCqGSM49BAMCA2cAMGQCMDKVe8HKHbweixHUIHGZgUXYxV-UHxuEiJthFBkMjPrdkwG1Rvi3jExiJLUAiwXygIwctiDkQV1RYncBzpzaGPjQ4gFsilmMul-neygjeVxXAA-rm1FiA0Zh5cj7L6gWWQI4MIICNDCCAbqgAwIBAgIQViVTlcen-0Dr4ijYJghTtjAKBggqhkjOPQQDAzBLMR8wHQYDVQQDDBZBcHBsZSBXZWJBdXRobiBSb290IENBMRMwEQYDVQQKDApBcHBsZSBJbmMuMRMwEQYDVQQIDApDYWxpZm9ybmlhMB4XDTIwMDMxODE4MzgwMVoXDTMwMDMxMzAwMDAwMFowSDEcMBoGA1UEAwwTQXBwbGUgV2ViQXV0aG4gQ0EgMTETMBEGA1UECgwKQXBwbGUgSW5jLjETMBEGA1UECAwKQ2FsaWZvcm5pYTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIMuhy8mFJGBAiW59fzWu2N4tfVfP8sEW8c1mTR1VSQRN-bhkhF2XGmh3aBQs41FCDQBpDT7JNES1Ww-HPv8uYkf7AaWCBvvlsvHfIjd2vRqWu4d1RW1r6q5O-nAsmkaNmMGQwEgYDVR0TAQHBAgwBgEBwIBADAfBgNVHSMEGDAWgBQm12TZxXjCWmfRp95rEtAbYHG1zAdBgNVHQ4EFgQU666CxP-hrFtR1M8kYQUAvmO9d4gwDgYDVR0PAQHBAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMQDdixo0gaX62du052V7hB4UTCe3W4dqQYbCsUdXUDNyJ-lVEV-9kiVDGMuXEg-cMECMCyKYETcIBP5ZvDTSkwwUh4Udlg7Wp18etKyr44zSW4l9DIBb7wxeLB6VxxugOB2hhdXRoRGF0YViYIoFgu94ab-4bEorgfUTSffzT79toCHqWSIC4Kv6KcRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAFMUF1XwkNChen9PxL4d3TozOT554pQECAyYgASFYIKGT9UHTueuoyVqK2r7nD-OwTNKKQZ01Fa-ZMADaDBhIlggP71hPGkcX1QSexNVO2XWdF2KnhNSinJb5NghVdRDg";
2.2.1) fmt : apple
2.2.2) authData : h'228160BBDE1A6FEE1B128AE07D44D27DFCD3EFDB68087A964880B82AFE8AFDC44500000000000000000000000000000000000000000014C505D57C2434285E9FD3F12F87774E8CCE4F9E78A5010203262001215820A193F541D3B9EBA8C95A8ADABEE70FE3BFC1334A290674D456BE64C003683061225820FCFEF584F1A4717D5049EC4D54ED975BF745D8A9E13528A725BE4D82155D4438'.3) attStmt : {"x5c": [h'30820242308201C9A003020102020601747721F26B300A06082A8648CE3D0403023048311C301A06035504030C134170706C6520576562417574686E204341203131133011060355040A0C0A4170706C6520496E632E3113301106035504080C0A43616C69666F726E6961301E170D3230303931303038313930375A170D3230303931313038323930375A3081913149304706035504030C4063613566366361343065313939343431343366383332346565313765396266333662623837393861396533663339613832333862393035653761376662626531311A3018060355040B0C114141412043657274696669636174696F6E31133011060355040A0C0A4170706C6520496E632E3113301106035504080C0A43616C69666F726E69613059301306072A8648CE3D020106082A8648CE3D03010703420004A193F541D3B9EBA8C95A8ADABEE70FE3BFC1334A290674D456BE64C003683061FCFEF584F1A4717D5049EC4D54ED975BF745D8A9E13528A725BE4D82155D4438A3553053300C0603551D130101FF04023000300E0603551D0F0101FF0404030204F0303306092A864886F76364080204263024A12204207182805D9142B394B4D6F7B013F07D11843C090DDDDADDB14279C6695E782F25300A06082A8648CE3D0403020367003064023032957BC1CA1DBC1E8B11D42071998145D8C55F941F1B84889B6117F0643233EB764C06D51BE2DE31318892D4022C17CA023072D8839105754589DC073A736863E343FE2016CFE296632E97E9DECA08DE5715C003EAE6D45FE2034661E5C8FB2FA816', h'30820234308201BAA003020102021056255395C7A7FB40EBE228D8260853B6300A06082A8648CE3D040303304B311F301D06035504030C164170706C6520576562417574686E20526F6F7420434131133011060355040A0C0A4170706C6520496E632E3113301106035504080C0A43616C69666F726E6961301E170D3230303331383138333830315A170D3330303331333030303030305A3048311C301A06035504030C134170706C6520576562417574686E204341203131133011060355040A0C0A4170706C6520496E632E3113301106035504080C0A43616C69666F726E69613076301006072A8648CE3D020106052B8104002203620004832E872F261491810225B9F5FCD6BB6378B5F55F3FCB045BC735993475FD549044DF9BFE19211765C69A1DDA050B38D45083401A434FB24D112D56C3E1CFBFCB9891FEC0696081BEF96CBC77C88DDDAF46A5AEE1DD515B5AFAAB93BE9C0B2691A366306430120603551D130101FF040830060101FF020100301F0603551D2304183016801426D764D9C578C25A67D1A7DE6B12D01B63F1C6D7301D0603551D0E04160414EBAE82C4FFA1AC5B51D4CF24610500BE63BD7788300E0603551D0F0101FF040403020106300A06082A8648CE3D0403030368003065023100DD8B1A3481A5FAD9DBB4E7657B841E144C27B75B876A4186C2B1475750337227EFE554457EF648950C632E5C483E70C102302C8A6044DC201FCFE59BC34D2930C1487851D960ED6A75F1EB4ACABE38CD25B897D0C805BEF0C7F78B07A571C6E80E07'], "alg": -7}
Thank you for your attention,
Kind Regards,
Alex
Post marked as unsolved
51
Views
A person whose face id is not registered tries to open the mobile using face id phone didnot open ok work fine but after that the person whose face is registered in the face id tries to open the mobile it didnot allow too then go to setting and tries to reset face id message appear “face id stop working please try later setting up” and after restarting phone it fixed
Also something without creating upper scenario face id stop working
Why this issue occurring again and again
Can you please look into it urgent because it is very annoying
Thanks
Best regards
Adeel
Post marked as solved
307
Views
When i setup navigator.credentials.create() everything works as expected (Safari asks for touch-id) and the credentials are created and saved.
Later when performing the login using navigator.credentials.get() I am not able to force safari to ask for touchId. Instead it only wants a security key.
return {
		publicKey: {
		challenge:"sampleChallenge",
		authenticatorSelection: { authenticatorAttachment: 'platform'},
		attestation: 'direct',
		timeout: 15000,
		allowCredentials:[
				{
						type:'public-key',
						id:"sampleId",
						transports:['internal']
				}
		]
}
}
This is almost the same code as used in the wwdc video, except that I added authenticatorSelection, attestation and timeout.
In credentials.create() I noticed that authenticatorAttachment="platform" is important to force touchId. But in credentials.get() this did not help.
Has anyone already built a full demo that is working for ios?
I wonder also why the code from the "shiny" demo app from the wwdc video is not available for download somewhere!
This would be really helpful for developers!
Post marked as unsolved
119
Views
I'm trying to create a game in which the GameScene is controlled by AR Face Tracking in the GameViewController. At the end of the game, theres an option to go to the main menu (A button which presents MainMenuScene). Yet whenever I present the MainMenuScene and then switch back over to the GameScene, Face Tracking is no longer being detected. How can I solve this issue? Any help is greatly appreciated.
Heres what the code from my GameViewController looks like:
class GameViewController: UIViewController, ARSessionDelegate, AVCaptureVideoDataOutputSampleBufferDelegate {
var sequenceHandler = VNSequenceRequestHandler()
var mainMenu: MainMenu! = MainMenu(size: CGSize(width: 1536, height: 2048))
var gameScene: GameScene! = GameScene(size: CGSize(width: 1536, height: 2048))
var session: ARSession!
override func viewDidLoad() {
		super.viewDidLoad()
		
		if let view = self.view as! SKView? {
				gameScene.scaleMode = .aspectFill
				view.presentScene(gameScene)
				view.ignoresSiblingOrder = true
				view.showsFPS = true
				view.showsNodeCount = true
		}
		
		session = ARSession()
		session.delegate = self
}
override func viewWillAppear(_ animated: Bool) {
		super.viewWillAppear(animated)
		
		guard ARFaceTrackingConfiguration.isSupported else {print("bruhhhh"); return}
		
		let configuration = ARFaceTrackingConfiguration()
		
		session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
func session(_ session: ARSession, didUpdate anchors: [ARAnchor]){
		if let faceAnchor = anchors.first as? ARFaceAnchor {
				update(withFaceAnchor: faceAnchor)
				
				if faceAnchor.isTracked == true {
						gameScene.deleteErrorMessage()
				} else {
						gameScene.errorMessage()
				}
		}
			 }
			
func update(withFaceAnchor faceAnchor: ARFaceAnchor){
		let blendShapes: [ARFaceAnchor.BlendShapeLocation:Any] = faceAnchor.blendShapes
		
				guard let mouthPucker = blendShapes[.mouthPucker] as? Float else {return}
		
			 guard let mouthSmileLeft = blendShapes[.mouthSmileLeft] as? Float else {return}