I have three builds of the same framework: one for iOS, one for the simulator, and one for Mac OS.
I do not have the framework source.
I can't find where you specify the path to the correct version of a framework for each target platform. How do you provide the linker with the path to the correct version of a framework for each target platform (iOS, simulator, and now Mac)?
I can't make separate projects, because to build an iOS app for Mac using Catalyst, you have to enable the iPad as a target at the same time as the Mac.
I thought Xcode's General page for the target, under "Frameworks, Libraries, and Embedded Content" looked promising. Next to each entry in the frameworks list, there's a drop-down that lets you specify platforms. But it won't let you add two frameworks with the same name.
So I gave the Mac version a different name... but Xcode complains that it can't find it. But right-clicking on it in the frameworks list and saying "Reveal in Finder" goes right to it. 😡
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I wrote an iOS app that I've been able to run under Catalyst. It uses Bluetooth to communicate with devices (although this doesn't work in the Catalyst version for some reason; not what I'm asking about).
On the Mac, I want to use serial communications through a USB-to-serial interface. I have a framework for Mac OS that does this.
How would I link this framework into the Mac build created by Catalyst, but omit it from the iOS build?
Thanks for any insight.
I updated to iOS 14 and the latest Xcode over the last couple of days.
Now the app I'm writing suffers from UI-rendering defects. Most noticeably UIPickerViews look like text fields with the first character of text cut off.
I see this on two devices. Anybody else seeing this?
Anybody else find that their date pickers are completely broken in iOS 14?
They're not spinners, and they can't be used. They're just grey rectangles with the date in small text within them.
I'd post a screen shot, but these geniuses have no provision for that and they block links. It's at imgur.com/MiI0xrq.png
I can log in and see my existing reports, but I tried to create a new report just now, and the page where you choose the relevant product area never populates.
I've been trying for a few hours, and it's still broken.
I was just stymied by a bug report of a hotkey not working in my app that I couldn't reproduce.
It turned out that Mission Control hijacks Ctrl-arrow hotkeys, but I have all that turned off on my system.
How do you check a hotkey you're planning to use in your app against ones in use by the OS? A Web search on this issue turns up plenty of questions but no answers that I've seen.
Another annoyance is that the menu bar showed that the hotkey was going to work.
My app has a lot of buttons that indicate their "on" state with a special image, assigned in Interface Builder to the Selected state. There's a different image assigned to the Default state, for "off."
I found that when the user tapped a button that was "on," iOS insisted on redrawing it with the Default image. It turns out that Interface Builder misrepresents button states as exclusive:
default
highlighted
selected
disabled
Wrong. For example, a button can be selected AND highlighted. That was the problem in my case, which you can solve programmatically by doing a union of states like this:
thirdsButton.setImage(UIImage(named: "frame_guide_3x3"), for: UIControl.State.selected.union(.highlighted))
That actually does work... but it breaks "highlighted adjusts image," where iOS will dim the button slightly on contact. Now the user doesn't get any feedback upon pressing the button.
Known defect?
After a minor source-code change, my project wouldn't build anymore; Xcode raised dozens of errors complaining about a missing module and loads of other issues.
Lately Xcode (13.1) has been spewing spurious errors on a regular basis, highlighting allegedly erroneous source lines with repeated instances of the same complaint... but declaring 'build succeeded" in the status bar at the top of the screen and running the app successfully. This is happening on two systems, one Intel and the other Apple Silicon. I've not found any explanation. Cleaning and deleting DerivedData don't fix it.
So I've learned to ignore these "errors." But this time the build really was failing, so I looked at the first error. Xcode had inserted a line (into a years-old file) that attempted to import a nonexistent module. The name ("SwiftProtobufTests") appears in the package-definition file of a subproject (which builds Google protocol-buffer support in Swift). But it's not referred to or used anywhere, and I certainly didn't change anything in this source file related to it.
Has anybody else had this happen?
Xcode seems to have suffered from major regressions lately; it's barely stable enough to use right now. There are other insidious signs of internal problems. For example, when Xcode offers to "fix" an erroneous line (whether the error is real or not), it often inserts the fix into the wrong place in the text, garbling it and causing syntax errors.
It also inserts missing cases in switch statements (after the "must be exhaustive" error) at the wrong level in the hierarchy, also causing an error.
Again, this is happening on two systems, one a brand-new M1 Pro that was set up from scratch.
I had just uploaded a new build of my app and it had been processed. I went to submit it for beta testing, when I noticed another build with the next build number "processing." But I never submitted any such build.
I went back to my project and double-checked the version number. It was what I expected it to be: one lower than this mysterious build that suddenly appeared.
App Store Connect now shows that this mystery build is ready to be submitted.
I'm the only developer on this app. Has anyone seen this before? Thanks!
Our QA team is trying to test our application on all platforms we support, but Apple has inexplicably blocked installation of TestFlight on OS 11.
Does anyone know the rationale behind this, or how we're supposed to distribute test builds in an orderly manner now? Having to make ad-hoc builds piecemeal and E-mail them around with duplicated instructions is not exactly professional.
Thanks for any insight!
Our application is available for current and previous generations of Mac OS. But our QA team can't test it, because Apple has inexplicably blocked previous OSes from TestFlight.
Does anyone have an explanation for this idiotic policy?
I'm not talking about the Music service (or MusicKit); I mean for adding functions to the desktop Apple Music software.
I have created certificates to test development locally with HTTPS. You used to be able to drag-&-drop a certificate on the simulator, but this does not appear to work anymore. You can drag one onto the simulator and get the + drop symbol, but attempting to go into "VPN & device management" to trust it under General settings just shows a blank screen that bounces you out immediately.
Now what?
Hi all. I'm writing an app that targets iOS 15 and beyond. I can't build or test because Xcode complains that iOS 17 SDK is not installed, which is true. But my deployment target is set for 15.6.
I installed a simulator for 15 by downloading iOS 15 simulator support from the Platforms tab in settings. This is also where you see that iOS SDKs there are... but there's no way to add them. The + button in the corner only lets you install more simulators.
Where do you install support for earlier iOS versions? This is in Xcode 15.0.1.
Thanks.
Given that SwiftUI and modern programming idioms promote asynchronous activity, and observing a data model and reacting to changes, I wonder why it's so cumbersome in Swift at this point.
Like many, I have run up against the problem where you perform an asynchronous task (like fetching data from the network) and store the result in a published variable in an observed object. This would appear to be an extremely common scenario at this point, and indeed it's exactly the one posed in question after question you find online about this resulting error:
Publishing changes from background threads is not allowed
Then why is it done? Why aren't the changes simply published on the main thread automatically?
Because it isn't, people suggest a bunch of workarounds, like making the enclosing object a MainActor. This just creates a cascade of errors in my application; but also (and I may not be interpreting the documentation correctly) I don't want the owning object to do everything on the main thread.
So the go-to workaround appears to be wrapping every potentially problematic setting of a variable in a call to DispatchQueue.main. Talk about tedious and error-prone. Not to mention unmaintainable, since I or some future maintainer may be calling a function a level or two or three above where a published variable is actually set. And what if you decide to publish a variable that wasn't before, and now you have to run around checking every potential change to it?
Is this not a mess?