cd ~/ios_code/redo-ios
open Package.swiftOR double-click Package.swift in Finder.
Xcode will automatically:
- Resolve Swift Package dependencies (Firebase, GoogleSignIn, etc.)
- This may take 2-5 minutes on first open
- Watch the progress at the top of the Xcode window
At the top of Xcode window:
- Click the scheme dropdown (should show "Redo" or "My Mac")
- Select "Redo" from the list
- Next to it, select an iOS simulator (e.g., "iPhone 15 Pro")
Press ⌘R (Command-R) or click the Play button (▶) at the top left.
The app should build and launch in the simulator!
The app needs a real Firebase configuration. The placeholder file will cause crashes.
- Go to Firebase Console: https://console.firebase.google.com/
- Select your project (or create a new one)
- Add an iOS app:
- Click "Add app" → iOS
- Bundle ID:
vision.salient.redo(or your choice) - App nickname: "Redo iOS"
- Skip App Store ID
- Download GoogleService-Info.plist
- Replace the placeholder:
cp ~/Downloads/GoogleService-Info.plist ~/ios_code/redo-ios/App/
- Firebase Auth: Google Sign-In for optional cloud sync
- Firestore: Cloud storage for task sync across devices
- Firebase Core: Configuration and initialization
Solution: Wait for SPM to finish resolving dependencies. Look at the top of Xcode for progress.
Solution:
- Select the "App" target in the project navigator (left sidebar)
- Go to "Signing & Capabilities" tab
- Check "Automatically manage signing"
- Select your Apple Developer team
Solution: Replace the placeholder plist with your actual Firebase config (see above).
Solution:
# Restart CoreSimulator service
killall -9 com.apple.CoreSimulator.CoreSimulatorServiceSolution: Clean build folder with ⌘⇧K (Command-Shift-K), then rebuild.
- Apple Developer account (free or paid)
- Device connected via USB
- Device added to provisioning profile
- Connect iPhone/iPad via USB
- Trust this computer on device (if prompted)
- In Xcode, select your device from scheme dropdown
- Click Run (⌘R)
- On device: Settings → General → VPN & Device Management
- Trust your developer certificate
- Open Redo app
- Onboarding Screens: Welcome, features tour, Matrix-themed intro
- Optional Sign-In: Google OAuth for cloud sync (can skip for offline use)
- Main App: Task list, calendar, analytics tabs
- App works fully offline without signing in
- All tasks stored locally in encrypted change log
- Can enable sync later via Settings
- Tasks sync across all your devices
- Web app integration at
~/WebstormProjects/redo-web-app - Android app integration at
~/StudioProjects/redo-android
- Open any View file (e.g.,
TaskListView.swift) - Press ⌘⌥P (Command-Option-P) to show preview
- Edit code and see changes instantly
- Click "Try Again" if preview breaks
- Set breakpoints by clicking line numbers
- Press *⌘* (Command-Backslash) to pause execution
- Use
print()statements (visible in Xcode console)
- View → Debug Area → Activate Console (⌘⇧C)
- All
print()statements appear here - Firebase logs also visible
If you get mysterious errors:
- ⌘⇧K - Clean Build Folder
- Close Xcode
rm -rf ~/Library/Developer/Xcode/DerivedData/RedoApp-*- Reopen Xcode and rebuild
redo-ios/
├── App/ # Executable target (what you run)
│ ├── main.swift # App entry point
│ └── GoogleService-Info.plist # Firebase config
├── Sources/
│ ├── RedoCore/ # Business logic (platform-agnostic)
│ ├── RedoCrypto/ # Ed25519, SHA-256, signing
│ └── RedoUI/ # SwiftUI views and view models
└── Tests/ # Unit tests
- Select "Any iOS Device (arm64)" as target
- Product → Archive
- Wait for build to complete
- Xcode Organizer opens → click "Distribute App"
- Follow App Store Connect submission flow
- Paid Apple Developer account ($99/year)
- Proper bundle ID
- App icons (in Assets.xcassets)
- Screenshots for App Store listing
- ✅ App running in simulator
- 🔧 Replace GoogleService-Info.plist with real config
- 🎨 Explore Matrix-themed UI
- 📝 Create your first task
- 🔄 Set up Firebase project for sync
- 📱 Test on physical device
Need help? Check other docs:
README.md- Project overview and featuresPLANNING.md- Architecture deep divePROTOCOL.md- Cross-platform sync protocolBUILD_NOTES.md- Why command-line builds show errors
Enjoy building with Redo! 🎯⚡