✅ Signal.xcworkspace is open in Xcode ✅ cdk-swift package is already added to workspace (this is done)
- In Xcode's left sidebar (Navigator), look for the blue project icon labeled "Signal"
- Click on it (not the folders below it, but the top-level project icon)
- In the main editor area, you'll see:
- Top section: PROJECT with "Signal"
- Bottom section: TARGETS with multiple items
- Under TARGETS, click on "Signal" (the one with the app icon)
⚠️ NOT "SignalTests", "SignalShareExtension", or "SignalNSE"
- At the top of the editor, you'll see tabs: General, Signing & Capabilities, Resource Tags, Info, Build Settings, Build Phases
- Click on "General"
- Scroll down past "Minimum Deployments", "Deployment Info"
- Find the section: "Frameworks, Libraries, and Embedded Content"
- You'll see a list of existing frameworks like:
- Pods_Signal.framework
- Maybe some system frameworks
- Click the "+" button below the frameworks list
- A sheet will pop up with available libraries
- At the top of the sheet, you might see sections:
- "cdk-swift Package" (this is what we want!)
- "Workspace"
- "iOS SDK"
- Under "cdk-swift Package", select "CashuDevKit"
- Click "Add"
- After adding, CashuDevKit will appear in the list
- On the right side, there's an "Embed" column
- Click the dropdown and select "Do Not Embed"
- This is important because CashuDevKit is a static library
If you don't see "cdk-swift Package" in the framework picker:
- Go to "Build Phases" tab (next to General)
- Expand "Link Binary With Libraries"
- Click "+"
- Search for "CashuDevKit"
- Add it
- In Xcode menu bar: File → Packages → Resolve Package Versions
- Wait for resolution
- Try adding the framework again
- Product → Clean Build Folder (Shift+Cmd+K)
- File → Packages → Reset Package Caches
- Close and reopen Xcode
- Try adding the framework again
After adding CashuDevKit, verify it's working:
Run in terminal:
grep -q "CashuDevKit" Signal.xcodeproj/project.pbxproj && echo "✅ CashuDevKit linked" || echo "❌ Not linked"- Select any iOS Simulator as destination
- Press Cmd+B to build
- If it builds without errors mentioning CashuDevKit, it's working!
Once CashuDevKit is linked:
- Open
Signal/src/CashuIntegration.swift - Uncomment line 17:
// import CashuDevKit - Remove or comment out the mock
CashuWalletstruct (lines 24-42) - Build again to verify
Solution: CashuDevKit isn't properly linked. Follow the steps above again.
Solution:
- Make sure cdk-swift is in the workspace (check File Navigator)
- Try File → Packages → Resolve Package Versions
- Restart Xcode
Solution: Make sure "Do Not Embed" is selected for CashuDevKit
Solution:
- Check internet connection
- Clear SPM cache:
rm -rf ~/Library/Caches/org.swift.swiftpm - In Xcode: File → Packages → Reset Package Caches
You know it's working when:
✅ CashuDevKit appears in "Frameworks, Libraries, and Embedded Content"
✅ Building succeeds without CashuDevKit errors
✅ import CashuDevKit works in Swift files
✅ You can use CashuDevKit types like Wallet, Token, etc.
- Update
CashuIntegration.swiftto use real CashuDevKit - Implement actual wallet operations
- Test send/receive with real ecash tokens
- Connect to a real Cashu mint
If you encounter issues:
- Check the build log for specific errors
- Verify cdk-swift package is properly resolved
- Ensure you're adding to the correct target (Signal, not SignalTests)
- Try the verification script:
./verify_cashu_integration.sh