Thanks for considering a contribution! SimulatorCamera is small and opinionated — we keep it that way.
- No private APIs. Ever. Every symbol we import must be public and documented in Apple's SDK.
- No device overhead. Client code on a real device must compile to a no-op. Guard Simulator-only code with
#if targetEnvironment(simulator). - Localhost by default. Any change that exposes the server on non-loopback interfaces requires explicit opt-in and a loud warning.
- Wire format is a contract. Changes to SCMF need a version bump in docs/PROTOCOL.md and a decoder that handles both versions.
git clone https://github.com/dautovri/SimulatorCamera.git
cd SimulatorCamera
swift test # SDK unit tests
open apps/MacServer/SimCameraServer.xcodeproj # Mac server
open apps/iOSDemo/SimCameraDemo.xcodeproj # Sample iOS app- Branch off
main. - Add/update tests in
Tests/SimulatorCameraClientTests/. - Keep PRs small and focused. One feature / bug per PR.
- Run
swiftformat .andswiftlintbefore pushing (configs in the repo root). - Update CHANGELOG.md under
[Unreleased].
Use the issue templates. For bugs, include:
- macOS + Xcode + iOS Simulator versions
- Minimal repro (ideally a fork of
apps/iOSDemo) - Crash logs /
os_logoutput from both sides
Be decent. We follow the Contributor Covenant.