Hello,
We plan to remove our app from the App Store. This post aims to determine whether our company can rely on Private Relay to compensate our customers.
Our Challenge: Gift Card Refunds with Private Relay
Some customers purchased gift cards through our app using Apple's "Private Relay" during account creation. To process refunds, we need a way to identify these customers. Our system relies on email addresses, which are masked by Private Relay.
Potential Solution: Apps Using Apple ID
We're exploring "Apps Using Apple ID" as a possible solution for customers to share their Private Relay addresses for refund purposes.
Under what circumstances will an app cease to appear in the "Apps Using Apple ID" list?
What conditions must be met to initiate a new Private Relay connection for the same user and application? For example, would using the same Apple account to sign into the app on a different device trigger a new Private Relay?
Thank you for your help!
General
RSS for tagDelve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.
Post
Replies
Boosts
Views
Activity
Hello.
When testing with the Endpoint Security Framework for the AUTH_OPEN event, I found that the deadline was 15 seconds, but the actual process termination occurred at 5 or 6 seconds. Is this intended?
STEPS TO REPRODUCE
Install the application “Dynamic-Lyrics" develop by me, which the bundle ID is com.bing.lyrics
(https://apps.apple.com/us/app/id6476125287)
Use this APP for a period of time
Go to Settings - Screen Time - See All App & Website Activity
I found that the name and icon displayed in Screen Time are incorrect.
The expectation is: “Dynamic-Lyrics", but the actual display is "com.microsoft.bing"
The guess is that the bundle ID contains the characters com.bing (bing is my name) and is incorrectly recognized as microsoft’s app.
In the documentation for a Message Filter Extension it states:
If you have servers that can help your app extension determine how to handle a message, you must add the Associated Domains capability to your Xcode project and specify those domains.
(https://developer.apple.com/documentation/sms_and_call_reporting/sms_and_mms_message_filtering/creating_a_message_filter_app_extension)
The words servers and domains are in the plural.
If it's possible to specify multiple servers/domains for a Message Filter Extension then how is that done? There's no documentation nor reference for that.
If multiple domains can be added to the info.plist then what is the iOS behavior in that case?
Can the extension supply/change which domain is used at run time?
After setting up all permissions, family members not showing up on the device list
Currently, I am working on an iOS app with a Deployment Target set to iOS 15.0, and macOS 12.0. The app is allowed to run on Macs with Apple Silicon.
A customer with a Mac running macOS Monterey (12) is complaining that in the TestFlight app, they cannot install the app since it shows "Requires OS Update", even though the deployment target is smaller than the installed version of macOS 12.
Are there any specifications available on which macOS version is required in order to use iOS apps on Silicon Macs?
I have noticed that when I select the app token of the youtube app to be blocked via a ManagedSettingsStore, the youtube website is blocked as well (which is a good and intended behavior IMO).
But how do I know in the ShieldConfigurationDataSource’s override func configuration(shielding webDomain: WebDomain, in category: ActivityCategory) -> ShieldConfiguration to which ManagedSettingsStore the WebDomain’s token is related?
We use different ManagedSettingsStores for different block purposes, which differentiate in their ShieldConfiguration.
Thanks a lot and have a great day!
We have a requirement in the App in which for certain countries/regions we have to support only certain languages. If the User's current language is not supported, We would have a custom fallback/default language for specific regions. like it could be Arabic for middle east countries, English for Europe etc.
Since iOS localization allows fallback to only one Base localizations, we had to take a custom approach to implement the same.
To achieve the same, we checked the User's current language and Country and if required we overrode the
"kLanguageBundleKey" property within the Bundle class, and
set the following user defaults, (here for example say english)
Foundation.UserDefaults.standard.set(["en"], forKey: "AppleLanguages")
Foundation.UserDefaults.standard.synchronize().
And it works!
The problem is that in iOS, post this override, when the user changes language from the Phone's settings app. Launches our app, Bundle.main.preferredLocalizations.first always gives what we overwrote and not the one present in the Phone's settings.
Given this,
Is there way to get the user's current language even after such overrides? or should we do the language overrides some other way?
I'm working with the Apple Watch's acceleration data and have referred to the document Identify the coordinate axes of the device. According to this document, the X-axis points to the right side of the watch, the Y-axis points towards the top side, and the Z-axis points towards the user.
However, when I place the watch on a flat surface and move it horizontally to the right, I observe that the X-axis acceleration is negative. Similarly, when I move the watch vertically upwards, the Y-axis acceleration also shows a negative value.
Is this expected behavior, or am I misunderstanding something about the coordinate system or acceleration readings?
I'm finding developing for HomeKit using the iOS Simulator utterly confounding.
All of my home's actual HomeKit accessories show up fine when I run the HomeKit app I'm developing on my actual phone. But none show up when I run my app in the iOS Simulator.
Maybe that's how it's supposed to be? I decided to run the HomeKit Accessory Simulator in an attempt to get something to show up in the iOS Simulator, but the accessories I've created there don't show up in the Simulator either.
How do I get devices to show up in the iOS Simulator?
Thanks.
Hello everyone,
I have an app leveraging SwiftData, App Intents, Interactive Widgets, and a Control Center Widget. I recently added Live Activity support, and I’m using an App Intent to trigger the activity whenever the model changes.
When the App Intent is called from within the app, the Live Activity is created successfully and appears on both the Lock Screen and in the Dynamic Island. However, if the same App Intent is invoked from a widget, the model is updated as expected, but no Live Activity is started.
Here’s the relevant code snippet where I call the Live Activity:
`
await LiveActivityManager.shared.newSessionActivity(session: session)
And here’s how my attribute is defined:
struct ContentState: Codable, Hashable {
var session: Session
}
}
Is there any known limitation or workaround for triggering a Live Activity when the App Intent is initiated from a widget? Any guidance or best practices would be greatly appreciated.
Thank you!
David
I am currently building a screen time app and I am trying to figure out how to persist the family activity picker so that when my app closes and re-opens, the app selections in it are saved. I've successfully implemented core data and figured out how to store names of the selected apps in a list like this -
Core Data addApp Function -
func addApp(name: String, context: NSManagedObjectContext){
let newApp = AppToken(context: context)
newApp.bundleIdentifier = name
saveData(context: context)
}
Adding app selections to Core Data (after the family activity picker has updated the selection) -
.onChange(of: model.selectionToDiscourage)
{
for i in model.selectionToDiscourage.applications {
print(i)
dataController.addApp(name:i.localizedDisplayName ?? "Temp", context: moc)
}
Printing saved selections in a list (bundleIdentifier is my attribute for my appToken entity, but I am just pulling the names here. For whatever reason all of them end up being Temp" as shown above anyway. In other words name:i.localizedDisplayName is not working and Temp is shown in the list for every app chosen) -
if dataController.savedSelection.isEmpty {
Text("No Apps Selected")
.foregroundColor(.gray)
} else {
List(dataController.savedSelection, id: \.self) { app in
Text(app.bundleIdentifier ?? "Unknown App")
}
.scrollContentBackground(.hidden)
}
So, when my app closes and reopens, the list of app names persists. Now, my issue is figuring out how to write back to selectionToDiscourage and loading the family activity picker with those saved apps. I have no idea if I should be doing this a different way and if using Core Data is overkill, but I cannot figure out how it's syntactically possible to write back to this family activity picker when the app reopens -
.familyActivityPicker(isPresented: $isPresented, selection:$model.selectionToDiscourage)
Thank you to whoever takes a look at this!!
Hi everyone,
I’m currently developing an app using Apple’s RoomPlan framework, and so far, everything is working great! However, I’d like to extend the functionality to include scanning smaller objects, such as light switches or power outlets, in addition to the walls and larger furniture that RoomPlan already supports.
From what I understand, based on the documentation, RoomPlan doesn’t natively support the detection or measurement of smaller objects like these. Is that correct?
If that’s the case, does anyone have suggestions or ideas on how this could be achieved? Perhaps by integrating another framework or technology alongside RoomPlan?
I’d appreciate any insights or advice from those who have worked on similar use cases.
Thanks in advance!
I have an app which passes GroupActivity messages between instances running on iOS and visionOS provided both instances were built from the same target. They do not pass successfully if the apps were built from different targets, even though the one is a duplicate of the other. I have a sample demonstrating the issue:
https://github.com/bwake2012/GroupActivitiesColors
I need different targets because not all third party libraries support all devices. Libraries which support connected external hardware may never support visionOS. Multiple targets is the simplest way I can see to deal with that.
The two targets are duplicates, except for the destinations.
The app instances appear to join the session correctly. You can see screen shots from two devices in the same session.
I see errors in the debugger:
messageStream(for:messageType:):618 Explanation: Decoding message from data Error: Swift.DecodingError.valueNotFound(Any, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "message", intValue: nil), CodingKeys(stringValue: "t", intValue: nil)], debugDescription: "Decoder for value of GroupActivitiesColors.ChooseColorMessage.self not found.", underlyingError: nil))
I am trying to get universal links to work in our app Firefox iOS
The Problem:
I am not able to get universal links to work for our release app or beta app scheme locally or with a TestFlight build.
I am able to get it working on our development scheme with a locally hosted app site association file. I also was able to get it working using our development scheme but setting the bundle id to the release app bundle id. I also built a demo app with the release app id and the release app development certificate. It succeeded there as well.
Implementation Steps:
Added associated domains entitlement to the production and beta schemes for our main app target (No associated domains entitlements or capabilities added for any extensions)
Confirmed that the bundle ids associated with these schemes have the associated domains capability
Added applinks:blog.mozilla.org to associated domains list
Confirmed in code that user activities are being handled via SceneDelegate.swift
Steps to Debug:
I have gone through and validated every step in the provided Universal Link Debugging. All were successful:
Associated Domains Development -> Diagnostics: Opens Installed App
Validate AASA host and applinks match
curl -v https://blog.mozilla.org/.well-known/apple-app-site-association returns the expected json file
swcutil dl correctly downloads the AASA blob
swcutil verify succeeds
I have inspected the IPA of our beta build and confirmed the App ID and the associated domains is an entitlement.
I have looked at the console logs filtering by swcd. I am not seeing any errors and I see the download for the AASA file kick off:
Beginning data task AASA-4BABF039-3C69-4E36-AA4E-ECCDF3D14878 { domain: bl….mo….org, bytes: 0, route: cdn }
There is only one error that appears in the console but our app is not enterprise-managed so I assume this is normal.
Error getting enterprise-managed associated domains data. If this device is not enterprise-managed, this is normal: Error Domain=SWCErrorDomain Code=1701 "Failed to get associated domain data from ManagedConfiguration framework." UserInfo={NSDebugDescription=Failed to get associated domain data from ManagedConfiguration framework., Line=298, Function=<private>}
I have run Sysdiagnos and identified for our App ID:
Site/Fmwk Approval: approved
I am at a loss as to what is preventing universal links from working even though all validation steps pass.
I'm a complete newbie to Swift and app development, but I'm playing around with an idea that uses the ScreenTime API.
Some of the articles (and AI) mention that you need to request access through Apple to use this, but based on my research it seems like this is a bit outdated.
Can anyone provide a clear answer here + any resources you've used to navigate this? The documentation is pretty sparse.
Thank you in advance!
unable to add for review the items below are required to start the review process: new apps and app updates must be built with the latest public (gm) versions of xcode, and the ios, macos, watchos, and tvos sdks. apps built with
i have iPhone 16 pro and I’ve updated to IOS 18.2.
however after I clicked on ‘Get Apple Intelligence’, and then set up button, nothing happened. I’ve tried this process many times still nothing working.
I have shortcuts up and running and I have my custom response added to my completion handler since day1.
Recently I upgraded to iOS18, and found out the app I develop can not display the custom response.
I test the app on iOS17.6, the display of custom response is no problem.
The situation is exactly like the problem posted on 2018: https://forums.developer.apple.com/forums/thread/109324
Can anyone help me or have the same bugs?
Thank you so much!
Happy 2025
I just purchased a new 2025 Honda Civic Hybrid sedan with the highest trim package. The staff at the dealership set CarPlay up to my iPhone 16 Pro, and all was operating perfectly. Then, last week, I started noticing random connectivity problems with it (ie: no sound from my audio apps, “not connected” being displayed on the dashboard displa, etc.) I tried to think of what had changed with my setup, and the only change was that I updated to the latest iOS update 18.2
I scheduled a service appointment with the Honda dealer in hopes that Apple and Honda can confirm a fix for this issue. I’ll try to attach an image from my car’s dashboard display as an example of an error message that isn’t resolved.