iPadOS is the operating system for iPad.

Posts under iPadOS tag

200 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

iPad external keyboard spacebar not working properly
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?
37
2
61k
Aug ’23
Protocol availability inconsistencies related to modern serial layers
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.
11
0
5k
Dec ’23
about how to implement Picture in Picture mode for the new video calling service
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?
1
2
939
Oct ’23
How liable is Apple?
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
4
1
940
Dec ’23
UIDragItem no longer opens a new window on iPadOS 16 Beta
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]   }
1
0
495
Sep ’23
[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone on iPad???
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!
2
0
992
Feb ’24
ScrollViewProxy scrollTo will crash when scrolling outside of bounds of previous (not current) List data source/array in iPad and iOS 16 beta
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) } }) } } } }
15
17
6k
Sep ’23
Can't add custom property into IORegistry on iPadOS 16
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; }
2
4
1.2k
Sep ’23
'Application tried to present modally a view controller <_SFAppPasswordSavingViewController: 0x11fb2ac60> that is already being presented by <UIKeyboardHiddenViewController_Save: 0x118f7fde0>.'
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.
2
1
2.9k
Jul ’23
UIDocumentPickerViewController ignores directoryURL on iOS/iPadOS 16.1
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.
5
1
1.3k
Nov ’23
PKCanvasView no longer shows edit (paste) menu on long press (iOS 16.1)
You used to be able to select a drawing, long press to show the edit menu (copy, duplicate, delete, ...), copy the item and paste it after another long press on the canvas. However, since iOS / iPadOS 16.1 long pressing the canvas does not show any menu. The action still works if you connect an external mouse to your iPad, activate the secondary click functionality and use the right mouse button to click on the canvas. This shows the menu and you can paste the copied drawing. It seems to be broken in all PencilKit-based apps, including Apple's sample apps. Is there any workaround? This is a major problem for my app and used to work fine since the introduction of PencilKit with iOS 13.
7
1
2.3k
Oct ’23
Strange behavior in split screen mode and data lost in iPadOS 16.1!
Hi, As you can see in the code below whenever I open the app in the normal mode app works fine and the detail view shows data properly. However, in split screen the app lost data of the selected item. I'm sure there is a bug in here unless I should manage it by myself which unacceptable! @main struct TestSwiftUIApp: App {     var body: some Scene {         WindowGroup {             ContentView()         }     } } struct Employee: Identifiable {     let name: String     let id: Int } struct ContentView: View {     @State     var selectedEmployeeId: Employee.ID?     let employess: [Employee] = [.init(name: "Hamed", id: 1), .init(name: "John", id: 2)]     var body: some View {         NavigationSplitView {             List(employess, selection: $selectedEmployeeId) { employee in                 Text(employee.name)             }         } detail: {             NavigationStack {                 if let employee = employess.first{$0.id == selectedEmployeeId} {                     EmployeeDetails(employee: employee)                 }             }         }     } } struct EmployeeDetails: View {     let employee: Employee     var body: some View {         Text("Detail of empolyee\(employee.name) with id: \(employee.id)")     } }
4
0
1.1k
Aug ’23
iOS16 SwiftUI cannot figure out crash reason
I am getting random crash from time to time while using SwiftUI but i cannot find a way to get more context into the crash how to find the root cause? didn't even get more info while the crash happened while connected to XCode Version 14.1 (14B47b) OS Version: iPhone OS 16.1 (20B82) Release Type: User Report Version: 104 Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x000000019a9edeb4 Termination Reason: SIGNAL 5 Trace/BPT trap: 5 Terminating Process: exc handler [45365] Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 SwiftUI 0x19a9edeb4 0x19a9c3000 + 175796 1 SwiftUI 0x19a9ede98 0x19a9c3000 + 175768 2 SwiftUI 0x19aa02da4 0x19a9c3000 + 261540 3 libswiftCore.dylib 0x1910dd138 Slice.index(after:) + 48 4 SwiftUI 0x19abd4d48 0x19a9c3000 + 2170184 5 SwiftUI 0x19ac16594 0x19a9c3000 + 2438548 6 libswiftCore.dylib 0x190f29678 BidirectionalCollection.index(_:offsetBy:) + 292 7 SwiftUI 0x19a9edd00 0x19a9c3000 + 175360 8 SwiftUI 0x19be30904 0x19a9c3000 + 21420292 9 SwiftUI 0x19bc2ffa8 0x19a9c3000 + 19320744 10 SwiftUI 0x19b7b1034 0x19a9c3000 + 14606388 11 SwiftUI 0x19b7afc20 0x19a9c3000 + 14601248 12 SwiftUI 0x19b7b21e4 0x19a9c3000 + 14610916 13 UIKitCore 0x1994e57d4 -[UICollectionView _selectItemAtIndexPath:animated:scrollPosition:notifyDelegate:deselectPrevious:performCustomSelectionAction:] + 1060 14 UIKitCore 0x1997314d4 -[UICollectionView touchesEnded:withEvent:] + 480 15 UIKitCore 0x1993e7514 forwardTouchMethod + 284 16 UIKitCore 0x1993e7514 forwardTouchMethod + 284 17 UIKitCore 0x1993e7514 forwardTouchMethod + 284 18 UIKitCore 0x1993e7514 forwardTouchMethod + 284 19 UIKitCore 0x1993185e0 _UIGestureEnvironmentUpdate + 5772 20 UIKitCore 0x199b9ce14 -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 288 21 UIKitCore 0x1992dc31c -[UIGestureEnvironment _updateForEvent:window:] + 188 22 UIKitCore 0x1992e0c74 -[UIWindow sendEvent:] + 3268 23 UIKitCore 0x1992dff44 -[UIApplication sendEvent:] + 672 24 UIKitCore 0x1992df600 __dispatchPreprocessedEventFromEventQueue + 7084 25 UIKitCore 0x1993273e4 __processEventQueue + 5632 26 UIKitCore 0x199f790a4 updateCycleEntry + 168 27 UIKitCore 0x199837740 _UIUpdateSequenceRun + 84 28 UIKitCore 0x199e7efd0 schedulerStepScheduledMainSection + 172 29 UIKitCore 0x199e7e19c runloopSourceCallback + 92 30 CoreFoundation 0x1970fdf54 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 31 CoreFoundation 0x19710a32c __CFRunLoopDoSource0 + 176 32 CoreFoundation 0x19708e210 __CFRunLoopDoSources0 + 244 33 CoreFoundation 0x1970a3ba8 __CFRunLoopRun + 836 34 CoreFoundation 0x1970a8ed4 CFRunLoopRunSpecific + 612 35 GraphicsServices 0x1cfb05368 GSEventRunModal + 164 36 UIKitCore 0x1995873d0 -[UIApplication _run] + 888 37 UIKitCore 0x199587034 UIApplicationMain + 340 38 libswiftUIKit.dylib 0x19fb73308 UIApplicationMain(_:_:_:_:) + 104 39 Fyzio Klinik Doctor 0x10445b2d8 static UIApplicationDelegate.main() + 104 40 Fyzio Klinik Doctor 0x10445b260 static AppDelegate.$main() + 44 41 Fyzio Klinik Doctor 0x10445b450 main + 28 42 dyld 0x1b5700960 start + 2528 Thread 1: 0 libsystem_pthread.dylib 0x1e370eb90 start_wqthread + 0
1
1
727
Oct ’23
DriverKit | Memory limitations of AsyncCallback
We implemented communication between Swift App and DriverKit driver using IOConnectCallAsyncStructMethod. void USBDriverClass::registerAsyncCallback(){   // Async required variables   notificationPort = NULL;   machNotificationPort = NULL;   runLoopSource = NULL;       // Async initialization   globalRunLoop = CFRunLoopGetMain();   CFRetain(globalRunLoop);       notificationPort = IONotificationPortCreate(kIOMainPortDefault);   if (notificationPort == NULL)   {     printf("Failed to create notification port for application.\n");   }       machNotificationPort = IONotificationPortGetMachPort(notificationPort);   if (machNotificationPort == 0)   {     printf("Failed to get mach notification port for application.\n");   }       runLoopSource = IONotificationPortGetRunLoopSource(notificationPort);   if (runLoopSource == NULL)   {     printf("Failed to get run loop for application.\n");   }       // Establish our notifications in the run loop, so we can get callbacks.   CFRunLoopAddSource(globalRunLoop, runLoopSource, kCFRunLoopDefaultMode);       // Establish our "AsyncCallback" function as the function that will be called by our Dext when it calls its "AsyncCompletion" function.   // We'll use kIOAsyncCalloutFuncIndex and kIOAsyncCalloutRefconIndex to define the parameters for our async callback   // This is your callback function. Check the definition for more details.   asyncRef[kIOAsyncCalloutFuncIndex] = (io_user_reference_t)AsyncCallback;   // Use this for context on the return. For example you might pass "this". But since this example is entirely static, we'll skip that step.   asyncRef[kIOAsyncCalloutRefconIndex] = (io_user_reference_t)NULL;       kern_return_t ret = kIOReturnSuccess;   uint8_t words = 4;       size_t inputSize = sizeof(StructA);   StructA structA;       structA.tag = 1;   structA.length = 0;   structA.values[0] = 0x106000;   structA.values[1] = words * sizeof(uint32_t);       size_t outputSize = sizeof(OutputData);   OutputData data;   printf("registerAsyncCallback called");       ret = IOConnectCallAsyncStructMethod(connection, MessageType_RegisterAsyncCallback, machNotificationPort, asyncRef, kIOAsyncCalloutCount, &structA, inputSize, &data, &outputSize);   if (ret != kIOReturnSuccess)   {     printf("IOConnectCallAsyncStructMethod failed with error: 0x%08x.\n", ret);   } } And when we get data from device we send data back from Driver to Swift app ivars->mUSBProbeDriverClient->AsyncCompletion(ivars->streamingDataCallback, kIOReturnSuccess, asyncData, 16); Driver should transfer data to swift app asynchronously when it's provided by USB device so we can not transfer struct synchronously. Async call back has limitation of 16 of uint64_t only and our application require larger data transfer. The logical way to transfer data using a memory buffer and as per Apple documentation they are providing this using IODataQueueDispatchSource. But they have not provided any example or showed how to use this. How to use fill buffer and use it in swift app using IODataQueueDispatchSource?
1
1
1.1k
Nov ’23
Swift UI Table - Problems removing selection from row
Hi,i have been trying out SwiftUI Table and wanted to present a details view when click on Table Row occurs, but I couldn't figure out how to "deselect" row once its been selected, while it may not be what Table was intended for, but I still think this code should be valid. (iPadOS) struct Person: Identifiable { let givenName: String let familyName: String let emailAddress: String let id = UUID() } private var people = [ Person(givenName: "Juan", familyName: "Chavez", emailAddress: "juanchavez@icloud.com"), Person(givenName: "Mei", familyName: "Chen", emailAddress: "meichen@icloud.com"), Person(givenName: "Tom", familyName: "Clark", emailAddress: "tomclark@icloud.com"), Person(givenName: "Gita", familyName: "Kumar", emailAddress: "gitakumar@icloud.com") ] @State private var selectedPeople: Person.ID? @State private var detailsViewPresented: Bool = false var body: some View {         Table(people, selection: $selectedPeople) {             TableColumn("Given Name", value: \.givenName)             TableColumn("Family Name", value: \.familyName)             TableColumn("E-Mail Address", value: \.emailAddress)         }         .onChange(of: selectedPeople) { selection in             guard selection != nil else {                 return             }             detailsViewPresented = true         }         .sheet(isPresented: $detailsViewPresented, onDismiss: {             // Trying to reset the selection             self.selectedPeople = nil         }) {             Text("Person's details")         } } Here when I press row, it gets selected and Text is presented, but row still remains selected, and yes, I could just use onTapGesture within row content if I declared TableColumn with explicit content, but it would just be added to that column and would not provide build in selection style. https://developer.apple.com/documentation/swiftui/table
1
0
1.3k
Jul ’23
apple pencil won’t connect
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?
1
1
640
Jan ’24
DriverKit driver doesn't appear in Settings when installed with iPad app
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.
3
1
1.3k
Jun ’24
Upwork uploading App to App store
Hello so i have a few apps that im getting developed on upwork and i have practically 0 knowledge as far as how anything works as far as computer science type stuff. i just want to know what is the correct procedure as far as letting somebody upload the app to my apple developer account. do i give them my AppleID and password and let them do it and then change my password after they're done? any information would be greatly appreciated. thank you
1
0
846
Aug ’23
Safari 16.4 seems to lose session cookies on asset requests or javascript fetches.
On iPads after updating to iPadOS 16.4, Safari often "looses" the session cookie provided by PlayFramework: When the browser requests assets (js scripts) or when additional data is fetched by JavaScript, the session cookie is not included in the request. These secondary requests will redirect through our IAM because no session cookie is present. The IAM redirects back to the original domain with a payload so that the login session can be resumed. A new Set-Cookie header is sent in the response with the new session cookie. This causes the framework to issue a new CSRF token (that is part of the session cookie) which is different from the old one that was already rendered into a hidden form input. The browser stores this new token and includes it when it POSTs the form. The token in the body of the request is now different from the one in the cookies, causing the CSRF check to fail. We have tried different devices (Android, Windows, MacBook, and iPads) on different versions. The problem only occurs with Safari on iPad/MacBook running version 16.4, 16.4.1, or 16.5 beta. The problem cannot be reproduced using Chrome on iPad. Furthermore, the problem does not occur with private browsing in Safari. Some things we ruled out: Same behaviour on devices managed by MDM and on open devices. PlayFramework version is now updated to the latest 2.8 version. Using a separate cookie for the CSRF token (instead of the play session cookie) does not make a difference either. Modifying the Cache-Control header to cache responses more aggressively or not at all does not help. Has anyone also experienced this or similar problems?
18
12
10k
Aug ’23
IpadOS 17 Live Wallpapers not supported problem
Im running into an issue with the new ipadOS17 live photo wallpapers feature. I'm trying to convert a video into a live photo using several apps from the app store like IntoLive, VideoToLive. Once these videos are converted to the live photo format and I try to set them as a wallpaper, the wallpaper menu states that the wallpaper is not supported or more clearly it says "Motion from this live photo is not supported as a wallpaper". I've tried reducing the video quality, video length, aspect ratio, and none of those options seem to fix the issue. The only live wallpapers that appear to work are those taken from the iPad camera. I hope this can be fixed since its one of the new major features of iPadOS 17.
11
9
11k
Oct ’23