Hi,
We're in the process of implementing Apple's App Integrity, but am getting stalled due to missing documents. Can anyone assist with this?
We've been following https://developer.apple.com/documentation/devicecheck/validating-apps-that-connect-to-your-server to make the necessary updates, but have come up short with where the document references decoding the Attestation Object. Can we get more information here and how the decoding process work?
Prioritize user privacy and data security in your app. Discuss best practices for data handling, user consent, and security measures to protect user information.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
We are using ASWebAuthenticationSession with apps on IoS to achieve SSO between apps. The IdP for authentication (OIDC) is an on-premise and trusted enterprise IdP based on one of the leading products in the market. Our problem is that the user is prompted for every login (and logouts) with a consent dialogue box:
“AppName” wants to use “internal domain-name” to Sign In
This allows the app and website to share information about you.
Cancel Continue”
I have read in various places that Apple has a concept of “Trusted domains” where you can put an “Apple certified” static web-page on the IdP. This page needs to contain specific metadata that iOS can verify. Once a user logs in successfully a few times, and if the IdP is verified as trusted, subsequent logins would not prompt the consent screen.
Question: I struggle to find Apple documentation on how to go about a process that ends with this “Apple certified web-page” on our IdP”. Anyone who has experience with this process, or who can point me in some direction to find related documentation?
I keep getting invalid_client,
here is a test login: https://www.bella-booking.ch/_get_incl/test_apple_login.cfm
Any help appreciated.
NOTE: Everey other error, like wrong reroute or wrong client id, a different error will be sent frpm apple, after I checked all and crosschecked with jwt.io, it keep getting invalid_client.
Any clue?
If the response is correct, the token should be displayed on the page.
Thx
Topic:
Privacy & Security
SubTopic:
Sign in with Apple
Hi team,
We are experiencing an issue where some users in China are unable to create passkeys due to authentication errors.
This is the UI flows
The method we use to prompt users is passkey creation. Technically, this is implemented using Apple’s AuthenticationServices framework. We create an instance of ASAuthorizationController and conform to ASAuthorizationControllerDelegate to handle the results of the authentication attempt.
In failure cases, we receive ASAuthorizationError.failed (code 1004), along with some additional details describing the nature of the failure.
However, we are currently unable to determine the exact root cause of this issue or how to resolve it. At this point, we can only make assumptions based on the limited error information provided.
Our current hypothesis is that due to network restrictions, Apple may be unable to reach the .well-known endpoint where we host the associated domain file. Alternatively, even if the file is successfully loaded and cached to Apple’s CDN, the system in China may not be able to reach the CDN itself.
We would greatly appreciate it if you could help us understand what might be causing this problem and guide us on how we can resolve it effectively.
Thanks,
Hung
Topic:
Privacy & Security
SubTopic:
General
Tags:
Passkeys in iCloud Keychain
Authentication Services
Hi community,
I'm wondering how can I request the permission of "System Audio Recording Only" under the Privacy & Security -> Screen & System Audio Recording via swift?
Did a bunch of search but didn't find good documentation on it.
Tried another approach here https://github.com/insidegui/AudioCap/blob/main/AudioCap/ProcessTap/AudioRecordingPermission.swift which doesn't work very reliably.
Topic:
Privacy & Security
SubTopic:
General
Tags:
AudioToolbox
AVAudioEngine
Core Audio
AVFoundation
Since release of 18.4. prepareInterfaceToProvideCredential .oneTimeCode case is not called and instead prepareInterfaceForUserChoosingTextToInsert() is called. That is the wrong delegate for this case and it causes confusion for the users.
Also, some TOTP fields are recognised however, the key icon button is not presented above the keyboard next to TOTP suggestions.
I've also tested 18.5 and it has the same issue.
provideOneTimeCodeWithoutUserInteraction works just fine.
Hi everyone,
I’m currently facing an issue while trying to submit an update for my app to the App Store. The review process is blocking the update due to a "Privacy - Data Use and Sharing" warning, stating that our app requests "tracking purchase history for tracking purposes."
However, we have already removed this functionality and deleted the NSUserTrackingUsageDescription key from our latest build. Despite this, the warning persists, and we are unable to proceed with the update.
I have already contacted Apple Support, but in the meantime, I wanted to ask the community:
Has anyone else encountered this issue, and if so, how did you resolve it?
Is there a way to force a refresh of privacy-related settings in App Store Connect?
Are there any additional steps we need to take to completely remove this tracking flag from our app submission?
Any insights or guidance would be greatly appreciated! Thanks in advance for your help.
Hey, there are plans to design a government app. When a citizen will login they will see their passport, driving license etc...
What is the solution of avoiding mandatory in-app user data deletion?
Hi team, is there a native way to detect if a change has been made to biometrics using FaceID or TouchID? Thanks in advance.
While I was submitting a new feedback today for an iPhone/iPad storage issue, I saw a new log called “iOS storage log”.
I could find no reference to this when I searched online. It made me wonder if it was new and if it contained personal data?
Most of us only have one device, with all our personal data. Therefore, I’d appreciate any input on what personal data these logs contain.
Hi there,
I'm trying to use SFAuthorizationPluginView in order to show some fields in the login screen, have the user click the arrow, then continue to show more fields as a second step of authentication. How can I accomplish this?
Register multiple SecurityAgentPlugins each with their own mechanism and nib?
Some how get MacOS to call my SFAuthorizationPluginView::view() and return a new view?
Manually remove text boxes and put in new ones when button is pressed
I don't believe 1 works, for the second mechanism ended up calling the first mechanism's view's view()
Cheers,
-Ken
Due to business requirements, we need to transfer our app Gem Space for iOS from our current Apple Developer account to a new account.
We have a major concern regarding our users and the data associated with the app.
The user data is currently stored using an App Group with the identifier, for example: "group.com.app.sharedData"
According to some information we’ve found, it might be possible to complete the transfer by removing the App Group from the old account and creating a new one with the same identifier in the new account.
However, other sources suggest that App Group containers are owned by the specific team, and data stored in the container may become inaccessible after the app is transferred to a different team. This raises concerns about the possibility of users losing access to their data after updating the app from the new account.
Could you please clarify the expected behavior of App Groups in this case?
Do we need to perform any kind of data migration, and if so, could you please provide detailed guidance on how to do it safely and without impacting user data access?
Topic:
Privacy & Security
SubTopic:
General
Our app uses Sign in with Apple. In recent weeks (or months), we've noticed that emails sent to @privaterelay.appleid.com addresses are not being delivered.
We're not receiving any bouncebacks or error messages from the mail server, but the emails never reach the user's mailbox. We've also checked spam folders, with no luck.
We have verified that our Email Sources are configured correctly in Apple Developer settings.
Is there any way to debug or trace what might be happening with these messages?
Thanks in advance!
I have had a password autofill app extension in production for years.
It still works fine.
Except when the user taps a username or password textfield and selects "AutoFill" from the context menu.
They are shown a modal error dialog, stating:
"AutoFill Unavailable - The developer needs to update it to work with this feature."
I cannot find any help on this issue.
The AutoFill extension works fine when tapping the "Passwords" bar above the iOS keyboard.
Any pointers would be appreciated.
I am developing a custom authorization plugin for macOS, and I’ve encountered an issue where the auth plugin view remains visible on the home screen for a few seconds after login.
Issue Details:
After entering valid credentials, I call setResult(.allow) in my plugin to proceed with login.
The authentication succeeds, and macOS starts transitioning to the home screen.
However, for a few seconds after login, the authorization plugin view is still visible on the home screen before it disappears.
I have observed this issue even when using Apple's sample authorization plugin.
Observation:
This issue occurs without an external monitor (on a single built-in display).
If I manually close the plugin window inside Destroy(AuthPlugin.mechanism), then the auth plugin views do not appear on the home screen, which seems to fix the issue.
However, when I do this, a gray screen appears for about a second before the desktop environment fully loads.
I suspect that the gray screen appears due to the time macOS takes to fully load the home screen environment after login.
Questions:
Why does the authorization plugin view persist on the home screen for a few seconds after login?
Is manually closing the plugin window in Destroy(AuthPlugin.mechanism) the correct way to prevent this, or is there a better approach?
Is my assumption that the gray screen appears due to the home screen not being fully loaded correct?
If the gray screen is caused by home screen loading, is there a system notification or event I can listen to in order to know when the home screen has fully loaded?
Hi,
I am developing an app that checks if biometric authentication capabilities (Face ID and Touch ID) are available on a device. I have a few questions:
Do I need to include a privacy string in my app to use the LAContext's canEvaluatePolicy function? This function checks if biometric authentication is available on the device, but does not actually trigger the authentication.
From my testing, it seems like a privacy declaration is only required when using LAContext's evaluatePolicy function, which would trigger the biometric authentication. Can you confirm if this is the expected behavior across all iOS versions and iPhone models?
When exactly does the biometric authentication permission pop-up appear for users - is it when calling canEvaluatePolicy or evaluatePolicy? I want to ensure my users have a seamless experience.
Please let me know if you have any insights on these questions. I want to make sure I'm handling the biometric authentication functionality correctly in my app. Thank you!
Hello,
I'm developing a Command Line Tool in XCode, in order to capture system audio and save it to a file, which will then be used by a separate process.
Everything works perfectly when running it from either XCode or the native terminal application (see image below), but as soon as I try to run it from any 3rd party application, it doesn't ask for permissions to record sound, and the resultant file ends up soundless.
When archiving it and then running it from other 3rd party applications, e.g Warp (terminal) or spawning it as a child process from a bundled Electron application, it doesn't ask for permissions.
Things of note:
I've codesigned the application with "Developer ID Application"
I've added NSAudioCaptureUsageDescriptionto Info.plist
I've included Info.plist in the binary (see image below)
I've added the com.apple.security.device.audio-input entitlement
I've used the following resources as inspiration:
https://github.com/insidegui/AudioCap
https://developer.apple.com/documentation/coreaudio/capturing-system-audio-with-core-audio-taps
As my use-case involves spawning the executable from Electron as a child process, I've tried to include the appropriate permissions to the parent application too, without success.
I'm really at a loss here, it feels like I've tried everything. Any pointers are much appreciated!
Thanks
Topic:
Privacy & Security
SubTopic:
General
Tags:
Entitlements
Core Audio
Command Line Tools
AVFoundation
Hello. I am trying to give an update to my app but it again and again gets rejected due to the ATT Prompt. Before this late week I gave the update and it got live without any issue. Now I done some minor changes in the App.
Apple Response.
The app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iPadOS 18.2.
Next Steps
Explain where we can find the App Tracking Transparency permission request in the app. The request should appear before any data is collected that could be used to track the user.
If App Tracking Transparency is implemented but the permission request is not appearing on devices running the latest operating system, review the available documentation and confirm App Tracking Transparency has been correctly implemented.
If your app does not track users, update your app privacy information in App Store Connect to not declare tracking. You must have the Account Holder or Admin role to update app privacy information.
My Response:
Hello Apple Team
Thank you for your feedback.
We have tested the app on iPadOS 18.2, also on iPhone 18.1 and the App Tracking Transparency dialogue is appearing as expected on the main home screen when the user enters the app. To help demonstrate this, we’ve attached a video showing the ATT prompt in action.
If there is still an issue with the dialogue or if it needs to be placed in a different position, we kindly request your guidance on what needs to be adjusted. Please let us know the details so we can address it promptly.
Thank you for your support
"I uploaded a video with images showcasing the ATT prompt but now again they rejected the update with the exact same reply. Which I am thinking it may be a bot reply.
Now what to do how to solve it?
Topic:
Privacy & Security
SubTopic:
General
Tags:
App Tracking Transparency
AdSupport
App Store Server Library
What Has Been Implemented
Replaced the default loginwindow:login with a custom authorization plugin.
The plugin:
Performs primary OTP authentication.
Displays a custom password prompt.
Validates the password using Open Directory (OD) APIs.
Next Scenario was handling password change
Password change is simulated via: sudo pwpolicy -u robo -setpolicy "newPasswordRequired=1"
On next login:
Plugin retrieves the old password.
OD API returns kODErrorCredentialsPasswordChangeRequired.
Triggers a custom change password window to collect and set new password.
Issue Observed : After changing password:
The user’s login keychain resets.
Custom entries under the login keychain are removed.
We have tried few solutions
Using API, SecKeychainChangePassword(...)
Using CLI, security set-keychain-password -o oldpwd -p newpwd ~/Library/Keychains/login.keychain-db
These approaches appear to successfully change the keychain password, but:
On launching Keychain Access, two password prompts appear, after authentication, Keychain Access window doesn't appear (no app visibility).
Question:
Is there a reliable way (API or CLI) to reset or update the user’s login keychain password from within the custom authorization plugin, so:
The keychain is not reset or lost.
Keychain Access works normally post-login.
The password update experience is seamless.
Thank you for your help and I appreciate your time and consideration
Topic:
Privacy & Security
SubTopic:
General
Tags:
Open Directory
Security
Privacy
Security Interface
Hi everyone,
I'm currently working on a native macOS app (built with SwiftUI) and I'm trying to implement Password AutoFill functionality so users can use their saved credentials from Keychain or third-party password managers.
I've gone through Apple's documentation, WWDC sessions, and sample code, but I've noticed that the resources primarily focus on iOS and web implementations. There's very limited guidance specifically for macOS.
I've set up:
Associated Domains entitlement with the webcredentials: service
The apple-app-site-association file on my server
TextField with .textContentType(.username) and SecureField with .textContentType(.password)
However, I'm still not seeing the expected AutoFill behavior on macOS like I would on iOS.
Has anyone successfully implemented Password AutoFill on a native macOS app? Are there any macOS-specific considerations or additional steps required that differ from iOS?
Any guidance, sample code, or pointers to documentation I might have missed would be greatly appreciated.