I have a split view (master-detail) on iPad. The sidebar contains a VStack of buttons and I would like to be able to close it when any of the buttons are touched.
The implementation is in SwiftUI and I use NavigationView to be compatible with older versions of iOS. I don't use NavigationSplitView because it requires iOS 16 or later.
I can't find documentation about it and I don't want to use external libraries.
Posts under iPadOS tag
184 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hi,
I've recently noticed some crash started to happening around CFNetwork and looking at the crash log I was unable to determine the cause of the crash and not sure if anyone else have a similar experience?
This seem to happen more frequently on iOS 17 than iOS 16? I'm unable to reproduce myself but I've managed to get an Apple crash report for both iOS 16 and 17.
Any help is much appreciated.
iOS 16.crash
iOS 17.crash
In iPad os 17, If you press down a letter k on you hardware keyboard, the grave accent will appear and block the input, instead of keeping showing the letter like kkkkkkkkkk...
There isn't a setting that can disable that. So is there an api that I can use to disable it on my development?
Was working on an app and then upgraded my iPad to 17.1.1 and now I get "waiting to reconnect to iPad"
When I connected the mac to the iPad is asked to trust which I do. Then I go into the waiting to reconnect to iPad.
I've also tried "clear trusted computers' but go into the same process of trusting and then waiting.
If I press run I get "waiting to reconnect to iPad
Previous preparation error: An error occurred while communicating with a remote process.. The connection was invalidated."
xcode : 15.0.1 (check for updates on app store but this is the latest)
macOS : Somoma 14.1.1
When I display the PKToolPicker in my app it looks similar to the image below
If you use one of the apps from Apple like Pages or Freeform you see a picker similar to this one.
Notice that the PKToolPicker from the Apple app has 6 tools not including the ruler. With the tool all the way to the left being the writing tool.
How do you get the picker to display with the writing tool? I have looked over the API and I can see where you can set if the ruler is displayed or not but I can't find anything for the writing tool
From Xcode15, when Download Container in Window > Devices and Simulators for iPadOS17, an error occurs.
The specified file could not be transferred.
Domain: com.apple.dt.CoreDeviceError
Code: 7000
User Info: {
DVTErrorCreationDateKey = "2023-11-21 05:52:37 +0000";
NSURL = "file:///Users/administrator/Desktop/<bundle identifer>%202023-11-21%2014:52.14.006.xcappdata/AppData/Library/WebKit/WebsiteData/IndexedDB/v0";
}
--
Performing a file system operation failed: Failed to open Library/WebKit/WebsiteData/IndexedDB/v0 for reading, openat(2) returned POSIX error code 62 (parentParam = 51)
Domain: com.apple.dt.remoteservices.error
Code: 11001
--
Failed to open Library/WebKit/WebsiteData/IndexedDB/v0 for reading, openat(2) returned POSIX error code 62 (parentParam = 51)
Domain: NSPOSIXErrorDomain
Code: 62
Failure Reason: Too many levels of symbolic links
--
System Information
macOS Version 14.0 (Build 23A344)
Xcode 15.0.1 (22266) (Build 15A507)
indexedDB is not used in the app.
I was able to download successfully with Xcode15 and iPadOS16.
I was able to download successfully with Xcode14 and iPadOS17.
Why do I get an error with Xcode15 and iPadOS17?How should I fix it?
That you.
Hi everyone, I'm integrating BackgroundAssets into my app and run into the following issue. According to the docs fileSize only needs to be accurate for essential downloads
/// @abstract Constructs a download object to represent the download of a asset located inside of the provided @c request.
/// @param identifier A unique identifier that is used to track the download across the app and extension.
/// @param request The request used to perform the download. The URL provided inside of the request must be a https scheme.
/// @param essential Whether the download is essential. See @c BADownload.isEssential. Default is false.
/// @param fileSize The size of the file to download. For Essential downloads, this field must be accurate in order to show the user
/// accurate progress during app installation. If the size does not match the file being downloaded, then the download will fail. It is recommended to
/// report an accurate @c fileSize for both Essential and Non-Essential downloads.
/// @param applicationGroupIdentifier The identifier of the application group that should used to store the finished download.
/// @param priority A priority between @c BADownloaderPriorityMin - @c BADownloaderPriorityMax which is used to order the downloads for this process.
/// It is recommended to use @c BADownloaderPriorityDefault if download priority does not matter.
@available(iOS 16.4, *)
public init(identifier: String, request: URLRequest, essential: Bool, fileSize: Int, applicationGroupIdentifier: String, priority: BADownload.Priority)
However, when I'm queueing up non-essential downloads with inaccurate fileSize, my BADownloadManagerDelegate gets a failedWithError callback, with error
The download failed because the file size provided does not match what was downloaded.
This happens for me when the app needs to download a new version of the manifest, which contains the information about all the other background assets that needs to be processed.
Is the documentation wrong and fileSize must always be accurate, even for non-essential downloads?
All help is appreciated to resolve this.
Activity image for custom activity is blank ever since iOS 17 release ,compiled in Xcode 15. The image being sent is 180x180 px. Works fine in iOS 16 running earlier Xcodes.
Attached a image of the issue showing blank icons (mail and messages are the custom activities)
Anyone facing the issue?
As of iOS 17 SFSpeechRecognizer.isAvailable returns true, even when recognition tasks cannot be fulfilled and immediately fail with error “Siri and Dictation are disabled”.
The same speech recognition code works as expected in iOS 16.
In iOS 16, neither Siri or Dictation needed to be enabled to have SpeechRecognition to be available and it works as expected. In the past, once permissions given, only an active network connection is required to have functional SpeechRecognition.
There seems to be 2 issues in play:
In iOS 17, SFSpeechRecognizer.isAvailable incorrectly returns true, when it can’t fulfil requests.
In iOS 17 dictation or Siri being enabled is required to handle SpeechRecognition tasks, while in iOS 17 this isn’t the case.
If issue 2. Is expected behaviour (I surely hope not), there is no way to actually query if Siri or dictation is enabled to properly handle those cases in code and inform the user why speech recognition doesn’t work.
Expected behaviour:
Speech recognition is available when Siri and dictation is disabled
SFSpeechRecognizer.isAvailable returns correctly false when no SpeechRecognition requests can be handled.
iOS Version 17.0 (21A329)
Xcode Version 15.0 (15A240d)
Anyone else experiencing the same issues or have a solution?
Reported this to Apple as well -> FB13235751
Can someone confirm that Personal Voice is available for devices running a A12 chipset ? Currently it does not appear in the Speech settings of an IPad Mini 5 or was this feature pulled from the IOS 17 rollout to be released at a later date through an Update…?
There is very limited information on the Internet regarding this feature on A12 Chipsets.
Hello y'all,
I would like to discuss here if anyone else is noticing that some PDF files are not rendered as expected in iOS/iPadOS 17, it seems that some text with background (screenshot attached) are not rendered and you can only see the back color.
The issue is reproducible on Preview, Safari, where I guess Apple is using PDFKit framework too.
We submitted different issues with Feedback Assistant, however I've not hear back from Apple yet.
Is anyone else able to reproduce the issue?
Thanks,
We are in the midst of testing camera and photo/video access using iPadPro 17 Beta (21A5326a) from within our application, and we are encountering an error message on only one device (iPad Pro 12.9-inch, A2229). Full access to the camera roll has been explicitly granted to the application when prompted. On only the above device, attempting to select an existing photo results in this error popup: "Photo or Video Unavailable: This app is using the Photos picker in an unsupported configuration." (We are able to take and save new photos from within our application on this device with no issues.) I have a second device on hand (iPadPro 10.5-inch, A1701) that presently also has the same iPadOS version installed and is running the same application, and we are able to select existing photos and take new photos with no errors. I have compared the Photos settings on both devices, and they appear to be identical. On a third iPad device running with the same iPadOS version, application, and Photos settings (that device is not in my possession), it has been reported that no errors are encountered when either taking new photos or selecting existing photos via the Photo Picker from within our app. We are trying to figure out what might be causing this error to appear when selecting existing photos on only the A2229 device, and/or what aspect of the configuration or settings would need to be modified in order to use the photo picker on that one iPad Pro. This issue had not been encountered on the A229 device while running with iPadOS 16. Searching the text of this error message online has not returned anything significantly meaningful thus far.
We use a test iPad to test new versions of our app as well as checking new (beta) versions of iPadOS. Our app - Rendezvous Appointment Book -uses iCloud to sync between the iPad and iPhone. So, when an entry is made on either the iPad or iPhone the entry is automatically synced to the other device(s). So, a user can make a client appointment on one device and it syncs to another iPad or iPhone logged into the same iCloud account. This has worked smoothly for years. But, the latest beta version - 17.8 caused a syncing issue where all the existing data that is stored on the same iCloud account did not sync.
We have seen this before.
Recently, starting with iPadOS/iOS 16.3 syncing failed for a number of users just on their iPads. The data stored on iCloud disappeared, but the iPhone did sync with iCloud. About 30 users could not get their data to sync at all , but the vast majority did sync. Some users who experienced the problem were able to sync by deleting the app and reinstalling it from the App Store, as per our recovery instructions. Then when version 16.4 was released all syncing worked as well as 16.5 and 16.6 which have worked perfectly.
When 17 beta was released we tested again for proper syncing, but ran into the same issue with version 17.3 beta - no sync again. But 17.6 beta did sync. Now, in testing this last Thursday with 17.8 beta the same issue reappeared on our test iPad.
We contacted Apple Developer support but have yet to get any resolution (and we are worried that when Apple releases 17 on Sep 11 the syncing issue might still rear its ugly head).
Has anyone seen this happen? BTW all other iCloud syncing worked correctly, e.g. Photos, backups, etc.
In the Apple Music app on iPad (horizontal size class == .regular), when a selection is made from the Split View sidebar, the detail switches to a separate UINavigationController for that selection, where we can push/pop views. If we make a different selection from the sidebar, we get another UINavigationController to manipulate. If we return to the first selection, the detail view is still showing the stack contents for that controller.
I am trying to get the same behavior from NavigationSplitView in SwiftUI, but the detail view will reset its presented controller to its root. I think this is because NavigationSplitView uses whatever NavigationStack it finds in the detail hierarchy to manage its contents, effectively erasing the per-view stack contents. I have tried various methods of saving and restoring the navigation path without any luck. Any ideas on how to approach this?
I have included a very simple example to show what I'm talking about.
import SwiftUI
struct ExampleView: View {
enum Selection: String, CaseIterable {
case letters
case numbers
}
@State private var selection: Selection?
var body: some View {
NavigationSplitView {
List(selection: $selection) {
ForEach(Selection.allCases, id: \.self) { selection in
NavigationLink(value: selection) {
Text(selection.rawValue.capitalized)
}
}
}
.navigationTitle("Sidebar")
} detail: {
switch selection {
case .letters:
self.lettersView
case .numbers:
self.numbersView
default:
Text("Make a selection")
}
}
}
var lettersView = LettersView()
var numbersView = NumbersView()
}
struct ExampleView_Previews: PreviewProvider {
static var previews: some View {
ExampleView()
}
}
// MARK: -
struct LettersView: View {
private let letters = ["a", "b", "c", "d", "e", "f"]
@State private var path = NavigationPath()
var body: some View {
NavigationStack(path: $path) {
List {
ForEach(letters, id: \.self) { letter in
NavigationLink(value: letter) {
Text(letter.uppercased())
}
}
}
.navigationTitle("Letters")
.navigationDestination(for: String.self) { letter in
Text(letter.uppercased()).font(.largeTitle)
}
}
}
}
// MARK: -
struct NumbersView: View {
private let numbers = Array(0..<6)
@State private var path = NavigationPath()
var body: some View {
NavigationStack(path: $path) {
List {
ForEach(numbers, id: \.self) { number in
NavigationLink(value: number) {
Text(String(number))
}
}
}
.navigationTitle("Numbers")
.navigationDestination(for: Int.self) { number in
Text(String(number)).font(.largeTitle)
}
}
}
}
Hello and thanks for reading my post.
I have a SwiftUI view, the users should be able to click a button and take printout of that view. Clicking on the button should open the standard print sheet (select printer, pages, layout, etc.).
How can I implement such a functionality? I have been trying hard without any success. Please help.
It is an iPad app, using Xcode 14.3
Please excuse my lack of understanding of what are probably fundamental concepts in iOS/iPadOS development but I have searched far and wide for documentation and haven't had much luck so far. I am not sure that what I want to do is even possible with an iPad iPadOS app.
Goals: Develop a Swift iPadOS app that can digitally sign a
file using a PIV SmartCard/Token (Personal Identity Verification Card):
Insert a PIV SmartCard/Token (such as a Yubikey 5Ci) into the lightning port of an iPadOS device iPad (NOT MacOS)
Interface with the SmartCard/Token to access the user's PIV certificate/signature and "use it" to sign a file
Question 1: How to get the PIV Certificate from
SmartCard/Token/Yubikey into iPadOS keychain?
* Do we need to get the PIV certificate into the
iOS keychain? Is there another way to interact with a SmartCard directly?
* This should prompt the user for their PIN?
Question 2: How to get our Swift app to hook into the event
that the SmartCard/Token is inserted into the device and then interface with
the user's certificate?
* When is the user prompted to enter their PIN for
SmartCard/Token/Yubikey?
* Do we need to use CyrptoTokenKit to interface with
a smartcard inserted into the lightning port of an iOS device?
I'm working on a DriverKit driver. I have it running on macOS, including a very simple client app written in SwiftUI. Everything is working fine there. I've added iPadOS as a destination for the app as demonstrated in the WWDC video on DriverKit for iPadOS. The app builds and runs on my iPad, as expected (after a little work to conditionalize out my use of SystemExtensions.framework for installation on macOS). However, after installing and running the app on an iPad, the driver does not show up in Settings->General, nor in the app-specific settings pane triggered by the inclusion of a settings bundle in the app.
I've confirmed that the dext is indeed being included in the app bundle when built for iPadOS (in MyApp.app/SystemExtensions/com.me.MyApp.MyDriver.dext). I also can see in the build log that there's a validation step for the dext, and that seems to be succeeding.
I don't know why the app isn't being discovered -- or in any case surfaced to the user -- when the app is installed on the iPad. Has anyone faced this problem and solved it? Are there ways to troubleshoot installation/discovery of an embedded DriverKit extensions on iOS? Unlike on macOS, I don't really see any relevant console messages.
hey! i have an ipad pro 11’ 2018, and everything was working fine until one day i wasn’t able to connect my apple pencil 2 to my ipad. the pencil itself gets detected it just won’t connect with my ipad. i already tried restarting, unpairing (even since i wasn’t able to pair it) and even restoring my ipad. does anyone have a solution for this?
For the past 2+ years I have been using the same process/code to enable and disabling/clearing activation lock from a device and since last week trying to clear the code is returning a 404 error response:
<head>
<title>404 Not Found</title>
</head>
<body>
<center>
<h1>404 Not Found</h1>
</center>
<hr>
<center>Apple</center>
</body>
</html>
I can confirm that the request looks ok and all the necessary params are being sent as expected.
Hi,
in an App I maintain we have a huge crash count at launch on the iPad. While I can't reproduce it, looking at the stack trace it seems
[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone
evaluates to true under some conditions on iPadOS 15. (the crash occurs in an UIViewController that is allocated only on the iPhone in one code location)
Is there anything that can cause [UIDevice currentDevice] to return nil, e.g. blocking the main thread?
Thanks!