iPadOS is the operating system for iPad.

Posts under iPadOS tag

200 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

deadlock thread
Hi. We have weird trouble related to the multi-threading. Does anyone have ideas how to resolve or avoid? Sample Code // sample.hpp class Sample { public: Sample(); ~Sample(); void Init(); void Dealloc(); void OnEvent(); private: std::mutex sample_mutex_; int counter = 1; } // sample.cpp #include "sample.hpp" Sample::Sample() {} Sample::~Sample() {} void Sample::Init() { std::async([]() { std::this_thread::sleep_for(std::chrono::seconds(2)); this->OnEvent(); }); } void Sample::Dealloc() { std::lock_guard<std::mutex> lock(sample_mutex_); counter = 0; } void Sample::OnEvent { // called from another thread std::lock_guard<std::mutex> lock(sample_mutex_); counter += 1; } // obj_sample.h @interface ObjSample : NSObject - (id _Nonnull)init; @property(nonatomic, readonly) std::shared_ptr<Sample> sample; @end // obj_sample.mm @implementation ObjSample - (id _Nonnull)init{ if (self = [super init]) { _sample = std::make_shared<Sample>(); _sample->Init(); } return self; } - (void)dealloc { sample->Dealloc(); } @end What happens the deadlock happens. according to the debug navigator with the Xcode, we figured out 2 facts below. OnEvent does not end although it looks completed. void Sample::OnEvent { // called from another thread std::lock_guard<std::mutex> lock(sample_mutex_); counter += 1; } // <= Thread 35: stop here Sample::Dealloc is run on the same thread of OnEvent. // debug navigator Thread 35 2 Sample::Dealloc <- this is weird. 3 Sample::OnEvent We guess they causes the deadlock. probability less than 10% Environment MacOS: 14.3.1(Apple M1) Xcode: 15.3 iOS Simulator: 17.0.1
3
0
423
Apr ’24
Why is my iPad not accepting screenshot images from my Mac?
I frequently use the Universal Control feature from my Mac, the 27in, to my iPad Pro 5th gen, and recently, when I take a screenshot from my Mac and drag and drop to my tablet, the image won't appear. To be clear, I see the mouse going from the Mac to the iPad, and I see the image floating on the iPad, but when I release the image, it does not appear on the screen. I have the latest update, the Sonoma 14.4. I've searched everywhere and I honestly don't know what to do. I am not good with tech, but I don't know what else to do. In addition, I don't know if this is relevant, but my Mac does not find my iPad on Bluetooth and I have tried everything as well. I restarted it, and everything and nothing.
0
0
330
Mar ’24
iPad Split View causing crash due to incorrect parent view controller in multitasking mode
I'm encountering a crash in my iPad application when using Split View or Slide Over multitasking mode. The crash is occurring with the error message: Crashing on exception: child view controller:<UIPageViewController: 0x155f84200> should have parent view controller:<MyApp.HomeViewController: 0x29e040800> but actual parent is:<MyAoo.HomeViewController: 0x12d2c5e00> The issue seems to be related to incorrect parent view controller assignments when retrieving the top view controller using the window. I've tried to address this by saving the persistent identifier in UserDefaults and comparing it when retrieving the key window, but the problem persists. Here's a snippet of the code I'm using to retrieve the key window: `static func getKeyWindow(for role: UISceneSession.Role = .windowApplication) -> UIWindow? { for scene in shared.connectedScenes { guard scene.session.role == role else { continue } if let savedIdentifier = UserDefaults.standard.string(forKey: "\(scene.session.persistentIdentifier)") { debugPrint("#### saved identifier is \(savedIdentifier)") if scene.session.persistentIdentifier == savedIdentifier { return (scene as? UIWindowScene)?.windows.first { $0.isKeyWindow } } else { debugPrint("#### didn't match identifier") } } else { return (scene as? UIWindowScene)?.windows.first { $0.isKeyWindow } } } return nil }` It seems like the issue arises when the app is opened in a split view, as the persistent identifier changes but the app fails to differentiate between the different instances. Consequently, it takes the wrong Split View window and returns the wrong HomeViewController instance, leading to the crash. How can I properly handle the retrieval of the top view controller to avoid this crash in multitasking mode on iPad? Any insights or suggestions would be greatly appreciated. Thanks in advance!
0
0
493
Mar ’24
Can't override 'perform escape gesture' VoiceOver to block going back to previous screen
This is the situation: one of the flows in our app is a navigation stack that consists of several screens. At a certain point in this flow, one of the screens lacks a back button, because we don't want the user to go back to a previous screen in that flow. For sighted users everything works fine. But once a screen reader user activates VoiceOver and uses the perform escape gesture (2 fingers right-left-right) the app does go back to the previous screen! We tried to override accessibilityPerformEscape (both in UIKit and SwiftUI) and do nothing in that method and in case of UIKit return true. That blocks going back when you're focusing on an element on the screen that belongs to the presented screen/viewController (not to the navigationBar). But once the user is focused on the navigationBar and performs the escape gesture, the user can still go back. We tried to override again the accessibilityPerformEscape on the UINavigationController level and the UINavigationBar level but they are not even called.
0
0
356
Mar ’24
iOS 17.4 hangs/freezes
Hi, I have an app in the AppStore and some users reported problems when pressing a NavigationLink that leads to a new view since updating to iOS 17.4. The view that should open only contains a Text("Hello"). The strange thing is: I have to buttons leading to the same view, one is working and the other is not! Not working: NavigationLink(destination: AddServerView()) { Image(systemName: "plus.circle.fill") } Working: NavigationLink(destination: AddServerView()) { Image(systemName: "plus.circle.fill") } What is even more strange is, that the button reported working from user1 doesn't work for user2. User1 reported the problem also to be present on iPadOS 17.4. The problem never happened before iOS 17.4 and I can't reproduce any of the problems on multiple devices running iOS 17.4 including the simulator with multiple devices. I hope somebody can help in this regard or is experiencing issues like this. Kind regards
2
0
1k
Mar ’24
Please enable Hypervisor APIs on iPad OS
Still no hypervisor support in iPadOS 17 Hypervisor is indeed physically possible on any of the M series chips included in the iPad Airs and iPad Pros, but locked away the iPadOS. Block hypervisor on iOS is reasonable to me, because it consume powers, not frendly for battery and not sutable for a mobile phone. But for iPadOS, the limitation is not reasonable to me. First, the Guideline 2.5.2 of iOS and iPadOS blocks code execution that loads dynamically, it may protect users because apps may load malicious code after it passes the revew from app store. But if we load codes in the hypervisor, any malicious can only run in the VM, and the safety of the VM is not an issue. Escape from a VM is even harder than escape from the sandbox of the safari browser. Even there are still other concerns about load arbitrary codes to hypervisor, we can limit it only load user selected code to the hypervisor, blocks app load code from interent without user intention. Running user selected code in the hypervisor won't threaten the security at all, there is no reason for Guideline 2.5.2 applies to hypervisor. Second, iPad a laptop replacement in the advertisement. As a laptop, it can't execute any user generated code on it, it can only be interpreted. As a software develper, it means iPadOS basically not useable. I can only run code on a remote server, and use iPad as a thin client. It can't be a standalone devices, even it has a powerful M2 chip. For the xcode on iPad, if apple concerns xcode on iPad breaks the security model, we can run the compiled code in the hypervisor, which isolates the reviewed code and user generated code. iPad has a powerful M2 chip, but iPadOS limit the power for it.
2
6
978
Mar ’24
parallax on iPadPro
Is apple still deciding what we can view, disabling parallax on websites (safari) or is there a workaround? I am a graphic designer and web developer with an iPad Pro. iPadPro uses "desktop" css not tablet (due to its larger size), so it looks like the desktop website but the beautiful features of parallax are missing. Not helpful with troubleshooting and editing websites on iPadPro after hours. Anyone know a way to force parallax to work?
1
0
403
Mar ’24
WKWebView fails to open .doc file
I'm currently using a WKWebView to load certain types of documents via loadRequest, but I've recently been running into an issue with .doc files doing this: static NSString *customScheme = @"customscheme"; @interface WordDocWKSchemeHandler : NSObject <WKURLSchemeHandler> @end @implementation WordDocWKSchemeHandler { NSData *_data; NSString *_mimeType; } - (instancetype)initWithData:(NSData*)data mimeType:(NSString*)mimeType{ self = [super init]; if (self) { _data = data; _mimeType = mimeType; } return self; } - (void)webView:(WKWebView *)webView startURLSchemeTask:(id<WKURLSchemeTask>)urlSchemeTask { NSURL *url = urlSchemeTask.request.URL; if (![url.scheme isEqualToString:customScheme]){ return; } NSURLResponse *response = [[NSURLResponse alloc] initWithURL:url MIMEType:_mimeType expectedContentLength:_data.length textEncodingName:@""]; [urlSchemeTask didReceiveResponse:response]; [urlSchemeTask didReceiveData:_data]; [urlSchemeTask didFinish]; } - (void)webView:(WKWebView *)webView stopURLSchemeTask:(id<WKURLSchemeTask>)urlSchemeTask{ //empty } @end - (void)_setupWebViewPropertiesAndConstraints{ _webView.navigationDelegate = self; _webView.hidden = YES; [self.view addConstrainedSubview:_webView]; [self.view addConstraints:[_webView constraintsForFillingSuperview]]; self.container.showsLoadingIndicator = YES; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; WKWebViewConfiguration *docConfig = [WKWebViewConfiguration new]; WordDocWKSchemeHandler *schemeHanlder = [[WordDocWKSchemeHandler alloc] initWithData:_content.data mimeType:_content.contentType]; [docConfig setURLSchemeHandler:schemeHanlder forURLScheme:customScheme]; //Setup webview with custom config handler _webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:docConfig]; [self _setupWebViewPropertiesAndConstraints]; NSURL *customURL = [NSURL URLWithString:[NSString stringWithFormat:@"\%@:/",customScheme]]; [_webView loadRequest:[NSURLRequest requestWithURL:customURL]]; } The mimeType is correctly being resolved to "application/msword" but any time we try to load this the navigation fails: -(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error { The error message here is OfficeImportErrorDomain Code=912. I've tried this on both a simulator and actual device on iOS 17 and 16 and this always fails. I've also tried turning the data into a base64 string and loading it that way and this also fails. Any advice here would be appreciated. It seems like this used to work at some point but no longer works.
0
0
426
Mar ’24
Show overflow menu (more menu) as disabled in iOS 16+
Hi! I'm moving my UINavigationBar and UINavigationItem to the iOS 16 style and having trouble with disabling buttons. Before: I'm defining rightBarButtonItems with a few barButtonItems plus a (custom) menuButtonItem (which has a menu with some more actions). After: I'm defining trailingItemGroups and let the system create an overflow menu dynamically, depending on space. I'm also defining some additionalOverflowItems. Here's the problem: How can I access the button/barButtonItem that is showing the overflow menu and call isEnabled = false? My UI, so far, has disabled all buttons during edit mode. I don't want to hide them, but have them grayed out, including the overflow menu button. class MyVC : UIViewController { // ... override func setEditing(_ editing: Bool, animated: Bool) {         super.setEditing(editing, animated: animated) // ... // This doesn't disable the overflow menu button         navigationItem .trailingItemGroups .forEach { $0.barButtonItems .forEach { $0.isEnabled = !isEditing } }     } }
1
0
323
Feb ’24
Crash in background for iOS 17.3.0 and later devices
We found crash reports from Xcode organizer about some crashes happening only in iOS and iPadOS version 17.3.0 and later across all our releases mostly in background state related to Network SDK. Unfortunately, we are unable to reproduce the issue. On the crashed thread, it seems to refer to process from Network SDK but we never import and use it directly in our project. Most of the functions found in the main thread in the crash report can't be accessed from the project, it seems to be internal framework calls in iOS SDK. The crash pointing to this line of code: nw_protocol_error Bug number: FB13661192 Somehow I cannot attach any crash report here, it always return error This post contains sensitive language. Please revise it in order to continue. whenever I try to submit it. If I remove it, I can submit the post.
4
0
653
Mar ’24
iPad 10th generation top header text becomes invisible only in app initial launch.
I’m creating a hybrid app using Swift and Angular. Angular content is loading on top of the Native Swift WkWebView. Starting from iPad 10th generation only in the app initial launch header area become invisible(invisible means header text becomes white). But once I send the app to background and return to foreground header text becomes black and it will show without problem. I would really like to know whether this is a OS problem and if so is there any pro-grammatical solution for this? if anyone can guide me to proper way fix this much a appreciated!!! Environment: ・Device: iPad 10th generation ・OS:iPad OS 17.3.1 ・Native App : Swift 5
1
0
441
Feb ’24
onKeyPress not working on iOS/iPadOS 17.4 but fine on macOS
According to a post on hackingwithswift.com, this should work on iOS/iPadOS: import SwiftUI struct ContentView: View { @FocusState private var focused: Bool @State private var key = "" var body: some View { Text(key) .focusable() .focused($focused) .onKeyPress { press in key += press.characters return .handled } .onAppear { focused = true } } } It does not work for me using a hardware keyboard on an iPad running the latest iPadOS 17.4 beta but it does work on my Mac. FB13644182
0
0
409
Feb ’24
iPad attempting to import Journaling Suggestions
I am using #canImport(JournalingSuggestions), but something is going wrong and my app is attempting to import the framework on iPad, and crashing on launch. How can I ensure that it's properly filtered out from everything except iPhone? import SwiftUI #if canImport(JournalingSuggestions) import JournalingSuggestions #endif struct JournalingSuggestionsView: View { var body: some View { #if canImport(JournalingSuggestions) JournalingSuggestionsPicker { Text("Open Journaling Suggestions") } onCompletion: { suggestion in print(suggestion) } #else Text("Journaling suggestions not available on this platform.") #endif } } Error: dyld[8689]: Library not loaded: /System/Library/Frameworks/JournalingSuggestions.framework/JournalingSuggestions Referenced from: <A656E6BC-4883-3245-BE71-3F84C2F41119> /private/var/containers/Bundle/Application/C6C11F57-AFAA-442A-B726-7AADDDB50D79/Catalog.app/Catalog Reason: tried: '/System/Library/Frameworks/JournalingSuggestions.framework/JournalingSuggestions' (no such file), '/private/preboot/Cryptexes/OS/System/Library/Frameworks/JournalingSuggestions.framework/JournalingSuggestions' (no such file), '/System/Library/Frameworks/JournalingSuggestions.framework/JournalingSuggestions' (no such file, not in dyld cache) System info: Xcode 15.2 iPadOS 17.3.1
14
0
1.2k
3w
PKDrawing.image crashes on iOS 17 (EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000210)
In 2 days we have observed in Crashlytics over 50 crashes related to PKDrawing.image with EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000210 So far all on iPads with A10, A12 and A13; 100% on iOS 17 (17.1.1, 17.2, 17.3) (while in others the percent of iOS 17 was around 60-80%). Context: Images of the varying frame and scale resulting in screen resolution are being generated sequentially (in a background serial queue called almost one after another when requested), updating one CALayer.contents (and only after this update on Main Thread the next generation is allowed). One zoomable PKCanvasView is present on screen. The crashing line in code: let image = drawing.image(from: frame, scale: renderScale).cgImage The questions: Is there anything that can be done apart from throttling generation? Can the circumstances of the crash be determined – are there any indications accessible in code before calling PKDrawing.image that app might crash? The traces: 0 AGXMetalA12 AGX::BlitContext<AGX::G11::Encoders, AGX::G11::Classes, AGX::G11::ObjClasses>::copyTextureToBuffer(IOGPUMetalResource const*, unsigned long, unsigned long, unsigned long, AGXA12FamilyTexture*, unsigned int, unsigned int, MTLOrigin, MTLSize, unsigned long) + 96 9 PencilKit PKDrawing.image(from:scale:) + 28 0 AGXMetalA13 <redacted> + 96 9 PencilKit PKDrawing.image(from:scale:) + 28 0 AGXMetalA10 <redacted> + 72 9 PencilKit $s9PencilKit9PKDrawingV5image4from5scaleSo7UIImageCSo6CGRectV_12CoreGraphics7CGFloatVtF + 24
1
1
667
Feb ’24
QLSupportedContentTypes cannot contain system-supported types (UTIs)
Hi folks, My app is reading proprietary files with the file name extension .JPX - which is out of my control. In addition I’m providing QuickLook and Thumbnail extensions, used system-wide and in my app. Unfortunately iOS is assigning the JPEG-2000 file type (UTI „public.jpeg-2000“) to this file extension, and therefore - to work with associated files - my app is importing this UTI and both extensions are listing „public.jpeg-2000“ in their info.plist as QLSupportedContentTypes. This works to some extent in simulators and when debugging from Xcode on a device: Files with the file extension „.JPX“ are listed with thumbnails provided by my extension, although the preview seems to invoke the system-provided viewer and fails. Not perfect, but good enough as my app requires an icon preview (aka thumbnail) in its UIDocumentBrowserViewController. But when I try to submit my app incl. extensions to the Apple App Store / TestFlight asset validation is reporting an error: „Asset validation failed. Invalid Info.plist value. The value for the key ‚QLSupportedContentTypes‘ in bundle … is invalid. [public.jpeg-2000] are system-supported types.“ How to assign QuickLook / Thumbnail extensions to 3rd party files types whose extension is conflicting with a system-supported UTI? I just spent one of my TSIs for this question - as my Apple developer membership is renewed shortly - but maybe this community as some smart tip to share... Appreciate any help, Mattes
1
0
577
Feb ’24