New Features with iOS 11 and macOS High Sierra – Internet Sharing & Content Caching

Let’s dive right in and look at the Internet Sharing and Caching Services available with macOS High Sierra and iOS 11 and see what benefits they can bring to producers, professionals, and home or enterprise users with multiple devices.

Internet Sharing Setup

Requirements:

macOS High Sierra

iOS 11

Mac with Ethernet Connection (Not technically required, but documentation advises against using WiFi for Internet Sharing, though it can be configured via Terminal).

On the Mac – navigate to System Preferences–>Sharing–>Content Caching:

There are 2 options to choose from here Cache & Share, which can be used independently or together.

Share allows you to connect your iOS device, or devices with a USB Hub, to your Mac via the Apple Lightning-to-USB Adapter, enabling the iOS device to share the Mac’s internet connection. You can turn off Wi-Fi on your iOS device. I’ve tested with Speedtest numerous times, and with my home internet connection, get an average of about 500mb p/second via the shared internet, and my upload speed always hits 40mb p/second – which is the highest my service provides.

You won’t have any indication the internet sharing is in use on your iOS device, it doesn’t show in Settings. It typically takes up to 60 seconds for the connection to begin after you’ve connected your iOS device.

Network MIDI Sessions, and other important features like Quicktime captures of iOS devices will still function normally while Sharing is enabled.

However, IDAM – Inter Device Audio and MIDI Mode will disable Sharing, and will also disable the Cache option (as well as Quicktime captures of iOS device screens and audio).

I’ve been consistently using the Sharing option since release without issue. It’s especially useful when you want to avoid using Wi-Fi, or get faster speeds from the Mac’s ethernet connection. And when used in conjunction with the Cache option, and iCloud caching options, offers several considerations for production workflows.

Cache – The Cache option, which is called Content Caching, offers 3 options:

All Content

Only Shared Content

Only iCloud Content

All Content caches all of your iCloud Content, and a variety of other Content specific to the Content Caching service.

Only Shared Content only caches the Content specific to the Content Caching service, and

Only iCloud Content caches only iCloud Content.

So what specific Content does the Content Caching service cache? A few types of content are shown in the above image, but the full list is given here https://support.apple.com/en-us/HT204675, attached via the following two images:

About the Caching Service

The caching service was originally designed to serve all of the above types of content to larger macOS deployments, where dozens or more devices can be updated from a single Mac, allowing system administrators to manage bandwidth usage, and keep devices updated and synchronized accordingly, and was only available via MacOS Server. With macOS High Sierra the MacOS Server caching service was deprecated, and baked into macOS for everyone to use. Many of its features can be utilized to improve workflows, and can provide various utility optimizations, depending on your particular needs and setup.

Initial Benefits to Consider

The Caching service delivers content at much greater speeds than can be achieved via Wifi by utilizing the Mac’s ethernet connection.

All Content only has to be downloaded once from the Apple servers, you save all the bandwidth of, for example, downloading several macOS system updates for multiple Mac’s or iOS device system updates, which can be around 3gb each. And if you utilize the iCloud caching options, your iOS iCloud backups are cached, allowing them to be restored without contacting the Apple servers, or the internet via iCloud.com.

Garageband downloadable content, and a wide variety of other content further detailed below – Useful if you need to install it on multiple systems, or if you’re restoring macOS, again the content won’t need downloading from the Apple servers, and can be served from your Mac instead, at network speeds.

iCloud Caching – If you select Only iCloudContent in the Cache options, you’ll note the following:

As the image shows, if you cache iCloud content it will include

Your selected options for iCloud Photos for both macOS and iCloud sharing on your iOS devices.

iCloud backups of your iOS devices. This option is quite useful if you like to quickly backup and restore your devices. By caching your iCloud backups, you can restore devices without having to download the backups from the Apple servers.

The iCloud caching service also caches iOS system, and app updates.

iOS apps and iOS app updates are also cached.

iOS photos and documents are also cached, depending on the options you select on your iOS device’s iCloud settings.

However, there is one important caveat here for iOS devices – Cacheable content isn’t cached until a device downloads the update over WiFi. The caching service will not cache updates served from iTunes. Once a device downloads an over the air update, it will be cached and then can be served to the rest of your devices.

Part II — Advanced Features

Starting Out – The Options Tab Configuration Options

While setting up and managing the Content Caching service takes a few minutes, there are quite a few more advanced options available. We’ll start with the basic-advanced options.

Basic-Advanced options begin with clicking the Options Tab from the main Content Caching panel, which opens the following panel

Here we can designate a limit to the Storage used on your hard drive. If you delimit the Cache size, when the cache fills up, the service will begin deleting the oldest, least used caches to accommodate the space needed for the current caching content needing the space.

The Reset option will immediately delete all cached content.

And you can Edit location where the Cache is stored – However, you can only change the location where the Cache is stored if you’ve created another APFS Volume on your Mac.

How to Create and APFS Volume on your Mac

To create an APFS Volume just navigate to Disk Utility, located in the Utilities Folder.

Click the Partition icon – Then Click Add Volume. Volumes are great because they share storage space with your Mac – so space is dynamically allocated to the Volume, unlike a partition which has a fixed size. So creating a volume won’t impact your storage space, and volumes are useful for other reasons as well.

I’ve created a Volume which I’ve named Music Production, and selected it as the location to store my cached content. You can also use volumes creatively by dragging applications in, enabling you to run instances and toggle between them on multiple volumes:

In the following image I’ve opened up the Music Production Volume where my cached content is stored, and expanded the folders to show the directory path to the Cached Content which is : Music Production⁩ (Your Volume or Drive Name) ▸ ⁨Library⁩ ▸ ⁨Application Support⁩ ▸ ⁨Apple⁩. You’ll note this is the same path as if the Cache was stored on your Mac’s regular volume, excepting the volume name.

Another benefit we see in the above image – all the folders in the Data directory for the caching service are encrypted. This is a nice feature of the Caching service, it encrypts all cached data, and cannot itself decrypt the caches. This helps to ensure the integrity and confidentiality of your content. If you’re familiar with the AIC triad – Caching services contributes to all 3 domains, improving Availability as well, as cached content can be served without internet access, and at higher speeds.

Advanced Options

Back on the Content Caching main panel we can also Hold the CMD key – which toggles the Options tab to Advanced Options, clicking Advanced Options we see the following Window

The only difference with Advanced Options are the Clients / Peers / Parents tabs that now appear alongside the Storage Options available. I’m not going to spend much time on these options in this article, as these are really only relevant if you’re in enterprise type environments. Briefly, Clients, Peers, and Parents can be utilized to manage bandwidth, and load-balancing, in environments where merited.

A good example would be a corporate campus with multiple buildings and departments.

A department located in a particular building, might have a client computer set up to host all the cached content for the devices in the department.

If the department needs to expand and takes over a 2nd building on the campus, it too might have a client computer set up to cache content from all the computers in the building. And the 2 buildings might further save bandwidth usage by Peering the 2 clients, such that they can sync between the clients, and again minimize bandwidth.

One or both of the Client computers could also be a Parent to the Peers. As a Parent, the Content Cache from any of its child devices is stored on the Parent’s volume.

While these options are certainly useful, if you’re actually using them, you’ll want to use Terminal, where most of the remaining Caching Options are available. I say most, because there are more Options you can configure via Terminal’s Defaults app – but they aren’t specific to the Caching Service, even though they will likely be useful for certain caching configurations.

You can browse through the rest of the menu drop down in the Advanced Options window, but if you want to fully understand the behavior and customize configuration you can view or edit the Asset Cache .plist at the following path /Library/Preferences/com.apple.AssetCache.plist. These options are especially relevant if you’re utilizing local subnets (which must have Valid Class 3 IP addresses, not local names), or public IP addresses to utilize caching via the internet, timers, and much more. From Terminal you can open the AssetCacheManagerUtil and its man page for further options like purging only iCloud data from a Content Cache and the like.

Overall Thoughts

I’ve found the Internet Sharing and Content Caching options beneficial to my workflow. Here’s a list of some potential use cases:

If you’re working between iOS and Mac devices in music or otherwise production, and especially if you’ve got multiple devices.

Internet Sharing – You want to increase the upload and download speed of your iOS device by utilizing the Mac’s ethernet internet connection.

Being able to quickly back up and restore devices, app updates, Garageband downloadable content, photos, and iCloud backups of your iOS devices.

Keep all your devices updated and in sync.

Once you start the Caching services, there’s no further interaction needed. It doesn’t ever need to be restarted, or reconfigured. Oddly enough, the only time I’ve seen it stop is when IDAM is enabled, which will generate a Notification.

Additionally the Caching Service does not work if your Mac is asleep. If you need to you can use the Caffeinate app via Terminal, if you have a headless Mac, for example.

I detailed quite a bit of the functionality of the Caching Service above, such that whatever your workflow and network complexity, you’ll have a good start knowing how the services function, and some inroads to the more advanced configuration and management options.