Posts

Post not yet marked as solved
6 Replies
2k Views
When I call [UIDocumentInteractionController interactionControllerWithURL:] in a Mac Catalyst app, the follow message appears in the debugger console, after which an exception is thrown:[General] UIDocumentInteractionController not availableAccording to the documentation UIDocumentInteractionController and its interactionControllerWithURL class method are available in Mac Catalyst 13.0+. The code has been working just fine in iOS for a long time (and still works fine in iOS 13 on an iPad or iPhone).Has anyone else encountered this? What is the solution to make UIDocumentInteractionController work in the Mac app? Or, is the documentation incorrect and an alternative is needed?
Posted
by precisely.
Last updated
.
Post not yet marked as solved
3 Replies
1.1k Views
It seems like a basic operation that any developer whose app uses location information would need to perform. However, after searching for some time, I have been unable to find an answer to this question that actually works. App Review is currently refusing to approve distribution of my Mac Catalyst apps because they request access to location information, but no 'usage description' is displayed in the prompt. These are Catalyst apps which, by Apple's official guidance, rely on the Info.plist keys defined for the iOS version of the app. For some reason the usage description (sometimes) isn't being displayed, despite the presence of the proper keys in the Info.plist and App Review has rejected the app. For my own testing, I have found it difficult to know when that prompt will even be presented and how to reset it to ensure that it will be presented. On top of that, the usage description sometimes appears and sometimes doesn't. I would really appreciate some help, just to reset the location permission prompt so I can even do some consistent meaningful testing! At this point, this whole things looks like Apple rejecting my apps because of their own software's failures, but how do I get to the root of it if I can't even test it? And, Apple apparently won't allow me to include URL's in this post that link to the suggested solutions I have already tried. Nice. Thanks.
Posted
by precisely.
Last updated
.
Post not yet marked as solved
1 Replies
489 Views
The problem is this:When dragging a Catalyst app window between retina and non-retina displays on a Mac, my views are often drawn correctly (proper scaling).However, sometimes the scaling is wrong when dragging between the displays and it stays wrong when the window dragging stops, or when the window is dragged again within the same display (some other user action must be taken to force a redraw of the affected views).None of traitCollectionDidChange: (traitCollection.displayScale), viewWillLayoutSubviews, or viewDidLayoutSubviews occurs late enough in the process (dragging between displays) to initiate a redraw of the view when the problem occurs.It seems that I need to know when the window is dragged.How can this be managed in a Mac Catalyst app?Thank you for any help.
Posted
by precisely.
Last updated
.
Post marked as solved
4 Replies
2k Views
On iOS/iPadOS, with a USB microphone connected, the 'availableInputs' property of AVAudioSession's sharedInstance returns AVAudioSessionPortDescriptions for both the built-in microphone and the USB microphone. On macOS, in an iPad app built for macOS using Catalyst, the only AVAudioSessionPortDescription returned is for a device named 'CADefaultDeviceAggregate-xxxx-x' (where different combinations of numbers occupy the characters designated by 'x'), even when several USB audio devices are connected to the Mac.We would like for our app to be able to switch between the built-in microphone and external USB microphones (or other USB audio devices) in the Mac version, just as it does in the iPad version. I understand that the user has multiple options for selecting the current audio input/output devices used by the system (System Preferences: Sound and Audio MIDI Setup). However, in order for the Mac version of our iPad app to work, we at least need to get the correct device name and UID for the selected input device, rather than CADefaultDeviceAggregate.For a specific example, we would like to see the following when a miniDSP UMIK-1 is attached to the Mac (this is some of the info provided in the AVAudioSessionPortDescription for this device on iOS/iPadOS):Port Name: Umik-1 Gain: 18dBType: USBAudioUID: AppleUSBAudioEngine:miniDSP :Umik-1 Gain: 18dB :00002:1Does anyone know of a solution or workaround to this problem (it's currently a show-stopper for a Catalyst version of our app)?
Posted
by precisely.
Last updated
.