Contributing
Welcome to Solidarity! This guide will help you get started with building the app and contributing to the documentation.
Contributing to the App
Prerequisites
Before you begin, make sure you have the following installed:
- Xcode 15.0+ with iOS 16.0+ SDK
- macOS 13.0+ (Ventura or later)
- Apple Developer Account (for device testing and distribution)
Quick Start
Clone the Repository
git clone https://github.com/kidneyweakx/solidarity.git
cd solidarity/airmeishiOpen in Xcode
open airmeishi.xcodeprojAll dependencies are managed via Swift Package Manager and will be automatically resolved when you open the project.
Build and Run
Press ⌘+R or click the “Run” button in Xcode to build and launch the app in the simulator.
Testing P2P Features
Since Solidarity is built around peer-to-peer networking, you’ll need two devices to test the proximity features:
Option 1: Two Physical Devices
- Connect both devices to the same WiFi network
- Install the app on both devices via Xcode or TestFlight
- Open the app on both devices
- They should automatically discover each other
Option 2: Device + Simulator
- Connect your physical device to the same network as your Mac
- Run the app on your device
- Run another instance in the iOS Simulator
- Enable network sharing in simulator settings
Testing QR Code Sharing
The easiest way to test without multiple devices:
- Create a business card in the app
- Generate a QR code
- Save the QR code to Photos
- Use another device or QR scanner app to scan it
Project Structure
airmeishi/
├── airmeishi/ # Main app code
│ ├── Views/ # SwiftUI views
│ ├── Models/ # Data models
│ ├── Services/ # Business logic & services
│ ├── Resources/ # Assets and resources
│ └── airmeishiApp.swift # App entry point
├── airmeishiClip/ # App Clip (lightweight version)
├── airmeishiTests/ # Unit tests
└── airmeishiUITests/ # UI testsTroubleshooting
Dependencies not resolving
If Swift Package Manager fails to resolve dependencies:
- In Xcode, go to File → Packages → Reset Package Caches
- Clean the build folder: ⌘+Shift+K
- Rebuild: ⌘+B
MultipeerConnectivity not working
Make sure you’ve added the required permissions to Info.plist:
NSLocalNetworkUsageDescriptionNSBonjourServices
Simulator networking issues
Try resetting the simulator’s network settings:
xcrun simctl shutdown all
xcrun simctl erase allThen restart Xcode and try again.
Last updated on