I have an app written in swift.
It has multiple pods dependencies installed.
When the app is generated with Xcode 15.4 the size of app is ~148Mb
and when the same app is generated with Xcode 16.2 the size is ~246MB
When I extracted and analysed the app, it was observed that one of the framework installed via pods Dependencies("DocumentReaderCore") was consuming more size(42.9 MB vs 215 MB) the DocumentReaderCore present in the Payload/.app/Frameworks/DocumentReaderCore.framework/DocumentReaderCore was of type linux executable when generated using Xcode 15.4 vs the other was od document type and size was 215MB.
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
Hi All,
I have created a Push Notification certificate from my Apple Developer account. After downloading the aps.cer file and adding it to my Keychain, the certificate was added successfully, but the private key is missing.
Has anyone encountered a similar issue in the past? What could be causing this problem?
Hi,
I'm trying out the beta for music kit. In the current version of my app, my widget can show multiple albums. I preload the images of the album covers. In the beta's the url that is returned for the artwork starts with: "musickit://", which does not work with URLSession. How can I preload the data using the new url scheme?
Current code:
func fetchArtworkFor (musicID: MusicItemID, url : URL?) async throws -> UIImage? {
guard let url = url else {
return nil
}
let urlRequest = URLRequest (url: url)
let data = try await URLSession.shared.data(for: urlRequest)
let image = UIImage(data: data.0)
return image
}
// Some other function
for album in albumsToShow {
if let url = album.artwork?.url(width: context.family.imageHeight, height: context.family.imageHeight), let image = try? await fetchArtworkFor(musicID: album.id, url:url) {
images[album] = image
}
}
I recently encountered an issue with Xcode 16.2 while attempting to integrate Settings.bundle into a new app. I added Settings.bundle as a new file (using the provided template), but when I ran the app (the default "Hello World" project), the expected three default controls (Name, Enabled, Slider) did not appear in the app's settings.
To troubleshoot, I downgraded my system to macOS Sonoma 14.7.2 and Xcode 15.4 (on a 2023 Mac Mini, M2). After this downgrade, everything worked as expected. With a new project, adding Settings.bundle, and running the app, the settings entry for the app appeared, including the three default fields.
This behavior suggests a potential issue or incompatibility with Xcode 16.2.
I have an iOS app that installs a Content Filter in order to block certain types of content at the network/socket level. The Family Controls framework stipulates that this can only be done successfully on a FamilyControlsMember.child account type (or on a supervised device). Our initial release has been really successful, but I would say that perhaps 75% of our users are .individual (probably over 18). Perhaps a topic for another forum post is to discuss how Apple's policy here doesn't seem to be meeting a real need here for non-minors, but I'll leave that alone for now.
The problem we're facing is that as far as I can tell, the only way to determine if someone has the right account type is to initiate an authorization request using AuthorizationCenter.shared.requestAuthorization(for:) and then inspect the error. I think it could really help the usability of the app if we could detect the account type and preemptively show a helpful message if the authorization could not succeed, and recommend some alternatives. But I've looked so far in vain for some way to do this.
Is there any api in Family Controls (or elsewhere) that can query the system for this information? Any pointers would be greatly appreciated!
Touchscreen gestures in CarPlay aren't recognized in the app (delegate CPMapTemplateDelegate functions aren't called). Tried also in the Coastal Roads demo app to add test functions to check that pan functions are called - the same:
func mapTemplateDidBeginPanGesture(_ mapTemplate: CPMapTemplate) {
MemoryLogger.shared.appendEvent("Did begin pan gesture.")
}
func mapTemplate(_ mapTemplate: CPMapTemplate, panBeganWith direction: CPMapTemplate.PanDirection) {
MemoryLogger.shared.appendEvent("Did begin pan gesture with direction \(direction.rawValue).")
}
Note: buttons (on carplay app) are working when pressing on them. Also, the desktop of carplay can be panned (by swipe gesture).
Using Xcode 14.3, MacBook pro M1
@APPLE TEAM
WHAT WRONG WITH YOUR WORKER??? I STILL WAITING FOR REVIEW FOR A VERY IMPORTANT BUG IN MY APP...WHY IT TAKES SO LONG?
I've been testing the Live CallerID feature using the Apple-provided local server example - live-caller-id-lookup-example. I've been running a local server with tunneling using ngrok for the initial setup. Everything was working perfectly with the following setup:
@main
final class CallerID: LiveCallerIDLookupProtocol {
var context: LiveCallerIDLookupExtensionContext {
LiveCallerIDLookupExtensionContext(
serviceURL: URL(string: "https://example-tunnel.ngrok.io")!,
tokenIssuerURL: URL(string: "https://example-tunnel.ngrok.io")!,
userTierToken: Data(base64Encoded: "BBBB")!
)
}
}
However, after I updated the URLs to the production ones, I encountered an issue:
@main
struct CallerID: LiveCallerIDLookupProtocol {
var context: LiveCallerIDLookupExtensionContext {
LiveCallerIDLookupExtensionContext(
serviceURL: URL(string: "https://example.net/")!,
tokenIssuerURL: URL(string: "https://example/issue")!,
userTierToken: Data(base64Encoded: "BBBB")!
)
}
}
The problem is that during calls or when updating PIR parameters, the application still attempts to connect to the initial ngrok tunnel URLs instead of using the new production URLs. I can confirm this because the logs on my local server show incoming requests, indicating that the application is still referencing the old ngrok tunnel URLs.
Steps I’ve taken to resolve the issue include:
Deleting and reinstalling the application.
Using reset(forExtensionWithIdentifier:)
Unfortunately, these attempts have not been successful. I even extracted the binary of the app and extension to inspect the strings, confirming that the correct production URLs are present.
The server was started with the following command:
PIRService --hostname 127.0.0.1 service-config.json
Could this be some sort of caching bug on the iOS side, or am I missing something?
This is more a general question of whether it is possible to share persistent/coredata from the main app to Screentime-related extensions such as DeviceActivityReportExtension.
I've set my code up (e.g., App Groups, files to different targets, using nspersistentcontainer with app group url, etc.) in a way that it builds, and the extension seems to recognize my CoreData schema (able to query using fetchrequest). But the data returned is always null. So i'm wondering if it is even possible to READ app data from the extension.
I understand it is not possible to write or pass data from the extension back to the app. I've also been able to read data that was saved in main app from UserDefaults in my extension.
Hi
I am developing a game app with Epic Unreal Engine.
I am testing this as testFlight these days.
My problem is “launch URL” what a function in Unreal Engine.
This is a function that allows user to search the Internet with the entered URL.
It worked well before. But not now. I don't know when it did start not working. It's like after the iPhone IOS update or the Xcode update.
Mac sequoia 15.1.1
Xcode 16.2
( Unreal Engine 5.4.4 )
IOS is 18.2. but It didn't work since the just previous version.
Any advice can I get?
Topic:
App & System Services
SubTopic:
General
Hi All, I would like to develop a small macOS app using swift. I want to use ImageCaptureCore to access and control connected scanners ( via usb). I followed the official docs and wrote this ScannerManager. The code seems to be working without issues or warnings.
I added the Hardened Runtime capability and both com.apple.security.personal-information.photos-library and com.apple.security.device.usb to the .entitlements file.
As well added NSCameraUsageDescription to the Info.plist.
Problem:
None of my scanners do get detected (tested 2 different models). Of course, they are connected and do get recognized by the Image Capture App (and work as expected) and are listed in the systems app, too.
When I connect my phone it does get detected by the
func deviceBrowser(_ browser: ICDeviceBrowser, didAdd...
delegate function. Thats why I believe my code is working but the app is lacking permissions to detect scanners somehow. Does anyone know something about this?
I am using macOS 15.1.1 (24B91) on a M1 Pro.
Many thanks in advance!
class ScannerManager: NSObject, ICDeviceBrowserDelegate, ICDeviceDelegate {
let deviceBrowser: ICDeviceBrowser
private var currentDevice: ICDevice?
private var scannerDeviceDelegate: ScannerDeviceDelegate?
var isScanning = false
var scanners: [ICDevice] = []
// MARK: - Initialization
override init() {
print("🚀 Initializing ScannerManager...")
self.deviceBrowser = ICDeviceBrowser()
super.init()
self.deviceBrowser.delegate = self
// Log the initial browsed device type mask
self.deviceBrowser.browsedDeviceTypeMask = .scanner
print("🔍 Starting device browser...")
self.deviceBrowser.start()
// Enhanced device logging
if let devices = deviceBrowser.devices {
print("\n📱 Connected devices overview:")
print("Total devices found: \(devices.count)")
if devices.isEmpty {
print("⚠️ No devices currently connected")
} else {
devices.forEach { device in
print("\n📌 Device Details:")
print(" - Name: \(device.name ?? "unnamed")")
print(" - Type: \(String(describing: device.type))")
print(" - Transport Type: \(String(describing: device.transportType))")
print(" - Status: \(device.hasOpenSession ? "In Use" : "Available")")
print(" - Persistent ID: \(String(describing: device.persistentIDString))")
print(" - Location: \(device.locationDescription ?? "Unknown")")
print(" - Capabilities: \(String(describing: device.capabilities))")
}
}
} else {
print("⚠️ Unable to access device list")
}
}
...
Topic:
App & System Services
SubTopic:
General
I have sqlite database. I want to share this database file. It gives error after 4.3mb on old devices. But on new devices larger files can be shared. Is there a sharing limit or is there a ram limit etc. situation.
Topic:
App & System Services
SubTopic:
General
Hello. I bought a new Iphone 16, 2 days ago in my store, but when I checked it at home, it turned out that it was installed using the Telia Sweden ( Remote Management System ).
Can someone help me remove this Telia RMS system from my smartphone so that it is not configured for Telia during setup? Since their configurator blocks my smartphone, with a note - Lost Iphone. The device has been blocked by Telia.
I have been using Apple equipment for 10 years, I have phones and tablets. I need help
When I search for text in a .html file using the Command-Spacebar spotlight popup the .html file is never shown in the results. On the other hand the .html file does show in the result when I search in the Finder window search field, or when I search in the Terminal using mdfind.
Why is this and how can I fix? I want to use spotlight to find .html files.
You can reproduce the problem like this:
echo spotlighttest > testone.txt
% echo spotlighttest > testtwo.html
% mdfind spotlighttest
2024-12-30 14:22:28.552 mdfind[28326:550500] [UserQueryParser] Loading keywords and predicates for locale "en_US"
2024-12-30 14:22:28.553 mdfind[28326:550500] [UserQueryParser] Loading keywords and predicates for locale "en"
~/Desktop/Spotlighttest/testone.txt
~/Desktop/Spotlighttest/testtwo.html
I believe this shows that both files are index properly, but if you then do Command-Spacebar and search for "Spotlighttest" I think you will see that only testone shows as a result.
Edit I believe this is a change in macOS 15.x and used to work correctly in previous macOS
I created an app and submitted to app store for review and got a rejection with "4.3(a) - Design - Spam".
This one was created for brand new, and I didn't find any similar apps in App store. I searched in this forum but am not sure if it is because I used flutter to build my app?
How could I get a bit more specific detail why it got rejected?
Guideline 4.3(a) - Design - Spam
We noticed your app shares a similar binary, metadata, and/or concept as apps submitted to the App Store by other developers, with only minor differences.
Submitting similar or repackaged apps is a form of spam that creates clutter and makes it difficult for users to discover new apps.
Next Steps
Since we do not accept spam apps on the App Store, we encourage you to review your app concept and submit a unique app with distinct content and functionality.
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.
Topic:
App & System Services
SubTopic:
General
Hello. I took a closer look at the data I'm getting back for hourly forecasts and I'm baffled by results I'm seeing.
For example, it's Dec 19, 2022 8:00am PT and I'm asking for the weather for Orchard Park NY (lat 42.766437 long -78.743855) for Dec 23, 2022. The daily forecast tells me they're expected to have 5.9" of snow. However, the hourly forecast with the most snow that day is reported as 0.071" (1.8mm). The Apple Weather app on iOS shows that hour as having 0.6".
I wrote a 'for' loop to print the results of my call to WeatherService.shared.weather.
print(oneHour.precipitationAmount.formatted())
print(oneHour.precipitationAmount.description)
print(oneHour.precipitationAmount.unit)
print(oneHour.precipitationAmount.value)
0.071 in
1.8 mm
<_NSStatic_NSUnitLength: 0x2010b0178> mm
1.8
This is easy to reproduce,in dark mode, 2 UIViewControllers A and B, A present B. code:
class AAA: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "AAA"
view.backgroundColor = .systemBackground
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
present(UINavigationController(rootViewController: BBB()), animated: true)
}
}
class BBB: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "BBB"
view.backgroundColor = .systemBackground
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
dismiss(animated: true)
}
}
before present:
after present:
Obviously, the backgroundColor of the view has changed.
I guess it's because view's backgroundColor is the same as the the window, so changed the color to distinguish between the controller and the background, but this brought unexpected changes which is confusing. I want to know how this happened and how I can manually control it
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.
Hi, I'm in the process of creating an App + Helper Tool combo application, and depending on the necessity of root privileges, I'm setting up two paths in the app:
If root privileges are not necessary, I'm using SMJobSubmit rather directly:
var submissionError: Unmanaged<CFError>?
let submissionResult = SMJobSubmit(kSMDomainUserLaunchd, plist, nil, &submissionError)
where plist contains these items:
Label=com.***.redactedApp.redacted,
ProgramArguments=[path/to/helper-tool, commandName, commandArg1, commandArg2]
RunAtLoad=1,
KeepAlive=0
and it works as necessary, and performs the operations.
Now, in the case of privilege escalation being necessary, this call becomes a bit more complex:
let authorization = SFAuthorization()
var authRef: AuthorizationRef?
do {
try authorization?.obtain(withRight: kSMRightModifySystemDaemons,
flags: [.extendRights, .interactionAllowed])
authRef = authorization?.authorizationRef()
} catch let error {
// Logging error
}
var submissionError: Unmanaged<CFError>?
let submissionResult = SMJobSubmit(kSMDomainSystemLaunchd, plist, authRef, &submissionError)
while using the same plist, same executable at the same path, same Label.
However, when using the second path, suddenly SMJobSubmit fails:
Error Domain=CFErrorDomainLaunchd Code=2 "(null)"
Now, naturally I headed over to system logs in Console.app, and this is the weirdest - there is nothing suspicious near the log item I submit with the above error from the main application.
The tool is embedded in the Contents/MacOS folder. However, my problem is that anything that I can think of seems to lead to the same thought: it should be a problem in both cases, not just the privileged one.
Is there something extra that must be taken care of when using SMJobSubmit with privileged helper tools?