Code Signing and Notarizing your MacOS Apps

Introduction One of the biggest pain points of every developer in the Apple ecosystem is Application signing. It was never straightforward. Even after more than a decade of exposure in mobile and desktop development, it’s still a painful experience overall. On the flip side, there are reasons this is the case. From time to time, big companies like Apple have to refresh their security posture and that means developers have to follow those rules to maintain a secured and trusted platform. Code Signing and Notarization are some of them. This blog post will focus more on MacOS Desktop apps, and won’t directly apply to iOS and iPadOS. ...

<span title='2022-09-18 21:52:19 +0000 UTC'>September 2022</span>&nbsp;&middot;&nbsp;Michael John Peña

Creating native MacOS background apps with .NET

Introduction In the previous blog post , I covered how you can create Universal Apps for MacOS. But what if you actually want to create and run a head-less (no UI) application in your Mac using your favourite .NET framework and libraries? Then I have some good news for you, it’s possible, but then again - with some caveats. For those who are already familiar with Windows Services, with .NET, you traditionally create a Windows Service project using the .NET Framework. But with introducing .NET Core you can now run .NET apps (Console and Web) on Linux and Mac without the need to use Mono . Then with it, comes the Worker Service project that allows you to create hosted services that run in the background using the IHostedService interface that allows you to run the app to any generic host - meaning no need for runtime dependencies like .NET framework. ...

<span title='2022-09-15 21:52:19 +0000 UTC'>September 2022</span>&nbsp;&middot;&nbsp;Michael John Peña

Creating MacOS universal apps in .NET

It’s been a while since the most mind-breaking thing happened to .NET developers who are also Mac users like me - the introduction of .NET Core (of course equally excited with Xamarin and Mono as well). But with .NET core which is supported by Microsoft themselves, we can now create self-hosted applications and deploy it to almost anywhere, including Macs. This means that if you want to create an application that you want to target Macs as the host (not an app), then .NET is now a viable option. Since then .NET Core has evolved its naming into “just .NET” hence with .NET 5, .NET 6, .NET 7 - it’s just .NET that targets all platforms. ...

<span title='2022-09-13 00:00:00 +0000 UTC'>September 2022</span>&nbsp;&middot;&nbsp;Michael John Peña

My Ultimate Windows and Mac Setup (2021 Edition)

Introduction My Battle Station @ 2021 In a parallel world, I’ll be just using 1 device and 1 Operating system for all the things. However, given the nature of my work with mobile, web, blockchain, machine learning, and cloud development, I need to have multiple devices to cater things. I tried doing “Shared mouse and keyboard” in the past such as Synergy, but I decided to use a KVM switch instead. The main reason for this is context switching, so that I don’t get distracted and I have a “physical switch” to tell myself “It’s time to do…” I also intentionally placed the KVM switch near my foot, so I have to force myself to dock to press that button. ...

<span title='2021-07-13 00:00:00 +0000 UTC'>July 2021</span>&nbsp;&middot;&nbsp;Michael John Peña

How to disable auto-locking of MacOS Keychains

Signing an iOS app for release is one of the trivial things most mobile developers face. A lot of CLIs and SAAS emerged as part of this struggle. However, not all companies have adopted to those tools and they still prefer to build their apps in their on-prem data servers. They use something like TeamCity or Azure DevOps Server. We streamlined the configuration of our Mac Build agents to a repository where we can update our Provisioning Profiles, Keychains, etc. ...

<span title='2021-03-14 00:00:00 +0000 UTC'>March 2021</span>&nbsp;&middot;&nbsp;Michael John Peña