Post not yet marked as solved
Many thx to Garrett Davidson for his exceptional WWDC2022 presentation:
https://developer.apple.com/videos/play/wwdc2022/10092/
Basic question, how is the the private key for a passkey stored on a local device (let's say within the Edge or Chrome browser)? Is it in an encrypted cookie? If so, how is the local encryption done?
Post not yet marked as solved
Are passkeys sharable across platforms? Can shared passes be revoked? And what is the mechanism for resetting a passkey?
Post not yet marked as solved
I am in the process of modifying all my accounts to assign a unique email address to each one via the "Hide my Email" function.
I am currently at 347 addresses created for the occasion but I wonder if there is a limit for the number of this addresses. I can't find the information anywhere on the Apple support pages. Thanks in advance for your help!
Julien
Is it possible to create a sandboxed app that uses accessibility permission? And if so, how do I ask the user for that permission in a way that is allowed by the App Store?
Im creating a small menubar app and my current (rejected) solution is to create a pop-up, with link to Security & Privacy > Accessibility and the pop-up asks the user to manually add the app to the list and check the checkbox. This works in sandbox.
Reason for rejection:
"Specifically, your app requires to grant accessibility access, but once we opened the accessibility settings, your app was not listed."
I know it's not listed there and it has to be added manually. But its the only solution I've found to this issue. Is there perhaps any way to add the app there programmatically?
Im a bit confused since I've seen other apps in App Store that work the same way, where you have to add the app to the list manually. Eg. Flycut. :man-shrugging:
I know about this alternative solution, and it's not allowed in sandboxed apps. It also adds the app to the accessibility list automagically:
func getPermission() {
AXIsProcessTrustedWithOptions([kAXTrustedCheckOptionPrompt.takeUnretainedValue():true] as CFDictionary).
}
Does anyone have a solution for this?
Best regards,
Daniel
Post not yet marked as solved
I follow along with the video in the WWDC2022 session, "Build your first app in Swift Playgrounds". I construct the Tea Time app as demonstrated in the video. When I come to the part about adding the microphone capability in the App Settings, Playground crashes and disappears. I click the "+" button for the capability, for a fraction of a second I see a modal about the microphone, and then it crashes.
I don't know what to do.
How do I fix this problem and add the capability?
How to integrate native Java backend with macOS catalyst app UI?
My UI is SwiftUI/macCatalyst, using entitlements for voice recognition and microphone.
My back-end is from a large legacy Java code base rendered to native x86_64 binary.
For now they interface via stdio streams established by the native java command launching the UI app.
This works fine when the Java code runs on a JDK.
When native backend launches the UI app, the UI app fails to secure permissions (but otherwise works fine)
Same result when the backend is bundled with the app as if a command-line tool
Solution constraints:
Unlike the sample app/docs that integrate a command-line tool into an app, this binary cannot be built using XCode's Clang
I'd like to continue using macCatalyst, knowing this can't be deployed to iOS proper, only to macOS.
I can make the UI launch the backend, but don't want to do this without some assurance it would fix things :)
I'd rather not work through the calling conventions/wrappers to staticly link these binaries now.
Assuming the parent process needs the app entitlements, I tried:
To embed the java binary into the SwiftUI app?:
Following instructions for embedding a command-line app did not configure the backend binary with the entitlements?
Deploy the java binary standalone as an app with the proper entitlements?
Similar to above: unable to figure out how
Pointers to docs welcome. I've seen
Embedding Nonstandard Code Structures in a Bundle
Embedding a command-line tool in a sandboxed app
Ideally I'd like to know how to deliver an app whose binary is entirely build using Java native (including proper entitle/sign/credential/notorize/sandbox...)
Thanks!
Post marked as Apple Recommended
June 30 is the deadline for adding in app account deletion.
I'm unclear whether the app I work on counts as creating an account in the app.
We have several user onboarding flows.
One flow we prepopulate a users profile using a CVS upload to our backend. We provide a deep link that requires the user to set a password in the app, and they can edit some of their prepopulated data. Once they submit they are profile complete.
In other flows we provide a deep link that just has the user's email/phone number and the user's name. We use this to prepopulate a form. The user is asked to select some profile details in this flow as well as provide a password. In this flow the user awaits approval before they can start using the app.
All users can edit profile details once their account is created and once the profile details are all provided.
So, does this count as in app account creation that warrants an in app account deletion flow?
How do I get a definitive answer to this question?
Thanx.
Reference: https://developer.apple.com/news/?id=12m75xbj
Hello, please tell me if there will be any changes in app permissions for geolocation or push notifications after the app transfer?
The application I'm working needs access to a shared network drive while in development. This nominally works, but every time the app is recompiled (so hundreds of times a day), I have to give it permission to access a network volume. For obvious reasons, that isn't helpful.
Does anyone know how to grant network share access permanently? Barring that, is there a way to disable that security setting, preferably with a capability/entitlement, or at the system level as a last resort?
(The app does have the proper credentials granted in System Preferences, but I presume its signature or something changes with each recompile.)
Sandbox is set to no in the entitlements file.
Settings → security & privacy → privacy → accessibility is enabled for the app.
Can detect global mouse events.
Can't use accessibility features:
let systemWideElement: AXUIElement = AXUIElementCreateSystemWide()
var focusedElement : AnyObject?
let error = AXUIElementCopyAttributeValue(
systemWideElement,
kAXFocusedUIElementAttribute as CFString,
&focusedElement
)
print(focusedElement) // this prints `nil`
Can't execute applescripts ( NSAppleScript() )
Can't send keypress events ( CGEvent().post() )
Also, if i compile the executable with swiftc from terminal and then run from terminal, the app is able to access these features.
Are there other xcode settings I need to change or are they always blocked when building from xcode?
Hi. I'm experimenting with some code that calls INFocusStatusCenter.default.requestAuthorization
How can I revoke the authorisation on macOS so it will trigger the prompt again?
Thanks.
Post not yet marked as solved
Dear,
The security item requires NAC software to check some apps' privacy before allowing the endpoints to be connected to intranet. TCC is deprecated by Apple, any other methods can help to get privacy granted to the apps? thanks in advance.
Post not yet marked as solved
We are using Chrome Browser (Customer request) to scan QRCode and each time we are ask for Camera permission.
It does not do that for Safari.
I saw some places that it can be set on each web page by accessing Chrome setting directly and not the apple setting for Chrome. (Never found the setting for the camera in chrome)
Thank you very much for the help (Event if it is not possible at this point to do that)
Regards
Christian
Post not yet marked as solved
So I am developing an app that will need to use a bunch of random faces like the one attached. I just want to know if this is ok in legal standpoint and that I won't have any trouble pushing the app to appstore later.
Post not yet marked as solved
I'm trying to build a simple Mail Extension using Compose session handler for the Mac Catalyst App.
The idea is to open a ComposeViewController on App Icon click from Mail Toolbar ( when the user adds the app extensions for the app from Mail Preference ).
I'm using core data in a shared group and I want to show the list of the email address that the user has added from the app to the ComposeViewController.
But on the extension window in the Mail, it shows :
Permissions for “MyDemoApp”:
• Email Contents
Can read sensitive information from emails including the message subject and recipients. This applies to all outgoing messages.
Since my Compose-Mail-Extension does not read subject/recipients in the Compose window, My app should not ask this permission from users.
Is there any way to omit permissions which my app is not using?
Hi,
I wanted to know what level of NSFileProtection is provided by default in iOS in the user's documents directory of application container. Basically, if I am creating a file in this location -
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
What level of protection among NSFileProtectionType is provided?
`
Post not yet marked as solved
I have an application which is doing screen recording, now I move the screen recording feature to a standalone native XPC module for better performance due to some reason that the app is tied an old lib which cannot generate native code for M1 (Intel only).
My question is that, this new xpc module is belong to the App (demanded by the app), if I give the screen recording permission to the app, will the xpc screen scraping module be granted to the permission?
Right now looks like it is not after I granted the application with the screen recording permission since display stream won't produce the frame data.
Post not yet marked as solved
I would like to develop a relationship with my app users, and recently updated my app to collect Contact Info (via the App Privacy section). I know that if a user declines to share that information I obviously won't receive it, but for those users who do agree to it, am I able to see the email address (and any other info shared) of my purchasers somewhere?
Post not yet marked as solved
The problem is that I have added the string privacy - camera usage description to the info.plist file and it does not appear when using the camera, what could be happening? , I have restarted the xcode several times and I have simulated the application several times and it still does not appear. If someone can help, thank you very much in advance.
Post not yet marked as solved
Hello,
I'm trying to submit my game to the app store, but I get rejected with the message:
The package I use is iOS 14 Advertising Support package:
I use the sample scene from the package with little adjustments:
[ContextScreenManager.cs]
using UnityEngine;
using System;
using System.Collections.Generic;
#if UNITY_IOS
using UnityEngine.iOS;
#endif
using System.Collections;
using UnityEngine.SceneManagement;
namespace Unity.Advertisement.IosSupport.Samples
{
/// <summary>
/// This component will trigger the context screen to appear when the scene starts,
/// if the user hasn't already responded to the iOS tracking dialog.
/// </summary>
public class ContextScreenManager : MonoBehaviour
{
/// <summary>
/// The prefab that will be instantiated by this component.
/// The prefab has to have an ContextScreenView component on its root GameObject.
/// </summary>
public ContextScreenView contextScreenPrefab;
void Start()
{
#if UNITY_IOS
Debug.Log("IOS detected");
// check with iOS to see if the user has accepted or declined tracking
var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
Version currentVersion = new Version(Device.systemVersion);
Version ios14 = new Version("14.5");
if (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED && currentVersion >= ios14)
{
var contextScreen = Instantiate(contextScreenPrefab).GetComponent<ContextScreenView>();
// after the Continue button is pressed, and the tracking request
// has been sent, automatically destroy the popup to conserve memory
contextScreen.sentTrackingAuthorizationRequest += () => Destroy(contextScreen.gameObject);
}
#else
Debug.Log("Unity iOS Support: App Tracking Transparency status not checked, because the platform is not iOS.");
#endif
StartCoroutine(LoadNextScene());
}
private IEnumerator LoadNextScene()
{
#if UNITY_IOS
var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
while (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
{
status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
yield return null;
}
#endif
SceneManager.LoadScene(1);
yield return null;
}
}
}
and
[ContextScreenView.cs]
using UnityEngine;
namespace Unity.Advertisement.IosSupport.Components
{
/// <summary>
/// This component controls an iOS App Tracking Transparency context screen.
/// You should only have one of these in your app.
/// </summary>
public sealed class ContextScreenView : MonoBehaviour
{
/// <summary>
/// This event will be invoked after the ContinueButton is clicked
/// and after the tracking authorization request has been sent.
/// It's a good idea to subscribe to this event so you can destroy
/// this GameObject to free up memory after it's no longer needed.
/// Once the tracking authorization request has been sent, there's no
/// need for this popup again until the app is uninstalled and reinstalled.
/// </summary>
public event Action sentTrackingAuthorizationRequest;
public void RequestAuthorizationTracking()
{
#if UNITY_IOS
Debug.Log("Unity iOS Support: Requesting iOS App Tracking Transparency native dialog.");
ATTrackingStatusBinding.RequestAuthorizationTracking(AuthorizationTrackingReceived);
sentTrackingAuthorizationRequest?.Invoke();
#else
Debug.LogWarning("Unity iOS Support: Tried to request iOS App Tracking Transparency native dialog, " +
"but the current platform is not iOS.");
#endif
}
private void AuthorizationTrackingReceived(int status) {
Debug.LogFormat("Tracking status received: {0}", status);
}
}
}
Why do I get rejected? Is it because I display the example screens from the package?
Anyone had similar problems?
Glad for any help, thanks!