A simplified macOS financial management application inspired by Gnucash, built with SwiftUI and SwiftData.
See all screenshots here.
- macOS 14.0 or later
- Xcode 15.0 or later
- Swift 5.9 or later
- Clone the repository:
git clone https://github.com/yourusername/cash.git
cd cash- Open the project in Xcode:
open Cash.xcodeproj- Build and run the project (⌘R)
iCloud sync is disabled by default. To enable it:
- In Xcode, select the Cash target
- Go to Build Settings → Swift Compiler - Custom Flags
- Add
ENABLE_ICLOUDto Active Compilation Conditions for the desired configuration (Debug/Release)
Or via command line:
xcodebuild -scheme Cash -configuration Release \
SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) ENABLE_ICLOUD' \
buildRequirements for iCloud:
- Apple Developer account with CloudKit enabled
- Configure the iCloud container identifier in
Cash.entitlements - Sign the app with a valid provisioning profile
- Ensure the
ENABLE_ICLOUDbuild flag is set for the desired configuration (Debug/Release) if required by your setup
If you need to reset the application data (e.g., after schema changes during development), delete the SwiftData store:
rm -rf ~/Library/Application\ Support/Cash
rm -rf ~/Library/Containers/com.thesmokinator.Cash/Data/Library/Application\ Support/CashThen restart the application. The setup wizard will appear to create new default accounts.
Cash is fully localized in:
- 🇬🇧 English
- 🇮🇹 Italian
- 🇪🇸 Spanish
- 🇫🇷 French
- 🇩🇪 German
Language can be changed on-the-fly in Settings without restarting the app.
To add a new language, edit Localizable.xcstrings in Xcode.
All data is stored locally using SwiftData. When iCloud sync is enabled (build flag + user preference), data syncs across devices via CloudKit.
We welcome contributions! Please read our Contributing Guidelines and Code of Conduct before submitting a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
