This is a fork of Mastonaut by @brunophilipe, whose original marketing page you can still look at here. His latest version 1.3.9 can still be installed from the App Store.
(As of 1.9.1. Features marked with a mountain ⛰️ are also available for macOS 10.13 High Sierra through macOS 11 Big Sur; all other features require macOS 12 Monterey or newer.)
:cat:
To use it, you just want to download 1.9.1 here.
This is purely a hobbyist effort, so I can't really promise anything. I try to do a new release every month or two.
These are instructions for if you want to tinker with the code.
The following instructions assume Xcode 14.2 on macOS 13.4. (Note that it may not currently build in Xcode 14.3.x.)
You need XcodeGen. If you have HomeBrew, just run brew install xcodegen
.
Inside the Mastonaut
subdir, run xcodegen
.
Copy the file userspecific.template.xcconfig
to userspecific.xcconfig
,
and open that file.
Set MASTONAUT_BUNDLE_ID_BASE
to a bundle ID for the app that works with
your Apple ID.
Enter your Team ID instead of the xxxxxxxxxx
next to DEVELOPMENT_TEAM
(It
looks something like 74J34U3R6X
).
Do not check in your changes to userspecific.xcconfig
!
That should be it.
The bundle ID base is used because Mastonaut consists of multiple projects,
which use an app group to share information. Given a MASTONAUT_BUNDLE_ID_BASE
of com.example.mastonaut
and a DEVELOPMENT_TEAM
of ABCDEFGH
:
com.example.mastonaut.mac
com.example.mastonaut.mac.QuickToot
~/Library/Group Containers/ABCDEFGH.com.example.mastonaut/Mastonaut/Mastonaut.sqlite
ABCDEFGH.com.example.mastonaut.keychain
The acknowledgments in the about box are currently built manually. If you add
dependencies, don't forget to edit one of the *Acknowledgments
structs,
probably SwiftPMAcknowledgements
.
Make sure MastodonKit
is fetched as a git submodule. (For example,
Xcode's git clone functionality seems to not do this!) This is a custom fork,
not a package available through SwiftPM or similar.
The .xcconfig
will auto-append .mac
and other suffixes to the
MASTONAUT_BUNDLE_ID_BASE
, so you should pick something like
com.example.mastonaut
(replacing com.example
with whatever reverse domain
name you have set up for your account).
If you don't know your Team ID, go into Signing & Capabilities in your
project and select your team, then your UI will show it under 'App Groups'.
Then revert the project file so it will use the setting from the xcconfig
and
you don't have a lurking change in your checkout.
The project you'll be working with is Mastonaut/Mastonaut.xcodeproj
. Keep in
mind this is effectively read-only: to preserve changes (other than, say,
adding files, which works through wildcards), you need to edit the
Mastonaut/project.yml
instead.
The main application is Mastonaut.
QuickToot is a macOS app extension, specifically for sharing.
QuickToot and Mastonaut use CoreTootin as a common library. GUI code that's required by both belongs here.
The underlying API client is largely implemented in (a custom fork of) MastodonKit, which is referenced as a git submodule.
Personal development teams, including "Your Name Here", do not support the Push Notifications capability.
, you may have to go Signing and Capabilities and
delete the "Push Notifications" capability by clicking the little
trash can next to it. Do not check in this change.MastonautHelp uses https://github.com/chuckhoupt/jekyll-apple-help. Each page is authored in Markdown with some Front Matter metadata written in YAML.
When working on changes to the help, it's easiest to run:
source /opt/homebrew/opt/chruby/share/chruby/chruby.sh
source /opt/homebrew/opt/chruby/share/chruby/auto.sh
chruby ruby-3.1.3
cd MastonautHelp
jekyll serve --livereload
This will launch a web server with live reload capability. Open that in your browser, and saving one of the help files will cause the browser to refresh.