SolarMoon is the iOS / tvOS client of the SolarFlare game-streaming stack. It is a derivative of moonlight-stream/moonlight-ios (the upstream Moonlight client for iOS / tvOS) and the same client-side protocol that Moonlight uses to talk to Sunshine and NVIDIA GameStream. The binary name, bundle identifier, and underlying GameStream / NV stream implementation are unchanged from upstream; this fork is a brand-identity pass on top.
SolarMoon is paired with SolarFlare (the CachyOS / Linux fast-path host) by the same maintainer. The web UI on the host is also branded as SolarFlare; this app is its client.
Visual / brand identity only. The streaming protocol, networking stack, controller handling, on-screen keyboard, and gamepad emulation are byte-identical to upstream. The intended audience is anyone who has built the SolarFlare host and wants a matching iOS client.
- App name in
InfoPlist.stringschanged from "Moonlight" to "SolarMoon". - Bundle identifier changed from
com.moonlight-stream.Moonlighttocom.solarmoon.app. - Theme added (
Limelight/Theme/SolarFlareTheme.h+.m) with the SolarFlare brand colors (deep slate background, gold primary, flare-orange accent) as aUIColorcategory. - Logo assets added under
Images.xcassets/SolarFlareLogo{,Large}.imageset/(sun + flare burst, generated PNGs at @1x/@2x/@3x). - Launch screen (
Launch Screen.xib) repainted with the dark SolarFlare palette and the new logo. - The upstream AppIcon (the round moon glyph) is left as-is for now. To make the iOS home-screen icon match, replace the files in
Images.xcassets/AppIcon.appiconset/with a 1024×1024 SolarFlare icon.
- Streaming protocol, NV encoder / decoder, session handshake, encryption, RTSP port (48010), HTTPS port (47984) — all upstream.
- Controller handling (
Limelight/Input/), on-screen gamepad overlay, keyboard, pen / touch, motion — all upstream. - App discovery (mDNS /
_nvstream._tcp). - Database schema, networking, performance tuning.
- Submodules (
moonlight-common/,X1Kit/).
The build steps are unchanged from upstream:
- Install Xcode from the App Store page
git clone --recursive https://github.com/vindeckyy/SolarMoon.git- If you've already cloned without
--recursive, rungit submodule update --init --recursive
- If you've already cloned without
- Open
Moonlight.xcodeprojin Xcode - To run on a real device, locally modify the signing options:
- Click on "Moonlight" at the top of the left sidebar
- Click on the "Signing & Capabilities" tab
- Under "Targets", select "Moonlight" (for iOS / iPadOS) or "Moonlight TV" (for tvOS)
- In the "Team" dropdown, select your name (sign into Xcode with your Apple account if your name doesn't appear)
- The "Bundle Identifier" is already set to
com.solarmoon.app; change it to something unique (e.g. add your name) so it doesn't conflict with other SolarMoon builds. - Now you can select your Apple device in the top bar as a target and click the Play button to run.
- The moonlight-stream/moonlight-ios maintainers and contributors. This fork would not exist without their work; SolarMoon is a derivative under GPL-3.0.
- The Moonlight PC / Android / embedded clients are separate projects. See the Moonlight docs wiki for the full set.
- The VoidLink fork of Moonlight-iOS (formerly moonlight-zwm) for showing that a heavy UI rewrite of the iOS client is possible on top of the upstream codebase.
GPL-3.0-only, inherited from upstream Moonlight for iOS / tvOS. All fork additions are also GPL-3.0-only. See LICENSE.txt for the full text.