No way around using a Mac to develop for Mac

As a hobbyts developper, I don’t subscribe to Apple then my Apps are not certified by Apple. But I receive some email from people using them on Big Sur. I don’t know how they do, if it’s the same as on Mojave : Right-Click and open .
I will build my Apps for ARM soon, but I don’t know if users will be able to launch them as they won’t be certified.
It’s not my job, but wait each time I make a new App or a simple update that god-pple bless my work would upset me.

The question remains, is it a technical limitation or an Apple decision to make impossible the Mac Build from Windows ?

LLVM doesn’t get us all the way there. As someone mentioned, code signing can only be done on a mac as well as notarization. Additionally Apple is now saying that we’ll need to create asset catalogs for more things. Apple’s actool which is used to compile asset catalogs only runs on macOS.

5 Likes

Thanks for the clarification. The blog was really wishy-washy.

You can ask the customer, that have a AS device, to ad-hoc codesign your app (in the Terminal). No Apple dev certs are needed for that.
Of course, most users will not do that and just skip your app.

To sign:

codesign -s - <pathtoapp>

IMHO It is technically possible, the question is about time / cost as Apple do not provide the tools or frameworks to do this on Windows or Linux, it would require Xojo to make these tools (and update them as Apple make their infrequent and unannounce changes1). They can be made without documentation from Apple, but that will increase the cost / time to provide such a thing.

In all honesty, I do not perceive this as being viable for Xojo.

  1. Apple recently made a undocumented change whereby their Notarization tools do not always return the response in the format that is requested, breaking the ability for apps to read those responses until a sanitation system was introduced to clear out the junk.

Eurgh…

1 Like

I already said I can do that. I happen to own several macs. But when I travel, I only travel with one. And it used to be that by carrying one MBP, I could launch VMs of various other macOS flavors plus various Windows OS version. For now I will still be able to do that, because I purposely bought a M1 mini and won’t replace my MBP until there is a 16" Mx model.

But this thread was about needing to own a macOS to compile/codesign/notarize and now people who don’t own a mac could possibly be looking at buying TWO macs if they want to properly test on both M1 and older macOS versions.

I think the fact is even if/when the LLVM toolset can link etc, you still can’t (easily) notarize with anything but macOS. Similar to how you can’t easily compile iOS without macOS. And that is not Xojo’s fault.

If you hover over macOS / Windows / Linux you can see this:
image

If you hover over iOS for the PRO license and iOS license, you also see a note that a Mac is required.

Thank you Christophe. Then if I make a small AppleScript which allow to select an application or drag&drop on it which execute this shell command, it will be ok ?

And what would happen if I do this Shell command from my Xojo Apps itself.

That is just the problem Julian is talking about. It says “APPLE requieres”, where it should say “XOJO requieres”

2 Likes

What ? Apple makes it so a Mac is required to compile and sign an MacOS app. Then how can you says it is required by Xojo ?

Well, the LLVM linker is just one piece to the puzzle. Even if/when that is solved, I don’t know of anyway to codesign or notarize apps using anything but a macOS device. And that is an Apple requirement. At least unless / until somebody comes up with a way to do it on another OS.

And I pity the person who tries, because even using macOS it seems very much like a moving target. Some of us, myself included, are more than happy to pay Sam to find the right hoops to jump through and maintain his excellent App Wrapper. And that is using macOS,

So if your target market is solely pre-Catalina and distributed out the MAS, you may get by without notarization.

And you can rent macOS time in the cloud and make a build environment. But as often pointed out here, used macs you can use locally are already cheap. And likely to get cheaper now with M1 machines shipping. Even a brand new M1 mini in its base configuration is cheap compared to its performance.

Sadly, at this point in time if you were to only own one machine, I’d suggest NOT getting the M1 because then you can use either VMs of multiple macOS versions or external boot it to multiple macOS versions for testing.

I happen to own numerous macOS machines and historically have found that works better as my main development machine. The M1 is a step backwards in that regard since I cannot (yet) do VMs of prior macOS versions, or multiple Windows versions runningx86 exe’s.

However, this thread is more about what happens for people who don’t own a macOS machine. Not those of us who own more than one. And as far as I can tell, it is Apple not Xojo which is making it difficult if not impossible to widely distribute macOS not created and notarized on Apple hardware.

Quote from Geoff on the blog; “While creating our own tools for these Apple technologies is possible, it would be a significant effort to create and also support and maintain them.”

Ergo, its not an Apple requirement, its a decision by Xojo

Ergo, you can’t really put “Apple requires macOS apps to be built on a Mac.”

Not that I care what Xojo does with its “marketing language”, I’m just trying to help by pointing out a future point of contention.

2 Likes

I’d write it in a way that doesn’t try to blame either: “Note: A Mac is required to build macOS apps.”

10 Likes

The app will not launch in the first place so that’s little use.

Now executables must be notarized, meaning uploaded to Apple servers, where they are blessed by the fruit to be able to run on Catalina and Big Sur.

Eventually…
The number of users reporting a (to them) inexplicable delay while Apple does its stuff is increasing. Getting a bit tired of explaining what Apple requires of us these days vis-a-vis codesigning, notarisation, translocation issues, permission issues…

1 Like

Yes there are x86 apps running on that video, he mentions them specifically.

Its a shame that Xojo dropped their newer x86 editions so we can’t run Xojo on ARM at the moment. It’s funny how fast Xojo adopt ARM on mac yet actively remove support for it on Windows <https://xojo.com/issue/58251> :frowning:

Thank you ChristopheDV. Sorry to ask silly question.

Suggested solution:

Var Profit as Integer = MySoftwareRetailsFor

If Exists MacForTesting Then

		Release Mac version
	
	Elseif Not Exists MacForTesting And BankBalance > MacsOnEbay Then
		
			Buy MacForTesting
			Test on Mac
			Release Mac version 
	
	Else
	
			Release Windows version
			BankBalance + Profit
	
End if
	
Loop
2 Likes

I found a bug. You omitted RevenueFromMacVersion :slight_smile:

3 Likes

Sorry, how’s this work?

If Target RevenueFromMacVersion Then

I have a similar script working while I develop on Mac for a Windows release. :slight_smile: