Wednesday, October 2, 2024

xcode – Tips on how to develop and check a macOS app that helps a number of variations of macOS utilizing one MacBook Professional?

I’m an iOS/macOS app developer. I’ve an app that helps macOS 12/13/14. I’ve a brand new (November 2023) M3 MacBook Professional operating macOS 14.3.1.

I’ve a have to additionally run macOS 12 and macOS 13 on this identical MacBook Professional so I can check the app to make sure all performance works accurately on all supported variations of macOS.

I initially meant to put in macOS 12 and 13 in their very own partitions and use twin (triple) boot as wanted. Nonetheless, this failed as a result of the brand new Mac does not assist something older than macOS 14.1. See Tips on how to set up macOS Ventura on an M3 MacBook Professional? for a associated submit I made about attempting to get macOS Ventura put in on the brand new Mac. Publish a solution there if you already know of an answer for that. Such an answer would render most of this submit moot.

Then I moved to virtualization. I downloaded and setup UTM. I had no difficulty putting in macOS 13.6 after downloading the suitable ipsw file from Apple. However then the roadblock confirmed up. It seems that macOS operating in a digital machine on an Apple Silicon host doesn’t assist the flexibility to log into an AppleID. See https://developer.apple.com/boards/thread/707682 for tons of feedback on this. The submit by Apple worker “Eskimo” close to the highest of the thread has probably the most related information:

  • Apple silicon macOS digital machine don’t assist Apple ID logins.
  • This has been true because the Virtualization framework was launched in macOS 11.
  • It’s nonetheless true in macOS 14 (at the moment in beta).
  • Which means that quite a few vital workflows don’t work in such VMs.
  • Apple has made no official announcement about whether or not this can change sooner or later.

This restriction causes the next ache factors attempting to do app growth and testing:

  • You may’t obtain any software program through the App Retailer app since you’ll be able to’t log into the shop. That is simple sufficient to work round by downloading on the host and copying to the visitor VM.
  • You may’t obtain any TestFlight check apps since you’ll be able to’t log into TestFlight.
  • You may’t check any iCloud performance within the app since you’ll be able to’t log into iCloud.

I’ve tried to work round a few of these points.

  • Operating Xcode on the host, I constructed a growth construct of the app. I then copied the ensuing app to a shared folder out there to the visitor VM. Once I then try and run that model of the app from the visitor VM, I get a dialog popup that states that “The appliance XXX cannot be opened”.
  • I submitted a construct and made it out there through TestFlight. I downloaded the app through TestFlight on the host. I then copied the ensuing app to a shared folder out there to the visitor VM. Once I then try and run that model of the app from the visitor VM, I get a dialog popup that states that the app is now not out there as a result of provisioning profile being invalid.

So I am unable to run a growth construct and I am unable to run a TestFlight construct. I did confirm that I can obtain the app from the App Retailer on the host, copy that to the VM, after which efficiently run it from the visitor VM. It is solely the event and TestFlight builds that fail.

If I may run TestFlight within the visitor VM then I am positive that may work. However since you’ll be able to’t log into the AppleID within the visitor VM, that is not an choice.

How do I construct my app on my host Mac in such a approach that I can run it in a number of visitor VMs?*

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles