How to disable SIP on macOS VMs for macOS UI testing in CI/CD environment? - macos

I have been trying to run my macOS UI tests on a remote machine(VM), and it does not work. On a local machine, it works after giving the permissions related to accessibility. After digging through, I realised that you need to have SIP disabled and add the relevant permission.
So, how can I disable SIP on a headless machine in a CI/CD?

Unfortunately, it is not possible to disable SIP on a remote machine. You have to boot in safe mode and disable it from the terminal. And that requires direct access to the machine.
You can ask your provider if they can disable SIP for a specific machine for you, or you can look for providers that do.
There are a few out there, with Codemagic being one of them.
We released SIP disabled macOS images with the latest and beta Xcode versions so you can run macOS UI tests without any extra configuration.
It was frustrating not being able to test the UI of a Mac app, but I’m happy with what we managed to release.
I also wrote a blog post if you are interested in getting started with macOS UI testing.
Full disclosure - I’m a DevRel at Codemagic CI/CD, focusing on helping the community build for Apple platforms.

Related

Is there a web development environment for Chromebooks?

Ideally I would develop against an existing github repo using only a chromebook (not linux) and an IDE similar to vscode.dev. I've tried stackblitz and glitch and vscode.dev and have not had luck with pulling, building and pushing. They all seem great at editing and even running code in node. Does anyone have practical experience with chromebook only development?
I am wanting to push changes to a github repo after testing locally on a chromebook. I found that stackblitz offers an offline mode with local files, but I cannot see how to push changes to github.
UPDATE: I switched to a chromebook that allows for a linux console, was able to install vscode and have now have a fully offline development experience that is surprisingly responsive. I have a Lenovo S330.

How to get macos app signing set up for packages

I am new to macOS development and am having a terrible time trying to get my code signed. The documentation to me seems to be horrible.
My specific situation...
I am building a cross-platform app that runs on Linux, Windows, macOS and eventually iOS and Android.
It is a console app that runs as a service or LaunchDaemon
It has a UI served by WebView, http, or console commands depending on the scenario.
It is built with Go 17 in VScode.
I am not using xCode other than the command line tools.
My goal on macOS it to distribute it as a package (pkg) and not as an app.
I have been using MunkiPkg to build it
I am hung up on understanding how the various certificates need to be set up. I have not been able to get a successfully signed package notarized.
Can someone please point me to some documentation that explains how my scenario works? Most of what I found requires it to be built in xCode. And the Apple docs seem mostly to focus on how great their tools are without actually explaining how to use them.
Help!

'TestCafe Browser Tools' wants to access 'Google Chrome'. Mac security popup issue. Is there a settings in Mac to always allow?

On Mac (Mojave 10.14.6) CI machine, any time I upgrade TestCafe to the latest version and run a test job, I get this Mac permission popup (see screenshot). I have to manually log into that machine and click 'Allow' to get rid of this popup for the test job to launch a chrome browser otherwise it fails.
Is there a setting in Mac to make always allow/give access to control?
UPDATE: I did provide permission to 'TestCafe Browser Tools' in the settings but that doesn't seem to help. (see screenshot
TestCafe Browser Tools is a special helper app used by TestCafe 1.6.0 and newer. TestCafe uses it for features that access operating system APIs like taking screenshots, opening, closing and resizing browser windows and so on.
Using a dedicated app for such functionality is necessary for providing a convenient way to obtain the new 'Screen Recording' security permission introduced in macOS 10.15 Catalina, but it also delivers more secure permission management for the older macOS versions as well.
The first drawback of using the TestCafe Browser Tools app is that you have to give permissions to the app when you upgrade to TestCafe 1.6.0 from the older TestCafe versions. Another drawback is that macOS can reset permissions granted to TestCafe and show the permission dialog again if the app's content is changed after an update.
We have to apply hotfixes to TestCafe Browser Tools used in TestCafe 1.6.1 and 1.7.0. It means that permissions can be requested again when you upgrade to these versions.
But TestCafe Browser Tools shipped with TestCafe 1.7.0 can be considered stable and we won't change it frequently in the future TestCafe versions. It means that you will not see additional permission dialogs starting from TestCafe 1.7.0.

Flutter migration from Windows to Mac

I have developed a Flutter Mobile application on Windows 10 environment. I am using Firebase with services like Firestore, push notifications, storage and Authentication.
I have not done anything for IOS so far. I am planning to have a Mac machine in cloud and start the IOS related changes there. I have below questions.
I want to have my code at both the places synced so that I can work on windows and Mac. Is there any way to do that securely?
What editor I should use on Mac for IOS and Android development?
Also what are the other things I need to take care?
Thank you in Advance
for syncing:
git, period! Flutter will take care of the rest
for IDE:
we swear by Intellij as you will need it if you decide to port an android version of your app. With Intellij you can even sync plugins & IDE settings across multiple PCs

IDE/Hosting issues w/ Meteor/WebStorm/Cloud9

My next work project is going to be using the Meteor framework. Our team recently got licensed to use WebStorm IDE, which has been our favorite up until this point. so we were planning on continuing the project with it.
That is, until it was time to install it. Then we found out that the Windows version of Meteor is only partially finished, and all of our development PC's are windows based.
So we were considering as a work-around for this, we may use Cloud9 as our development IDE, as it supports Meteor. The sharing functions may help our team productivity a bit as well.
But this has some problems...
First, we just invested in WebStorm, so we would ideally like to use it as our primary IDE. But I do not know how we would be able to work with WebStorm if we can not run an up to date version of Meteor on our windows systems?
Second, I'm not sure if it's even possible to use Cloud9 as the development IDE, but then move the C9 project over to our Ubuntu server for hosting when it is time to go live?
Third, even if we could deploy to our Ubuntu server after C9, we plan on many updates to our live application after deployment. I'm not sure if there would be issues with this if our development is on C9 and deployment on a completely different server.
So I'm wondering if anyone has a potential solution for these issues? Is there any way for us to work with Meteor on our live Ubuntu server, or Cloud9, from WebStorm on our Windows systems? Or any way we could integrate Cloud9 and WebStorm together for the best of both worlds? Or any way we could use a Linux emulator or something to allow us to use Meteor on our local windows system, without making it difficult for multiple developers to work on the project at the same time?
Thanks in advance!
The Windows port of Meteor actually is working quite well; the only major issue is that mobile development doesn't work. That is going to be fixed in Meteor 1.1 anyway, whose primary goal is to get Windows support up to that of Linux and Mac OS X.
As the user who initially pushed for Webstorm to add Meteor support back in October 2012, I'd recommend starting with Webstorm and Meteor on Windows right away, unless you need mobile development. In that case, you need native *nix machine (an Ubuntu VM on Windows won't be able to run the Android emulator, for example).
WebStorm also supports server-side Meteor debugging, and they're pretty responsive when it comes to fixing bugs you report on YouTrack. See for example https://youtrack.jetbrains.com/issue/WEB-13490
With Cloud9, you cannot currently SSH into a workspace you have, so a hybrid Webstorm/Cloud9 situation might not be doable at this point.
As for deploying your stuff from Cloud9, that is very doable. There's some documentation here about that: https://docs.c9.io/v1.0/docs/deploying-via-the-command-line

Resources