Skip to content
/ Mastonaut Public
forked from chucker/Mastonaut

Simple, elegant, and native Mastodon client for Mac.

License

Notifications You must be signed in to change notification settings

J-rg/Mastonaut

 
 

Repository files navigation

About

This is a fork of Mastonaut by @brunophilipe, whose original marketing page you can still look at here.

👩🏽‍💻 End Users: Install

To use it, you probably want a pre-built release. The current one is 1.5 and can be downloaded here.

🗺️ Roadmap

This is purely a hobbyist effort, so I can't really promise anything. We can look back at the road so far:

April 2022: the code was made open-source

August 2022: this fork's first minor release

November 2022 through January 2023: on average one release per month

👩🏻‍🌾 Developers: Build

These are instructions for if you want to tinker with the code.

The following instructions assume Xcode 14.1 on macOS 13.0.1.

Setup

  • 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.

Bundle IDs

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:

  • the main app will be com.example.mastonaut.mac
  • the macOS Sharing extension will be com.example.mastonaut.mac.QuickToot
  • the Core Data database shared by the two above will be stored in ~/Library/Group Containers/ABCDEFGH.com.example.mastonaut/Mastonaut/Mastonaut.sqlite
  • Keychain credentials will be prefixed ABCDEFGH.com.example.mastonaut.keychain

Acknowledgments

Most of the Acknowledgments in the about box are auto-generated from Cocoapods dependencies. For this, you need to have the cocoapods-acknowledgements plug-in installed, and then just run pod install.

Additional dependencies come via SwiftPM and Git submodules, and those get added manually in code.

Pitfalls

  • Make sure MastodonKit is fetched as a git submodule. (For example, Xcode's git clone functionality seems to not do this!) This appears to be a custom fork called 3.0 that's significantly different from the public MastodonKit. So don't try to change the project to pull the regular MastodonKit using CocoaPods.

  • 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.

  • If you're using a personal developer ID and get an error like 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.

About

Simple, elegant, and native Mastodon client for Mac.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 92.3%
  • Objective-C 7.2%
  • Other 0.5%