I have a question regarding specifying URLs for a Message Filter App Extension.
https://developer.apple.com/documentation/identitylookup/creating-a-message-filter-app-extension
The documentation 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.”
The term servers and domains is specified in the plural, and adding two occurrences of ILMessageFilterExtensionNetworkURL to the info.plist doesn’t cause a build error.
So the first question is:
1.What is the behaviour of the OS when two instances of ILMessageFilterExtensionNetworkURL but specifying different urls is defined?
Does the OS, for example always try one url first, and if that doesn’t respond after N seconds, it attempts the second one?
Can the Message Filter Extension indicate which of multiple defined ILMessageFilterExtensionNetworkURL should be used at run time?
3.How does the OS behave if a URL specified for ILMessageFilterExtensionNetworkURL resolves to two VIPs? Will the OS retry if the first VIP is not accessible (similar to any typical browser or web application behavior).
Thank you
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.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I am testing App Clip on Testflight to show App Clip Card but it only shows a white Card with the message: “This app clip is not currently available in your country or region” (if using Local Expreriences, it shows normally)
I have fully installed apple-app-site-association, App Clip Experience, Domain URL Status also validated ... don't understand why, is the app "Redy For Sale" new to show the Card?. I want to let customers test show App Clip Card without using Local Expreriences on Testflight
If anyone knows, please help, thank you.
I've noticed that very consistently the Weatherkit API times out when I make a large(-ish) number of calls at 7am east coast time.
If I make x calls between 7:00:00 and 7:01:00 about half of them time out (as do retries.)
If I make 2x the calls between 7:15:00 and 7:16:00 there are close to zero time outs.
I've looked at the logs, at the calls per second, etc., and there is no difference between 7 and 7:15.
So, I'm not hitting a rate limit. It seems like Weatherkit itself just can't handle the traffic at peak times.
Is there any other explanation? Does Apple intend to make sure the API can handle all the traffic they are getting paid to handle?
I am trying to return a SceneView from a DeviceActivityReport. I have my DeviceActivityReportExtension correctly set up and I am able to display a view with text or other UI elements in it, but attempting to return a SceneView as part of the body just won't display. I have this example. When I display this SceneView in my main app, it displays correctly. When I put the same code inside the DeviceActivityReportExtension, the scene does not show up and an error failed to create a gl context appears repeatedly in the console. I'm pretty stumped and would appreciate any suggestions.
import SwiftUI
import SceneKit
struct TestScene: View {
var scene: SCNScene? {
SCNScene(named: "art.scnassets/environment.scn")
}
var cameraNode: SCNNode? {
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 2)
return cameraNode
}
var body: some View {
SceneView(
scene: scene,
pointOfView: cameraNode,
options: [
.allowsCameraControl,
.autoenablesDefaultLighting,
.temporalAntialiasingEnabled
]
)
}
}
I am encountering an issue after transferring an app that uses the FamilyControls framework to a different app account. After releasing a new version of the app post-transfer, the following problems arose:
ApplicationTokens obtained in the pre-transfer version no longer function when used with ManagedSettingsGroup.ShieldSettings in the post-transfer version.
Using the same ApplicationTokens with Label(_ applicationToken: ApplicationToken) does not display the app name or icon.
These issues did not occur in the pre-transfer version and everything worked as expected. We suspect that ApplicationTokens obtained prior to the transfer are no longer valid in the updated app released under the new app account.
We are seeking guidance on the following:
Is this expected behavior after transferring an app to another app account?
What steps should we take to ensure that ApplicationTokens obtained before the transfer remain functional in the post-transfer environment?
If these tokens are invalidated due to the transfer, what are the recommended procedures for regenerating or updating ApplicationTokens for existing app users?
Maintaining a seamless user experience after transferring the app is critical. We would greatly appreciate any insights or guidance. Please let us know if additional information or logs would assist in investigating this issue.
Thank you!
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings
After transferring the App ownership to a different account, if you update the app on iOS, two identical apps will show up in Settings > Screen Time. Users can't control the blocking settings from before the update - the only fix is to restart the phone.
After the next execution of manageStore.shield.applications, users still can't manually disable the restrictions - their only option is to uninstall and reinstall the app. I believe this is related to how Screen Time API's authentication works - it's not just tied to the app's bundle ID, but also linked to the developer account's organization ID. Any suggestions for a clean solution that would allow smooth app updates after the transfer without running into these issues?
Several users have reported that my iOS Action and Share Extensions is not visible.
Now one of the TestFlight users has reported the same. Notice this user has been using the app for one year, so they know how to use it.
Doing FaceTime and them sharing the screen, we have tried:
Deleting app and downloading from App Store
Deleting app, turning device off (call was off) and turning it on, downloading from App Store
Deleting app, turning device off (call was off) and turning it on, downloading from TestFlight
They can open the app, they just do not see the extensions. I would have thought it was the activation rules inside of the InfoPlist, but they are the same for all users and my other testers are not facing the issue.
Device is iPhone 16 Pro, iOS 18.1
What other steps could I follow? What other information could I gather to fix this?
I would like to create a MailKit extension that will allow me to manage my existing messages. I would like to move them around form folder to folder and reqad and update their headers to store some metadata that will be used by the extension.
Looking at the documentation for MailKit suggests that I can only implement 4 types of handlers (content blocker, action handler, compose handler and security handler). I can’t see anything in the docs about being able to get a list of messages in the inbox and manipulate them.
Am I missing something?
I’d love to hear from someone who knows more about this topic before I get into a dead-end rabbit hole.
cheers,
-tomek
在执行完 INIntent 或者AppIntent的Shortcuts后,刷新 WidgetKit桌面小组件
Hi,
I'm implementing a Message Filter Extension and need clarification about the ILMessageFilterExtensionNetworkURL Info.plist key.
Is it valid to include query parameters in the URL like:
https://example.com/test?id=123
I want to make sure this approach will pass App Review before implementing it. The query parameter would be used to identify the client making the filtering request.
Has anyone successfully used URLs with query parameters in their approved Message Filter Extensions? Any insights would be appreciated.
Thanks!
So what's the point of being able to block unto 50 apps per ManagedSettingStore via store.application.blockedApplications (which works fine) until removing the blocked apps or clearing the store. Where the following occurs
if you have a social networking group with more than 9 apps only 9 apps will go back into the group and all the others will go onto the springboard all jumbled
if you end up with an empty group then tap into the group, it is removed then during the reset all apps are placed back on to the springboard
I am trying to follow the guidance for testing a Local Experience, as listed in the Testing Your App Clip’s Launch Experience - https://developer.apple.com/documentation/app_clips/testing_your_app_clip_s_launch_experience documentation. I have successfully created my App Clip target, and can confirm that running the App Clip on my device does launch the App Clip app as I expected. Further, I can successfully test the App Clip on device, by setting the _XCAppClipURL argument in the App Clip's scheme.
I would like to test a Local Experience. The documentation states that for testing Local Experiences;
To test your app clip’s invocation with a local experience, you don’t need to add the Associated Domains Entitlement, make changes to the Apple App Site Association file on your web server, or create an app clip experience for testing in TestFlight. Therefore, I should be able to configure a Local Experience with any desired domain in Settings -> Developer -> Local Experience, generate a QR code or NFC tag with that same URL, and the App Clip experience should appear. I have taken the following steps;
Built and run my App Clip on my local device.
In Settings -> Developer -> Local Experience, I have registered a new experience using a URL prefix https://somewebsite.com
Set my Bundle ID to com.mycompany.myapp.Clip, which exactly matches the Bundle Identifier, as listed in Xcode, under my App Clip target.
Generated a QR code which directs me to https://somewebsite.com
In theory, I believe I should be able to open the Camera app on my device, point the camera at the QR code, and the App Clip experience should appear. However, I received mixed experiences. 50% of the time, I receive a pop-up directing me to open https://somewebsite.com in Safari, the other 50% of the time, no banner or action occurs whatsoever.
Is this an issue anyone has faced before, or have I pursued these steps out of order?
In iOS 18, the requestValue method no longer works when the parameter it is called on is not included in the parameterSummary of an AppIntent. This issue causes the app to fail to present a prompt for the user to select a value, resulting in an error with the message:
Domain=NSCocoaErrorDomain Code=4099 "The connection from pid 40685 on anonymousListener or serviceListener was interrupted, but the message was sent over an additional proxy and therefore this proxy has become invalid."
Steps to Reproduce:
Create a simple AppIntent with the following code:
import AppIntents
struct Intent: AppIntent {
static let title: LocalizedStringResource = "Intent"
static var parameterSummary: some ParameterSummary {
Summary("Test \(\.$category)") {}
}
@Parameter(title: "Category")
private var category: CategoryEntity?
@Parameter(title: "Hidden Category")
private var hidden: CategoryEntity?
@MainActor
func perform() async throws -> some ReturnsValue<CategoryEntity?> {
var result: CategoryEntity?
do {
result = try await $hidden.requestValue("Select category") // Doesn't work since iOS 18 as $hidden is not set in parameterSummary
} catch {
print("\(error)")
}
return .result(value: result)
}
}
Run the code on a device with iOS 18.
Observe that the requestValue method fails to present the selection prompt and instead throws an error.
Expected Results:
The app should successfully present a prompt for the user to select a value for the hidden parameter using requestValue, even if the parameter is not included in the parameterSummary.
Actual Results:
The app fails to present the selection prompt and throws an error, making it impossible to use requestValue for parameters not included in parameterSummary.
Version/Build:
iOS 18.0
Configuration:
Tested on various devices running iOS 18.
Is there a change in the API that I might have missed?
We're running into an issue with our pkg bundle where the main .app file disappears after installation and wanted to see if anyone has an idea about what would cause it.
We have a pkg bundle with three separate apps, one primary app and two supporting apps. We distribute this pkg bundle directly to our users, who will manually install it on their devices (rather than through the app store).
The installation itself will usually complete without any issues, and we aren't seeing anything in the install or system logs indicating that it was removed afterward (our postinstall script checks that all of the files exist and are in the correct locations), but after the installation the main app disappears while the rest of the files (including the supporting apps) we lay down are still present. Sometimes it will fail with an error similar to this:
2024-10-02 09:43:07-04 MBA-L-8114 installer[9894]: Error getting application status info for file:///Applications/.hiddenfolder/app1.app: Error Domain=NSCocoaErrorDomain Code=260 "The file "app1.app" couldn't be opened because there is no such file." UserInfo={NSURL=file:///Applications/.hiddenfolder/app1.app, NSFilePath=/Applications/.hiddenfolder/app1.app, NSUnderlyingError=0x6000026a0d50 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
This only happens on certain computers, but on those computers it will happen consistently. We have noticed that it seems to happen more often with computers that are MDM configured.
So far we’ve investigated permissions issues with the build process, installation script issues, and signing/notarizing, but have not found anything that might cause this issue. We did verify that we’re setting BundleIsRelocatable NO in the plist file for our package, so in theory it shouldn’t be trying to move the app after installation (we don't see the main app anywhere on the device so macOS doesn't seem to be moving it).
We have another post going into more technical detail here: https://developer.apple.com/forums/thread/769443
Topic:
App & System Services
SubTopic:
General
I don't see anything obvious in this crash report.
Can anyone learn me what went wrong?
ZZZMMMM-2025-01-28-212901.ips
Topic:
App & System Services
SubTopic:
General
Dear,
I am starting to read the documentation about HCE payments and doing the first tests in my device. I have noticed that the only way to request contactless payment permissions is calling:
NFCPresentmentIntentAssertion.acquire()
And if it is the first time will prompt a popup asking the permissions and if not and the user denied the permission will throw the error systemEligibilityFailed.
My doubt is, is there other way to ask the contactless permissions instead of using the acquire? Because I understand that the acquire method is mainly created to prevent the default contactless app from launching. So I assume that it is not a good practice to use some point in the app just for asking the permission, right? Or for the first time we can use it for that purpose?
According to that, is there any way to get the current contactless payment permissions status, just as we can get it from the camera (AVCaptureDevice.authorizationStatus(for: mediaType: AVMediaType))?
The main goal is to give to the user a good experience. First asking the permission in a specific screen that explain why we need this permission and if the user denies it show some information in a screen as we can do it with other services as camera, micro, location...
Thank you
The problem is that when I read out the text in a PDF with page.string or page.attributedString, the context of the lines is lost. Instead of
TermA....23,45
TermB....2,13
in an index document
TermA
TermB
23,45
2,13
is issued. The context of the lines (and the sequence of the letters) is lost. Is there a way to read the text from a PDF line by line?
Received entitlement access from Apple yesterday, but I'm getting this error when trying to check app authorization:
FinanceKit/FinanceStore+FinancialDataAuthorization.swift:27: Fatal error: Process is not entitled
Code of interest:
import Foundation
import FinanceKit
@MainActor
class FinanceService: ObservableObject {
private let store = FinanceStore.shared
@Published private(set) var authorizationStatus: AuthorizationStatus = .notDetermined
@Published private(set) var accounts: [Account] = []
@Published private(set) var transactions: [Transaction] = []
@Published private(set) var balances: [AccountBalance] = []
@Published private(set) var wallet: Wallet = Wallet()
// Authorization
func requestAuthorization() async {
do {
authorizationStatus = try await store.requestAuthorization()
} catch {
// If there's an error requesting authorization, set to denied
authorizationStatus = .denied
print("Error requesting authorization: \(error)")
}
}
func checkAuthorizationStatus() async {
do {
print("Checking authorization status")
authorizationStatus = try await store.authorizationStatus()
print("Authorization status: \(authorizationStatus)")
} catch {
// If there's an error checking status, assume not determined
authorizationStatus = .notDetermined
print("Error checking authorization status: \(error)")
}
}
}
What I've done/checked:
Info.plist is set properly, with NSFinancialDataDescription AND
NSFinanancialDataUsageDescription both set
In my entitlements, key com.apple.developer.financekit is set to financial-data
I have am targeting an actual device (min. 17.6)
I've followed the instructions here: [https://developer.apple.com/forums/thread/757973] to no avail.
Any ideas?
Hello,
I know that in the past it was explicitly forbidden to programmatically end the app, but I cannot find the reference on the current guidelines.
The only thing I found was this:
https://developer.apple.com/library/archive/qa/qa1561/_index.html
but this site has a box on top saying that is not being updated anymore.
What is the current policy about this? Is it allowed now?
Thank you! :)
Topic:
App & System Services
SubTopic:
General
I don't see upload option for the App Store connect, can only export .ipa.
Also having issues with Transporter, pasting error message here.
Could not create a temporary .itmsp package for the app "Redacted.ipa".
Unable to determine app platform for
'Undefined' software type.
Is anyone else facing the same issue? I am using Xcode 15.