Since as of iOS 17.4 Apple allows budget apps to directly import real-time transaction data, this project have been depreacted. Apple's API is much more reliable than OCRing screenshots.
While the Wallet app provides exports for Apple Cards at the end of each month, many of us like to handle our budgets on a more frequent basis. However, the Wallet app provides no mechanism for this. This package uses Apple's Vision framework to read Wallet screenshots and export transactions to CVS files.
- macOS 10.15+
- iOS 13+
- Screenhots must be cropped such that only transaction information, without icon, is shown as in the following example:
- CardVision does not currently attempt to deduplicate transactions that show up in multiple screenshots.
brew install bergquester/bergquester/cardvision
cardvision -imagePath <path_to_cropped_images> -outputPath <path_to_output_file>
- Xcode 11+
- No external dependancies!
Use Swift Package Manager.
import CardVision
let filePath = "path_to_directory_of_images"
let csvData = FileManager()
.images(inPath: filePath)
.allTransactions()
.filtered(isDeclined: false)
.csvData
Contributions are welcome. Some areas that need some help:
- Real error handling
- API documentation
- Tests and test data
- Address limitations