Post

Replies

Boosts

Views

Created

UIDocumentPickerViewController freezes the second time it's called on iOS and iPadOS 26.1 betas 3 and 4
Hello, this is very weird. I have an app where I use UIDocumentPickerViewController(forOpeningContentTypes: [.folder]) to let the users access to directories that are in the sandbox of other apps. It's been working since iOS 13. On the beta versions of iOS and iPadOS 26.1 (betas 3 and 4), the second time the UIDocumentPickerViewController is presented, it becomes unresponsive, with a spinning wheel in the top right corner where the "Open" button should be. I have absolutely no clue what the issue could be. It doesn't seem to be a widespread issue, but I have also no idea on how to find the origin and fix it. As far as I can tell from the debugger, this line is executed: DispatchQueue.main.async { rootVC?.present(self.documentPicker, animated: true, completion: nil) } and then nothing else happens.
Topic: UI Frameworks SubTopic: UIKit
0
0
80
Oct ’25
Unable to upload an iOS app with Extensions to the AppStore
Hi, I've tried adding Extensions (using ExtensionFoundation) to one of my iOS apps. They work using Xcode on my devices, but when I upload them to the AppStore, I get the following error: ITMS-90349: Invalid Info.plist value - The value of the EXExtensionPointIdentifier key, AsheKube.app.a-Shell.localWebServer, in the Info.plist of “a-Shell.app/Extensions/localWebServer.appex” is invalid. Please refer to the App Extension Programming Guide at https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Action.html#/apple_ref/doc/uid/TP40014214-CH13-SW1. I could not find relevant information on the web page pointed. I've tried different values for the "EXExtensionPointIdentifier", but none of them work. This value was generated by Xcode, since I did set the user-defined build setting EX_ENABLE_EXTENSION_POINT_GENERATION = YES, as explained in the instructions. At this point, I have no idea how to fix this issue.
2
0
203
Oct ’25
Unable to upload an app with ExtensionFoundation
I have an iOS app with ExtensionFoundation. It runs well on my local device, but when I upload on the AppStore it gets rejected with: Validation failed Invalid Info.plist value. The value of the EXExtensionPointIdentifier key, AsheKube.app.a-Shell.localWebServer, in the Info.plist of “a-Shell.app/Extensions/localWebServer.appex” is invalid. Please refer to the App Extension Programming Guide at https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/Action.html#/apple_ref/doc/uid/TP40014214-CH13-SW1. (ID: ae8dd1dd-8caf-4a48-9651-7a225faed4eb) The Info.plist in my Extension is: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EXAppExtensionAttributes</key> <dict> <key>EXExtensionPointIdentifier</key> <string>com.example.example-extension</string> </dict> </dict> </plist> so the Info.plist that causes the issue has been automatically generated by Xcode. I can access it as well, and it says: { "BuildMachineOSBuild" => "25A354" "CFBundleDevelopmentRegion" => "en" "CFBundleDisplayName" => "localWebServerExtension" "CFBundleExecutable" => "localWebServer" "CFBundleIdentifier" => "AsheKube.app.a-Shell.localWebServerExtension" "CFBundleInfoDictionaryVersion" => "6.0" "CFBundleName" => "localWebServer" "CFBundlePackageType" => "XPC!" "CFBundleShortVersionString" => "1.0" "CFBundleSupportedPlatforms" => [ 0 => "iPhoneOS" ] "CFBundleVersion" => "1" "DTCompiler" => "com.apple.compilers.llvm.clang.1_0" "DTPlatformBuild" => "23A339" "DTPlatformName" => "iphoneos" "DTPlatformVersion" => "26.0" "DTSDKBuild" => "23A339" "DTSDKName" => "iphoneos26.0" "DTXcode" => "2601" "DTXcodeBuild" => "17A400" "EXAppExtensionAttributes" => { "EXExtensionPointIdentifier" => "AsheKube.app.a-Shell.localWebServer" } "MinimumOSVersion" => "26.0" "NSHumanReadableCopyright" => "Copyright © 2025 AsheKube. All rights reserved." "UIDeviceFamily" => [ 0 => 1 1 => 2 ] "UIRequiredDeviceCapabilities" => [ 0 => "arm64" ] } What should I do to be able to upload on the AppStore?
13
1
502
Oct ’25
ExtensionFoundation on iOS 26
Hi, I'm trying to add an extension to my app on iOS 26. I've followed the instructions on https://developer.apple.com/documentation/extensionfoundation/adding-support-for-app-extensions-to-your-app and made it as far as being able to launch the extension: let monitor = try await AppExtensionPoint.Monitor(appExtensionPoint: .localWebServerExtension) currentIdentity = monitor.identities.first if let currentIdentity = currentIdentity { let myConfig = AppExtensionProcess.Configuration(appExtensionIdentity: currentIdentity, onInterruption: { NSLog("extension was terminated") }) myProcess = try await AppExtensionProcess(configuration: myConfig) myConnection = try myProcess?.makeXPCConnection() } None of these calls throw, and when I examine myProcess from inside that code, it seems to be normal (there's a pid, for example). Yet the code inside my extension seems to not be executed: breakpoints are not triggered, NSLog() calls do not appear on the console. The onInterruption() callback is also not triggered, or at least it does not appear on the console either. I've probably missed something obvious, but what could it be?
4
0
142
Oct ’25
.hidden not working when making UIBarButtonItem visibles on iOS 26
Hi, I have a UIToolbar at the bottom of my screen. The UIToolbar is made of UIBarButtonItems. At some point, I change the status of some buttons to hidden: button.isHidden = true This works: the buttons become invisible. At a later point in the process, I turn the buttons visible again: button.isHidden = false This did work on iOS 18, and does not work with the iOS 26 SDK: the buttons remain hidden, even though the property has been set to false. Am I doing it wrong? Is there anything I can do to fix this?
Topic: UI Frameworks SubTopic: General
4
0
285
Oct ’25
Shortcut action that should return a file deletes the file instead
I have an app intent that returns a file from inside the Sandbox. With iOS 18 RC, the call to INFile results in the file being deleted, instead of the file being returned. intentResponse.file = INFile(fileURL: fileURL, filename: fileName, typeIdentifier: nil) This seems to happen if the file was created by an earlier Shortcut action that calls FileManager().copyItem(), but not for files created by other means. I haven't found a reference in the developer documentation about INFile resulting in the file being deleted. I can block FileManager() from deleting the file by setting its immutable attributes to true, but that prevents me from removing it later.
3
2
768
Sep ’24
Symbol not found from libc++ on iOS
Hi, I've had one user report that, when trying to dlopen() a dynamic library embedded inside a framework, they are hit by an error that a symbol from /usr/lib/libc++.1.dylib is not found. To the best of my knowledge, that's a single user being hit (let's say the event has a low probability). Here's the full error message from dlopen(): dlopen(clang.framework/clang, 0x0009): Symbol not found: ZNSt3122_libcppverbose_abortEPKcz Referenced from: <> /private/var/containers/Bundle/Application/<UUID>/a-Shell.app/Frameworks/clang.framework/clang Expected in: <UUID> /usr/lib/libc++.1.dylib How can I fix that? What could be the reason for libc++.1.dylib having a different content on a specific machine?
2
0
643
Aug ’24
Unable to open more than 2560 Pipe() (even if I close them)
Hi, I have an issue that I don't understand, and I need help. I am using Pipe() in Swift, and I found that if I create more than 2560 (more or less) pipes, I cannot create more. The call fails with Too many open files, even though I closed all the files associated with the pipes. This is a minimal code to reproduce the issue: for i in 0...1278 { NSLog("Testing: \(i)") let stdin_pipe = Pipe() let stdin_file = fdopen(stdin_pipe.fileHandleForReading.fileDescriptor, "r") var stdout_pipe = Pipe() var stdout_file = fdopen(stdout_pipe.fileHandleForWriting.fileDescriptor, "w") if (stdout_file == nil) { let errorString = String(cString: strerror(errno)) NSLog("Could not create an output stream. Error: \(errorString)") } do { // I'm really trying to close everything (but it doesn't matter): close(stdout_pipe.fileHandleForWriting.fileDescriptor) close(stdin_pipe.fileHandleForReading.fileDescriptor) try stdout_pipe.fileHandleForWriting.close() try stdin_pipe.fileHandleForReading.close() try stdout_pipe.fileHandleForReading.close() try stdin_pipe.fileHandleForWriting.close() } catch { NSLog("Error in closing pipes in MyExtension: \(error.localizedDescription)") } } It will work for i going to 0 to 1277, and fail for i == 1278. The error (obtained from strerror(errno) is Too many files open, even though there are around 6 file descriptors opened (I checked). What am I doing wrong?
1
0
617
Apr ’24
"File not found error" for some users on iCloud Drive for iOS
I have an iOS app, based on the Documents Browser. That app has an iCloud folder, following all the instructions (NSUbiquitousContainers dict in Info.plist, and so on). As far as I can tell, it works for most of the users. But some users report that, after creating a file in the document browser window, they meet a "file not found" error and the app does not load the file. As far as I can tell: the files are created (the counter is incremented, I've see error with "Untitled 3: file not found"). FileManager() sees the files in question. somewhere inside the app, opening this file fails. How can I fix this? I'm not sure about the prevalence, but it seems to be rare but very annoying for the affected users.
0
0
703
Feb ’24
contentTypesForRecentDocuments
Hi everyone, I have an iOS app that uses a DocumentBrowserViewController. According to the documentation, I should be able to set the contentTypesForRecentDocuments so that when the document browser shows "Recent", it only shows a certain type of documents (a subset of the types of documents that the app can open). Also according to the documentation, "You can define a subset of these types using the UIDocumentBrowserRecentDocumentContentTypes key in the app’s Info.plist file." I have tried several ways of setting the UIDocumentBrowserRecentDocumentContentTypes key in the app's Info.plist file, but I could not see any changes in the behaviour of the document browser. Alternatively, is there any way to tell the DocumentBrowserViewController to not start with "Recents"? It's extremely confusing for new users.
0
0
371
Jan ’24
Offloading issues, for an App that is mostly used for Shortcuts
Hi, I have an app that is used by several Shortcuts. In many cases, users download the Shortcut, install the app, and only use the App through the Shortcut, and only through the in-extension Intent. They might never open the app. I've received complaints from users that the app keeps disappearing: apparently, because the app itself is never opened (only the in-extension Intent is), it doesn't count as an actual usage for offloading, and so the app gets offloaded. What can I do?
0
0
588
Oct ’23
JavaScriptCore / WkWebView JavaScript engine speed comparison
I ran a series of CPU-intensive tests, with code written in JavaScript on my iPad. I can execute the JavaScript code using either JavaScriptCore, or by using a WkWebView and making it load and execute the JavaScript. I found that JavaScriptCore is 12 to 15 times slower than WKWebView (18.3 s instead of 1.1 s). That seems huge. Is there any way to speed it up? Is there any reason why it's so slow? While we're at it, are there differences between the WebAssembly engine in JavaScriptCore and the one in WkWebView?
1
0
2k
Apr ’23
WkWebView changes the string being pasted
Hi, I just noticed something strange. When I call: webView?.paste("a://../../../123") (where webView is a WkWebView), the string that is pasted (that arrives in the JavaScript onPaste event handler) is: "a://../123". I think it has something to do with URL parsing. I would like to understand what is happening, and how to fix it.
0
0
950
Apr ’23
How can I debug issues with Stage Manager and External Displays
Hello, I am getting reports from some users that one of my apps is behaving weirdly when: Stage Manager is enabled with an external display connected (presumably with app windows on the external display). I would like to debug this issue. However, I do not have an iPad compatible with Stage Manager. On the Simulator in Xcode, I can run an iPad with Stage Manager (good) and pretend to connect an external display (good), but I cannot move windows to the external display, so I cannot reproduce the issue. What can I do? (the app uses SwiftUI and UIScene. It does work with multiple windows on standard iPads, it does work with StageManager on the iPad simulator).
1
1
1.1k
Dec ’22
Some users are unable to load dynamic libraries from frameworks
I have apps that depend on loading dynamic libraries at runtime. It works for most users, but a small number of users are reporting issues. The dlopen() call fails with the following error message: Failed loading awk from awk.framework/awk, cause = dlopen(awk.framework/awk, 0x0009): tried: '/private/var/containers/Bundle/Application/84E2C6C9-CCF1-4E92-9B4E-29557B0F9E 9E/a-Shell.app/Frameworks/awk.framework/awk' (could not register fairplay decryption, mremap_encrypted() => -1) From the error message, dlopen() has found the dynamic library (awk.framework/awk), but failed to open it because of an issue with fairplay or mremap_encrypted(). I haven't found any documentation on the issue. Do you have any idea what is happening?
12
0
1.8k
Oct ’22