Native macOS PDF reader built with SwiftUI and PDFKit, with a simple visual-signature workflow.
- PDF viewing via Apple PDFKit
- Visual signature stamp placement and flattened export
- Local-only signature profile storage
- Certificate-based digital signatures (PKI)
- Cloud sync or remote signing services
- macOS 26.2+
- Swift 6.2+
- Xcode Command Line Tools
# Debug build
swift build
# Release app bundle
./build_app.shThe bundle is created at PDFView.app.
swift build
swift build -Xswiftc -strict-concurrency=complete
./build_app.sh debugTest suites are included under /Users/minimac/projects/pdfview/Tests/PDFViewAppTests for XCTest/Swift-Testing capable toolchains.
- Open a PDF (double-click or
File > Open). - Click the signature toolbar button to start signing.
- Create or edit your signature profile (Draw / Type / Import).
- Place signatures in field mode or free placement mode.
- Save a signed copy.
Note: Signing is a visual signature stamp and not a certificate-based digital signature.
DocumentGroupapp model (Sources/PDFViewApp/PDFViewApp.swift)FileDocumentPDF model (Sources/PDFViewApp/PDFViewerDocument.swift)- SwiftUI + PDFKit bridge (
Sources/Views/PDFKitView.swift) - Signature setup and placement UX (
Sources/Views/PDFContentView.swift,Sources/Views/SignatureSetupSheet.swift)
./build_app.shDefault is ad-hoc signing for local use.
SIGNING_IDENTITY="Developer ID Application: Your Name (TEAMID)" ./build_app.sh
NOTARIZE=true \
NOTARY_PROFILE="your-notary-profile" \
SIGNING_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
./build_app.shThe script verifies signatures with:
codesign --verify --strict --verbose=2 PDFView.appspctl -a -vv --type execute PDFView.app(Developer ID builds)
- Right-click any PDF file
- Choose Get Info
- Under Open with, select PDFView
- Click Change All
brew install duti
duti -s com.bigmac.pdfview com.adobe.pdf all- App Sandbox is enabled in distribution entitlements.
- File access is limited to user-selected files/folders for read/write.
- Signed-copy export is flattened from an immutable baseline document plus in-session placements.
MIT. See LICENSE.