I don’t write as much about what I do at my day job as I used to. I probably should, because it’s all still relavant to my older readers. One example of that is that I have published a lot of articles on MySQL and sqlite. However, more and more of my development efforts use native json. I’ve slowly fallen in love with mongodb for this reason – I can have a local database that is fast, that stores data in native json. That makes my transactions cheaper when it’s time to read and write for databases. If I have to regex to put information in sql and then take…
-
-
Make The Keychain Work When Compiling Your Own NoMAD
Yesterday, I wrote up how to compile your own version of an open source Xcode app and used NoMAD as an example, for those who didn’t want to use the precompiled application bundle. Many software packages have permissions to do do various tasks. NoMAD interacts with the keychain, so will have to use a TeamID, or to expand the term, the Team Identifier Prefix. This means the new version won’t be able to access keychain items created by previous versions of NoMAD, which use the creators prefix (I didn’t reference Joel as “the Creator” – but “a creator” to be clear). Ergo, this article is really just for helping those…
-
Quick And Dirty Guide To Compiling Your Own Version Of An Open Source Xcode Project For Testing
There are plenty of apps out there that can be beneficial to an organization, but don’t really make sense to live on an app store. This might be because the app uses private APIs, breaks acceptable design patterns, needs to be customized for every use case, is just proof of concept code, etc, etc, etc. Anyone with an Apple Developer certificate can compile an app to test it on their local machine. We can go into more detail later for people that want to then distribute/re-distribute those apps… To get started, first we’ll clone the project to our local machine. To do so, in Github or Gitlab or wherever it…
-
Test A Fork Of NoMAD Maybe?
tldr: here’s a slightly modernized fork of NoMAD that needs a little testing: https://gitlab.com/krypted1/nomad2 Been working on a fork of NoMAD that will hopefull just modernize code and get merged back in. In general, the changes shouldn’t be noticed with a big exception, it’s a breaking change for machines that run an operating system older than Catalina. Apple changes APIs and so we have the option to either introduce a breaking change or make the code really complicated by retaining existing code or moving to new APIs. So this version starts to transition away from UIKit and towards Swift UI. It also removes Carthage in favor of Swift Package Manager.…
-
Resolve Package Dependencies in NoMAD 2 with carthage
Sometimes when we download an Xcode project, there are dependencies. Those that use swift packages might need to download the package (if it’s publicly available) or have it linked. Projects that use carthage (where the devs probably consider it a little tech debt to move to a new package management system) just need a quick carthage build. To do so, first install carthage, if it isn’t already installed. To do so, we can just use brew: brew install carthage Next, let’s cd into the root directory of the project (where below is ~/Documents/NoMAD2 and then run carthage with a bootstrap command: carthage bootstrap Subsequent updates might need a new build…
-
Setup Custom iCloud Email For Existing Domains
Apple introduced custom domain names for iCloud email in August of 2021 (I think, but feel free to correct me and I’ll correct this). The easiest way to set this up is probably to just obtain the domain name through Apple. You can also use iCloud Email for custom domains purchased through other registrars. The setup is fairly straight-forward, provided DNS is setup correctly (or that a large-enough DNS host is used that Apple has wired it up to their API to do it for you). To get started, login to iCloud. Then click on the apps selector at the top of the screen and click on Custom Email Domain.…
-
New Version of Extensions Manager
Just uploaded a new version of Extensions Manager to GitHub at https://github.com/krypted/extensionsmanager. Now it has a search function and can sort by column. These make it much quicker to find potential extension conflicts. Uploaded the Xcode project and the compiled binary to just download and run it.
-
The Return Of Extensions Manager
Just posted a graphical interface to see what extensions are running on Macs, the version of extension, what type of extension each is, the status, path, and SDK. This is a rebirth of the slick Extensions Manager of old. It’s less cool like that as it doesn’t yet allow for extensions management – but should once the logic is worked out (or an API is provided for these types of system-wide tasks rather than just for the app that instantiated the extension). To download Extensions Manager, click https://github.com/krypted/extensionsmanager/raw/main/Extension%20Manager%20Executable.zip or to access the source for it and the CLI version, visit https://github.com/krypted/extensionsmanager. The tool is similar in nature to the early…
-
Extensions Manager Swift Project for macOS
Extension Manager was an important app for those who managed Macs in the System 8 and System 9 era. It allowed us to see all of the extensions loaded in the classic OS and disable them. It was also easy to take extensions and move them to the desktop for troubleshooting. In the years since Apple began to pick apart what developers used kernel extensions to do, the type of extensions and how we use them has left us with a few different tools to comb through to see what extensions are on a system and what they do. Thus, let’s bring Extension Manager back (ish). Let’s start with a…
-
New Tool To Recursively Search For macOS Binaries With Specific Symbols
A Mach-O object file is a file format used for executables, libraries, object code, and core dumps. These are binary files. There’s a Mach-O header and then load commands and segments of up to 255 sections with references to symbols encoded into objects and symbol names. Many of those symbols are APIs that Apple makes available that the code uses. We can see those APIs by extracting a list of symbols, but not really the logic underlying it. Tools like Hopper Disassembler can be used to look at these files and extract symbols, or a command like nm. Per the man page of nm, “nm displays the name list (symbol…