Skip to Content
Contributing

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/airmeishi

Open in Xcode

open airmeishi.xcodeproj

All 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 tests

Troubleshooting

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:

  • NSLocalNetworkUsageDescription
  • NSBonjourServices

Simulator networking issues

Try resetting the simulator’s network settings:

xcrun simctl shutdown all xcrun simctl erase all

Then restart Xcode and try again.

Last updated on