MacOS 10.15 Catalina

Just a quick update, to let you know I'm working on proper MacOS Catalina support, including Apple notarization. I hope to have a beta test for you to try later this week. Please keep following this thread.

Until now, pretty much everything I've done on the Mac version of Teensyduino has been designed around compatibility with older versions of MacOS. Today Teensyduino works all the way back to version 10.8, and could work on 10.7 if Arduino did. They go all the way back to 10.8, because that's the oldest Sun's Java8 JRE supports. Today Teensyduino is built using 2 Macs. A very old 17 inch Macbook Pro running 10.7.5 does the actual compiling using a combination of the 10.6 and 10.7 SDK and frameworks, using gcc 4.2. Then a Mac Mini running 10.12.6 is used to add the digital signature to the code compiled on 10.7.5. Somewhere around version 10.10.x Apple changed the signing format. Until Catalina this 2 machine build worked pretty well.

Now I'm setting up a 3rd Mac (Pro, aka Trashcan) running 10.14.6 which will build everything uses Apple's latest Xcode and SDK. Their new notarization requirement explicitly forbids use of the older SDKs (and a lot of other stuff) and the check is done by actually sending the compiled code to Apple and waiting for their system to approve the files.

Right now I'm working first on getting just Teensy Loader to pass all the checks. Right now I'm stuck on the specific format needed for the entitlements configuration file. When I do get it running, I'll publish a test copy here. I could really use your help with testing, since I have only 1 machine running Catalina.

After Teensy Loader passes all the new Gatekeeper checks, the next step will be a copy of Arduino with the Teensyduino stuff added. I'm afraid the installer approach we've been using for the last 10 years will no longer be possible on Catalina. You won't be able to use a copy the Arduino IDE from Arduino. It will have to be a copy from PJRC with digital signature & notarization covering the entire thing.

Once this is all done, we'll end up publishing 2 downloads for Macintosh. The old installer will support 10.8 to 10.14, and the new all-in-one software will support 10.14 & 10.15... and hopefully later, if Apple doesn't keep changing things so much....
 
I can certainly test stuff on Catalina since it is what I use to dev with so if there is any problems I’m sure I’ll run into it at some point, I do have SIP disabled so I don’t normally worry about gatekeeper requirements but I understand the need to pass them for the general audience.
 
Wow, after a ton of jumping through Apple's hoops, including $99 paid, I believe I may have finally got Teensy Loader notarized.

Please download this copy and tell me if Catalina on your Mac is able to run it?


EDIT: link removed. Please use the newer code on msg #43.



Please unplug from the internet and turn off wifi after you download, so Catalina isn't able to communicate with the outside world when you run it the first time. Does Cataline allow you to run Teensy Loader without any internet connectivity?

You should see a one-time message warning that the file was downloaded from the internet. But you should not get any warnings or errors about Apple being unable to identify the developer, or refusal to run it without messing in the security control panel.
 
Last edited by a moderator:
It appears to have worked fine without being connected to the internet.
Screen Shot 2019-12-02 at 9.07.50 PM.png
Screen Shot 2019-12-02 at 9.07.18 PM.png
 
Looks good here. File downloaded from Chrome, shows the "small 3-button" dialog (I don't know why this is different from vjmuzik's); then Teensy loader opened without any other prompts or warnings.
Screen Shot 2019-12-03 at 10.04.52 AM.png
The "Show Web Page" button links back here to the forum.
 
It’s likely different because you may have still been connected to the internet, mine normally look like that when I’m connected the internet.
 
installed fine, you don't need to disconnect the interweb....just right click to get the open app thing
I've been using Catalina since the early beta versions....it's a lot more accepting than it used to be!
Now please please give me USB Midi TX facility for a teensy 4
Thanks
David
 
installed fine, you don't need to disconnect the interweb....just right click to get the open app thing
I've been using Catalina since the early beta versions....it's a lot more accepting than it used to be!
Now please please give me USB Midi TX facility for a teensy 4
Thanks
David

Guessing the disconnect from interweb was a special/specific request so that the test package would run in ANY case as properly signed and approved. When it can see the interweb it will have a chance to ask aPPle about the app which would be assumed to work as the $99 fee put the signature on a list.

When it can't ask, the magic signature approval has to come only from internal content which proves it was properly setup to work as built for release.

As far as the USB functions - good progress has been made moving the USB stack along for Rx and Tx for robust transfers and some issues resolved that would have impacted any 'child' interfaces. So likely safe to expect it to appear in coming beta versions of 1.49.
 
Yes, that's right. When a program lacks the extra signature from Apple proving it's been through their notarization check, MacOS tries to connect to servers at Apple to look up the software. I guess most people these days don't care if software requires an internet connection, but I do. I want Teensy's software to always be able to run without internet connectivity.

On USB MIDI, first the new USB serial optimizations need to be thoroughly tested. That's why I prioritized that work before this MacOS stuff, and why I'm spending a few days on Catalina support while people test the new USB serial code. @daj59 - if you want to help make USB MIDI on Teensy 4.0 come about, please help with the beta testing on the new USB serial. Most of that code will be reused for USB MIDI. But with MIDI parsing built on top, seeing any problems is much harder than when you've viewing the raw bytes.
 
I've managed to make a signed copy of Arduino+Teensyduino.

EDIT: link removed. Please use the newer code on msg #43.


This is using Apple's hardened runtime, with 5 entitlements Java 8 needs. So this is more than merely a digital signature. It really is (or should be) running with the hardened runtime that Apple will soon require for all Mac apps.

It's still not passing Apple's notarization process because some parts are still linked against pre-10.9 SDK libs, so you'll need to control-click and choose Open to run it.

DO NOT run the experimental Teensy Loader from msg #28. It has a bug that prevents communication with Arduino. Make sure you don't have that copy running. This Arduino+Teensyduino will run a copy of Teensy Loader which does communicate with Arduino.

Please let me know how if works on your Mac with Catalina? I ran it here on my Macbook Air and it seems to work. I'm still struggling to get some parts rebuilt against the latest SDK so it'll pass Apple notarization. But I wanted to get this to you now for feedback, and so you can have something that works to use while I get the rest of this Catalina & notarization stuff worked out.
 
I didn't have to right click while connected to the internet or while off of it, it verified the app seemingly fine, and I know even with SIP off I do have to right click + open for some other programs.
Screen Shot 2019-12-04 at 7.17.19 AM.png
I did verify that I could upload a program with the new launcher and it did go through with no problems.
Screen Shot 2019-12-04 at 7.20.03 AM.png
 
The Teensy Loader from post #28 has dark mode support while the new one doesn't, is that something that can be added back?
 
... dark mode support ... is that something that can be added back?

Yes. In fact, I probably will have to do that. This build without dark mode probably can not pass all the notarization requirements which go into effect in January 2020.

But while I'm still struggling to figure out some of those notarization details, the really important question is whether this Arduino+Teensyduino really functions properly on Catalina.
 
I assume it works properly, I tested a few different programs with compile and uploads that all went through without any problems, at least nothing different from my other Arduino installs from before.
 
I just updated my Early 2013(or 14) MacBook Pro to Catalina.

Then downloaded your package. I tried running, and it did not want to run... So Ctrl+click and run and then it appeared to work fine after. I programmed T4 with a fast blink
 
Here is the first completely 100% signed and hardened runtime test. This copy is Apple notarized, so you should see only the "downloaded from internet" warning, but no warnings that Apple hasn't checked it for malware or developer isn't known. No control-click should be needed to run it.

https://www.pjrc.com/tmp/teensyduino-1.49-beta1_catalina_notarized.zip

Please give this a try on your Mac with Catalina. I'm really depending on your feedback to make things work smoothly for all Mac users!

If you downloaded from msg #36, please delete that copy. It wasn't notarized, and it was only using hardened runtime for the GUI but not the toolchain and other utils.
 
Works as expected, congratulations!

Asks because downloaded from the internet which is ok:
Capture d’écran 2019-12-05 à 15.37.02.png

Asks for permission to access the Documents folder which is ok:
Capture d’écran 2019-12-05 à 15.39.12.png

Asks for allowing incoming network connexions which is ok :
Capture d’écran 2019-12-05 à 15.39.29.png

And... ready! :)
Capture d’écran 2019-12-05 à 15.40.02.jpg
 
Here is the first completely 100% signed and hardened runtime test. This copy is Apple notarized, so you should see only the "downloaded from internet" warning, but no warnings that Apple hasn't checked it for malware or developer isn't known. No control-click should be needed to run it.

Works for me with no problems. I unzipped and ran with networking disconnected. Prompted with the "downloaded from internet" dialog when first run. Loaded and compiled sketches including custom libraries, opened the Sketch->Show Sketch Folder, browsed to Documents, Pictures from the Sketch->Add File menu; all fine with no other prompts. I don't have a Teensy to actually upload to, but everything short of that looks great.
 
Downloaded, opened, run and tested. Uploaded a sketch with no issues. Seems to be working perfectly!
 
Thanks Theremingenieur, hpyle, grahamguitarman, jwx49 for testing. It's a huge help.

If I could ask you one more question... do you use the touch bar? I don't own any Macbooks new enough to have the touch bar, so I don't even know what Arduino does with it. But I do know one of the places I ran into issues with the code signing was in libjtouchbar.
 
Unfortunately, I’m of no help with the Touch Bar. My 13” MacBook Pro from 2018 is the version without. I never saw a reason for spending additional money at gimmicks like this.
 
Back
Top