Archive for June 10, 2021

Thursday, June 10, 2021

Digital Legacy and Account Recovery Contacts

Juli Clover:

With iOS 15, Apple is introducing a new Digital Legacy program that designates people as Legacy Contacts to let them access your Apple ID account and personal information in the event of your death.


This is an important new addition to iOS because right now, if someone passes away with a locked iPhone, iPad, or Mac, it’s difficult if not impossible to get access to the device, even with access to a death certificate.


Alongside the Digital Legacy program, Apple is also letting users set Account Recovery Contacts. People set as an Account Recovery Contact will be able to help you regain access to your Apple ID should you forget your password.

It’s good to see Apple catching up here. However, it’s not clear to me whether this means that your Legacy Contacts will be able to legally access content that you had purchased from the iTunes Store or App Store. Apple can offer direct access to photos, but other data can only be accessed by running an app.


Update (2021-06-13): Judging by the localized strings files in iOS 15, it seems that the legacy contact will receive access to purchased apps but not to licensed media content. I’m not sure how much you can do with the apps, though, because how would you associate them with your data from the backup? And how could they operate on your iCloud data while running on your legacy contact’s device?

How to Test Swift async/await Code With XCTest

Giovanni Lodi:

Because async/await is a feature at the Swift language level, to test an async function we can use the same approach we’d use to consume that code in production: call it with await.


To appreciate how neater this is than the approach we used before the introduction of async await, let me show you the same test but for a chopVegetables version using callbacks and Result.


Unfortunately the XCTAssertThrowsError and the other assertion APIs don’t support concurrency yet, so do catch is the only option to test the error path of async code.