Skip to content

Commit

Permalink
Add readme for the swift port
Browse files Browse the repository at this point in the history
  • Loading branch information
bartreardon committed Jan 9, 2023
1 parent 8b12a32 commit 6af3e71
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions swift/outset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
![Swift Logo](https://developer.apple.com/swift/images/swift-logo.svg)

# Outset - The Swift Port

The swift port of Outset is a direct feature for feature (almost) replacement for the python version of Outset.

The project is compiled against the macOS 10.13 SDK so in theory it should run on macOS 10.13 High Sierra or newer although I'd highly recommend macOS 10.15+

## Why

Why not?

Primary reasons for porting to swift are:
- An exercise in writing a command line utility taking advantage of the [Swift Argument Parser](https://github.com/apple/swift-argument-parser)

- Reduction in dependencies making deployment easier (one package, no opportunity to trigger python install dialogs)


## What Isn't ported

Recent version of macos restrict the installation of `.mobileconfig` files in a useful way outside of MDM and from macOS 11 Big Sur onwards, the `profiles` command can no longer be used to install configuration profiles, so makes no sense to continue support for this feature.

## What's installed

As well as the compiled `outset` binary, the pkg also includes some other files

### Agents
`/Library/LaunchDaemons/` `/Library/LaunchAgents/`

Updated with the `AssociatedBundleIdentifiers` key so under macOS 13, Login Items show everything under the 'Outset' title

### Outset.app

![Outset Icon](https://github.com/bartreardon/outset/blob/master/swift/outset/outset/Assets.xcassets/AppIcon.appiconset/[email protected]?raw=true)

`/usr/local/outset/Outset.app`

Apart from being an app bundle, this app has the BundleID of `com.github.Outset` which is used to show in macOS 13 Login Items under the same app bundle and with an icon. In addition to this, this app will contain code to create and manage the outset launch items from macOS 13 onwards

(the icon is a green representation of the SF Symbol `folder.fill.badge.gearshape`)

## Building the project

Add your developer certificate in the signing and capabilities of both the "outset" and "Outset App Bundle" build targets in Xcode. Select the "Outset Installer Package" scheme and build. This should generate an `Outset.pkg` in your `Build/Products/Release` directory.


0 comments on commit 6af3e71

Please sign in to comment.