moonlight-ios/.github/workflows/gamecult-ios14-ipa.yml
Meta Vens 19889385d1
Some checks failed
GameCult iOS 14 IPA / ipa (push) Has been cancelled
Read the Xbox One S BLE controller over IOHID on iOS 14
GameController on iOS 14.4 never exposes the Xbox One S controller on
Microsoft's Bluetooth LE firmware (VID 0x045E, PID 0x0B20) as a
GCController, though iOS connects it as a HID device. ControllerSupport
now matches it with IOHIDManager, parses input report 1 (layout as in
SDL's HIDAPI Xbox One driver) into the existing controller update path,
and drives rumble through output report 3. GCController handling is
unchanged; the IOHID source skips the pad when GameController already
exposes an Xbox gamepad.

Player slot allocation and removal move out of the GCController-specific
code so both sources share them. Arrival events now use the Moonlight
controller's player index rather than the GCController's.

Opening IOHIDLibUserClient needs com.apple.security.iokit-user-client-class;
the IPA workflow embeds it with an ad-hoc signature for TrollStore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:39:41 +01:00

59 lines
2 KiB
YAML

name: GameCult iOS 14 IPA
# Builds an unsigned device IPA for TrollStore on iOS/iPadOS 14.
# Upstream raised the deployment target to iOS 15 in 7c79fcc ("for Xcode 27");
# this branch sits on its parent 159ffdb (target iOS 12) and builds with Xcode 16.
on:
push:
branches:
- gamecult/ios14-build
workflow_dispatch:
permissions:
contents: read
jobs:
ipa:
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Select Xcode 16
run: |
ls -d /Applications/Xcode_16*.app
XC=$(ls -d /Applications/Xcode_16*.app | sort -V | tail -1)
sudo xcode-select -s "$XC/Contents/Developer"
xcodebuild -version
- name: Build unsigned device app
run: |
xcodebuild -project Moonlight.xcodeproj -scheme Moonlight \
-configuration Release -sdk iphoneos \
-destination 'generic/platform=iOS' \
-derivedDataPath build \
CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" \
build
- name: Package IPA
run: |
APP=$(ls -d build/Build/Products/Release-iphoneos/*.app | head -1)
/usr/libexec/PlistBuddy -c 'Print :MinimumOSVersion' "$APP/Info.plist"
# Embed the entitlements with an ad-hoc signature on the main binary;
# TrollStore keeps them when it signs the app on install.
EXE=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleExecutable' "$APP/Info.plist")
codesign -f -s - --entitlements GameCult/TrollStore.entitlements "$APP/$EXE"
codesign -d --entitlements - "$APP/$EXE"
mkdir Payload
cp -R "$APP" Payload/
zip -qry Moonlight-ios14-unsigned.ipa Payload
shasum -a 256 Moonlight-ios14-unsigned.ipa
- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: Moonlight-ios14-unsigned
path: Moonlight-ios14-unsigned.ipa