Fixing Sudo for Remote Users

Starting with a recent-ish update to Big Sur, sudo commands would fail for users that are remote users (i.e. Active Directory/LDAP bound). The interesting part is that the sudoers file itself is fine and that some commands prefixed with sudo work and then eventually the rejected commands also start working. This seems to be due to the fact that the OS cannot successfully map the remote User ID and Group to the local admin group and local user account....

New iPhone

Yesterday was the launch of the iPhone 13 and I was participating in it as my last upgrade was 3 years ago. The preorder process went smoothly since the Apple Store app lets you pre-preorder, so I was able to get the model and color I wanted at 7:02am on 9/17 and it arrived in the afternoon on 9/24. Using the Quick Start (device-to-device) transfer, I was able to get everything moved over in about 15 minutes....

Xcode Device Database

When new device models are announced, one of the things that applications that identify what device they are running on need to do is update their model to device name mapping. When referring to device model, we are not talking about the model property on UIDevice, rather the underlying device model Apple assigns to each of its devices. To get the model, you use the kernel via uname: #import <sys/utsname.h> struct utsname sysInfo; if (uname(&sysInfo) == 0) { NSString *model = @(sysInfo....

Using Multi-Platform Projects

If you create a reusable library for Apple platforms, you know that managing it can be a bit cumbersome. In Xcode, you have multiple targets and test targets (iOS/Catalyst, macOS, watchOS, & tvOS) and then you need to keep all of the Xcode configuration consistent between them. One way of handling this is to create a few xcconfig files, but this has its drawbacks too. You can create a base config file for each target to inherit from, then create individual ones for the specific platforms....

Thoughts on WWDC 2021

Continuing the with the very high production value, this year’s virtual WWDC was very good. This year included collaborative lounges (in Slack) where lots of Apple engineers could answer whatever question you might have. If WWDC continues to be virtual, I think this is a good way of reconstructing the lab experience so long as the questions and answers get archived publicly. watchOS The watch got a very small update this year with support for keys and IDs being brought to the Wallet app and a fully updated Mindfulness app....