iPadOS is the operating system for iPad.

iPadOS Documentation

Posts under iPadOS tag

279 Posts
Sort by:
Post marked as solved
32 Replies
18k Views
I am unable to install the above beta on an 2018 iPad Pro. Downloaded directly from this web site.Any ideas?Dan Uff
Posted
by
Post not yet marked as solved
31 Replies
59k Views
Hi,Recently I installed iPadOS public beta and bought an external third party keyboard. The spacebar of the keyboard does not work properly on some applications including the native email app. When I clicked on the spacebar, it inputs newline instead of space. Also, I noticed I can input space by clicking on shift+spacebar or alt+spacebar.I tried with another keyboard and same issues persists. Is this an issue from iPadOS public beta?Anyone experiencing the same issues?
Posted
by
Post marked as solved
8 Replies
2.2k Views
When I use the UIDocumentPickerViewController with kUTTypeFolder I am only able to pick from the providers built-in to iOS/iPad OS, such as On My iPad, iCloud Drive, network shares and USB drives. As of beta 4, 3rd party providers are shown, but disabled (not selectable or browsable).I have not been able to find any information on whether or not 3rd party providers will be supported by the release of iPad OS 13. I am hoping this will be possible in a future build (or at least something 3rd party providers can enable) since this is a big driving factor for enabling us to ditch a *lot* of custom cloud storage code.Any info (or if anyone knows either way) would be much appreciated!
Posted
by
Post not yet marked as solved
9 Replies
9.4k Views
Trying to conenct to an FTP server from Files App (with server address and login credentials known to be correct) with no success.Files App will not accept ftp:// as prefix to server address; no prefix and smb:// produce error (implying address or login is incorrect when all known to be OK).I have another app which connects fine to my ftp server but I wanted to keep all my links in one place (the Files App).Any suggestions for a fix appreciated...
Posted
by
Post not yet marked as solved
27 Replies
17k Views
Hello there, Does Scribble on iPadOS 14 support languages other than English? I tried switching to the Korean keyboard and when I write, it tries to convert to the English characters. If not currently, does Apple plan on supporting other languages for Scribble in the future? I think that would be a great addition. Thank you.
Posted
by
Post marked as solved
11 Replies
4.7k Views
I am currently writing a iPadOS application to act as a companion to the desktop version that controls a piece of hardware via a USB CDC serial connection. Due to modern iPads having USB-C ports for the last 2 years and the ability to attach certain USB devices via adaptors since the origin of the 30pin doc connector I would expect protocol availability to be fairly complete. So then why is it that the headers required to use USB CDC serial don't exist and if you make them yourself you need to use illegal symbols so you can't upload it to App Store connect. Where as USB CDC ethernet has full support along with Bluetooth RFCOMM (rs232 serial over bluetooth) and even USB MIDI given that midi is a superset of serial. So why isn't there a USB CDC serial kit/api/even just allowing a data stream to the TTY/CU port? If there is a way please tell me what it is and point me to the documentation.
Posted
by
Post not yet marked as solved
2 Replies
771 Views
While working through a SwiftUI Tutorial, I found that using: FileManager.default.url(for:, in:, appropriateFor:, create:) to locate a directory for persisting some data, does not work on Apple Silicon Macs when building an app for the "My Mac (Designed for iPad)". Quitting the app loses all state saved. Both the iPhone and iPad test devices are able to save and restore state using this method as usual. Is this the expected behavior? I expected that the M1 platform would be capable of simulating a similar file system for the application. Targeting macOS, iOS, and iPadOS, what's the simplest method to acquire a valid "Documents" or "Data" directory to persist information across launches and after app updates? (Before going nuclear with CoreData, just hasn't been the most friendly API to work with in my experience so far)
Posted
by
Post not yet marked as solved
1 Replies
834 Views
I have a question about how to implement Picture in Picture mode for the new video calling service, I have already read some of the documentation provided by Apple. Is it possible to implement Picture in Picture mode even if I use an external SDK for video calling such as Agora to implement the video calling service? https://www.agora.io/en/ Is it possible to set the call screen to Picture in Picture mode for a non-video call? Do you think it would be difficult to implement on iOS15 or earlier (e.g. iOS14)? (I read this article.) In iOS 15 and earlier, you cannot keep the camera active during PiP, so unfortunately video calls are not possible. However, in iOS 15, the "Multitasking Camera Access Entitlement" allows you to use the AVPictureInPictureController to keep the camera recording while in PiP mode). Is this definitely feasible this fall when iOS15 is available?
Posted
by
Post not yet marked as solved
4 Replies
846 Views
Hi, An Apple bug has caused our iPad App sales to plummet and customers have contacted Apple asking for refunds. This bug is not our fault, it is Apple's fault. I reported it to Apple last November and the ticket is still open and nothing has been done. They can't even be bothered to reply when I ask about the progress. I am disgusted with Apple. So, how liable is Apple? Regards, Paul
Posted
by
Post not yet marked as solved
1 Replies
2.4k Views
Hi - on iPadOS16 beta1, we have been experimenting with connecting to external 1080p and 4k monitors using TypeC on latest M1 iPads. It appears to only display full-screen (non-mirrored) when there is a HID device such as mouse connected. This makes sense as you need to be able to control the screen independently. However for a touch screen external display (e.g. INNOCN) that supports multi-touch, it does not work. iPadOS (and macOS) do not have any multi-touch drivers. Is there plans for iPadOS (and indeed eventually macOS) to support external multi-touch screens?
Posted
by
Post not yet marked as solved
2 Replies
2.9k Views
Hello folks! How can I get a real-world measurement between the device (iPad Pro 5th. gen) and an object measured with the LiDAR? Let's say I have a reticle in the middle of my CameraView and want to measure precisely from my position to that point I'm aiming?. Almost like the "Measure App" from Apple. sceneDepth doesn't give me anything. I also looked into the Sample Code "Capturing Depth Using the LiDAR Camera" Any ideas how to do that? A push in to the right direction might also be very helpful Thanks in advance!
Posted
by
Post not yet marked as solved
19 Replies
1.9k Views
We develop a system that can open frameworks which are located in document path in iPads by use "dlopen method" (iPadOS v15) It works fine when we build the app in device or use "development method" to archive the APP. But When we try to release our enterprise by use "in-house method" to archive the APP. Then the error message shows "dylib: file system sandbox blocked mmap()" when our enterprise APP try to open the framework in the APP`s document sandbox. Why it is able to use this dlopen method under "development method" but is not able to work in "in-house method" ? Is there any restriction of use "dlopen" by distribution release of enterprise program?
Posted
by
Post not yet marked as solved
1 Replies
427 Views
My app uses UICollectionView to display a list of documents. I previously implemented UICollectionViewDragDelegate to support drag-and-drop of the documents to open new windows / window scenes. This was working fine in iPadOS 15, but when I upgraded to iPadOS 16 beta 4 it stopped working. I can still drag items, but they don't open new windows (and the + icon never appears). How can I debug this? I can open new windows in my app using the Dock, so in general multiple windows still work in my app. The sample code for multiple windows, Gallery, works great so my iPad does support drag-and-drop multitasking. I can't figure out what is different between my app and Gallery... This is the drag-and-drop code, which is very similar to the Gallery sample app. Are there other places in the app I should look to debug, like other delegate methods?    func dragInteraction(_ interaction: UIDragInteraction, itemsForBeginning session: UIDragSession) -> [UIDragItem] {     let location = session.location(in: collectionView)     guard let indexPath = collectionView.indexPathForItem(at: location) else {       return []     }     let documentIndex = indexPath.row     let documentInfo = documentsToDisplay[documentIndex]     let itemProvider = NSItemProvider()     // I've confirmed this NSUserActivity.activityType is registered in Info.plist NSUserActivityTypes     itemProvider.registerObject(NSUserActivity.canvasUserActivity(documentId: documentInfo.documentId, accessLevel: documentInfo.accessLevel), visibility: .all)     let dragItem = UIDragItem(itemProvider: itemProvider)     dragItem.localObject = DocumentDragInfo(document: documentInfo, indexPath: indexPath)     return [dragItem]   }
Posted
by
Post not yet marked as solved
2 Replies
844 Views
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!
Posted
by
Post not yet marked as solved
2 Replies
750 Views
After adding a HoverEffect to a Button, that when tapped, changes the current view, the Button with the HoverEffect delays when hiding, overlaying the new view. The same thing also occurs with ContextMenu. Screenshot of lag/overlay: This lasts for around a second before the tapped Button finally hides. Example Code: struct ContentView: View {   @State var showOtherButton = false       var body: some View {     if showOtherButton {       Button {         showOtherButton.toggle()       } label: {         Text("First Button")       }       .padding()       .hoverEffect()       .contextMenu {         Button {           showOtherButton.toggle()         } label: {           Text("Toggle Button")         }       }     } else {       Button {         showOtherButton.toggle()       } label: {         Text("Second Button")       }       .padding()       .hoverEffect()       .contextMenu {         Button {           showOtherButton.toggle()         } label: {           Text("Toggle Button")         }       }     }   } } Is this a known SwiftUI bug? Any way to fix this? I've thought about using a delay after tapping the Button between switching the views, but that's not a good solution.
Posted
by
Post not yet marked as solved
12 Replies
5.4k Views
Hi, It seems that there's a bug in the iOS and iPadOS 16 betas (i've not test in macOS 13 yet), that when after updating a List data source with a bigger array, scrolling to a row of an offset bigger than the previous data array, with ScrollViewProxy, will crash the app with an EXC_BREAKPOINT (code=1, subcode=0x1099d6004) error. Below I attached a sample code to reproduce the crash. In it when opening there's an empty list. When pressing the "Randomize & Select Last" button at the top, the list will be filled with 5 random UUIDs, followed by scrolling to the last row. The app will crash on the second try, when it will try to scroll to an offset bigger than the previous data array (the last row). As a control there's an "Randomize & Select Random" button that will behave more or less like the "Randomize & Select Last" button but will choose a random row to select and scroll. It will only crash if this select row if of an offset bigger that the size of the previous array. This doesn't happen in iOS 15. I've already posted the Radar as FB11302966, however if someone has any toughs on how to solve this problem (or what I'm doing wrong) they are welcome. Sample code: ///A simple data model for the demo. Only stores an UUID. struct DataModel: Identifiable, Hashable { let id: UUID = UUID() var nameUUID: String { id.uuidString } } struct ContentView: View { ///Array with some data to show @State private var data: [DataModel] = [] ///Selected row @State private var selection: DataModel? var body: some View { VStack(alignment: .leading) { HStack { //Create a new array for showing in the list. //This array will be bigger than the last one. //The selection will be the last element of the array (triggering the bug) Button { //Increment the size of the new List by 5 let numberElements = data.count + 5 //Create a new Array of DataModel with more 5 elements that the previous one let newData = (0 ..< numberElements).map { _ in DataModel() } //Select the last element of the array/list. //This will make sure that the scrollTo will go to the end let newSelection = newData.last //Update STate for the new values data = newData selection = newSelection } label: { Text("Randomize & Select Last") } Spacer() //Create a new array for showing in the list. //This array will be bigger than the last one. //The selection will be the a random element of the array (only triggering the bug when the element is ) Button { //Increment the size of the new List by 5 //If empty will start with 40 (reducing the odds of triggering the bug) let numberElements = data.count == 0 ? 40 : data.count + 5 //Create a new Array of DataModel with more 5 elements that the previous one let newData = (0 ..< numberElements).map { _ in DataModel() } //Select a random element of the array/list. //This will scroll if the element is 'inside' the previous list //Otherwise will crash let newSelection = newData.randomElement() //Update State for the new values data = newData selection = newSelection } label: { Text("Randomize & Select Random") } } .padding() //MARK: ScrollViewReader and List ScrollViewReader { proxy in List(data, selection: $selection) { dataElement in //Row (is only the UUID for the rows Text(dataElement.id.uuidString) .id(dataElement) .tag(dataElement) } //action that fires when data changes //it will scroll to the selection .onChange(of: data, perform: { newValue in if let selection { proxy.scrollTo(selection) } }) } } } }
Posted
by
Post not yet marked as solved
1 Replies
1.1k Views
We are developing driver for our USB device. Our approach is to run and test driver on macOS first and then verify on iPadOS 16. In the driver we add custom property -"kUSBSerialNumberString" into default properties: OSDictionary * Driver::devicePropertiesWithSerialNumber() {     kern_return_t ret;     OSDictionary *properties = NULL;     OSDictionary *dictionary = NULL;     OSObjectPtr value;     const IOUSBDeviceDescriptor *deviceDescriptor;     deviceDescriptor = ivars->device->CopyDeviceDescriptor();          ret = CopyProperties(&properties);     value = copyStringAtIndex(deviceDescriptor->iSerialNumber, kIOUSBLanguageIDEnglishUS);     Log("Serial number: %{public}s", ((OSString *)value)->getCStringNoCopy());          dictionary = OSDictionary::withDictionary(properties, 0);     OSSafeReleaseNULL(properties);     if (value) {         OSDictionarySetValue(dictionary, "kUSBSerialNumberString", value);         OSSafeReleaseNULL(value);     }     return  dictionary; } next in kern_return_t IMPL(Driver, Start) we call SetProperties:     ret = SetProperties(devicePropertiesWithSerialNumber());     if(ret != kIOReturnSuccess) {         Log("Start() - Failed to set properties: 0x%08x.", ret);         goto Exit;     } We can read our property on macOS using:     func getDeviceProperty(device: io_object_t, key: String) -> AnyObject? {         IORegistryEntryCreateCFProperty(             device, key as CFString, kCFAllocatorDefault, .zero         )?.takeRetainedValue()     }         if let serialNumber = getDeviceProperty(device: driver, key: "kUSBSerialNumberString") {             print("serialNumber: \(serialNumber)")         } However getDevicePropertyon iPadOS returns nil. We are wondering is any limitation for IORegistry entries(properties) on iPadOS16? Is any way to add custom property to IORegistry? BTW, we added debug method to print all the available properties for IORegistry:     private func debugRegistry(device: io_object_t) {         var dictionary: Unmanaged<CFMutableDictionary>?         IORegistryEntryCreateCFProperties(device, &dictionary, kCFAllocatorDefault, .zero)         if let dictionary = dictionary {             let values = dictionary.takeUnretainedValue()             print(values)         }     } It returns just 1 property for iPadOS: { IOClass = IOUserService; } and much more for macOS including our custom one: { CFBundleIdentifier = "****"; CFBundleIdentifierKernel = "com.apple.kpi.iokit"; IOClass = IOUserService; IOMatchCategory = "***"; IOMatchedPersonality = { CFBundleIdentifier = "****"; CFBundleIdentifierKernel = "com.apple.kpi.iokit"; IOClass = IOUserService; IOMatchCategory = "****"; IOPersonalityPublisher = "****"; IOProviderClass = IOUSBHostInterface; IOResourceMatch = IOKit; IOUserClass = Driver; IOUserServerCDHash = 9cfd03b5c1b90da709ffb1455a053c5d7cdf47ac; IOUserServerName = "*****"; UserClientProperties = { IOClass = IOUserUserClient; IOUserClass = DriverUserClient; }; bConfigurationValue = 1; bInterfaceNumber = 1; bcdDevice = 512; idProduct = XXXXX; idVendor = XXXXX; }; IOPersonalityPublisher = "*****"; IOPowerManagement = { CapabilityFlags = 2; CurrentPowerState = 2; MaxPowerState = 2; }; IOProbeScore = 100000; IOProviderClass = IOUSBHostInterface; IOResourceMatch = IOKit; IOUserClass = Driver; IOUserServerCDHash = 9cfd03b5c1b90da709ffb1455a053c5d7cdf47ac; IOUserServerName = "*****"; UserClientProperties = { IOClass = IOUserUserClient; IOUserClass = DriverUserClient; }; bConfigurationValue = 1; bInterfaceNumber = 1; bcdDevice = 512; idProduct = XXXXX; idVendor = XXXXXX; kUSBSerialNumberString = XXXXXXXXXXX; }
Posted
by
Post not yet marked as solved
2 Replies
2.7k Views
Hi, I am working on an iPad application that has both Portrait and Landscape orientation. The issue that I am facing is regarding the the popup presentation that iPad shows you for saving password while you log-in in the application. Now, when the pop-up is presented, at that moment if I try to rotate the device, the application crashes with the message Application tried to present modally a view controller <_SFAppPasswordSavingViewController: 0x107be7230> that is already being presented by <UIKeyboardHiddenViewController_Save: 0x107a49190>. Now, the problem is that SFAppPasswordSavingViewController presentation is not controlled by me. Also UIKeyboardHiddenViewController_Save,is something I am not controlling. Please help me out on how to solve this issue or let me know if I am missing anything.
Posted
by
Post not yet marked as solved
1 Replies
568 Views
I recently submitted app using the option of reset ratings. App went live but ratings did not reset , is this a bug Apple is working on?
Posted
by
Post not yet marked as solved
5 Replies
1.2k Views
I found a glitch on my app on iOS/iPadOS 16.1. The directory to open files is not saved. I filed this on Feedback Assistant but Apple says that it is a specified behavior. Isn't it a bug? // // ViewController.m // #import "ViewController.h" #import <UniformTypeIdentifiers/UniformTypeIdentifiers.h> @interface ViewController () <UIDocumentPickerDelegate> @end @implementation ViewController { NSURL *directoryURL; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } - (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls { directoryURL = [[urls firstObject] URLByDeletingLastPathComponent]; } - (IBAction)trigger:(id)sender { UIDocumentPickerViewController *picker = [[UIDocumentPickerViewController alloc] initForOpeningContentTypes:@[UTTypeData] asCopy:NO]; picker.directoryURL = directoryURL; [self presentViewController:picker animated:YES completion:nil]; } @end To reproduce the issue. Tap the button and select a file on another directory. Tap the button again. The directory should be the selected one but is the default one.
Posted
by
kkq