Some checks failed
GameCult iOS 14 IPA / ipa (push) Has been cancelled
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>
59 lines
2 KiB
YAML
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
|