Developed for: game play, general remote desktop application.
This fork has developed with too many deviations
from the original version (go to the release page for details). It's almost impossible, and I'm not interested in merging the modifications into the official repository.
Please acknowledge the source when releasing modified versions based on this fork. Silent code merging and functional plagiarism will be met with disdain.
功能说明清单、最新IPA文件下载,请前往Release页面查看, 本页面不再更新。目前的代码提交在noWaterMark
分支。
Feature list on this page will not be updated anymore, please check the release page for details and latest IPA download.
For latest coding commits go to branch noWaterMark
.
https://testflight.apple.com/join/1JDEKywe
Or just install ipa in the release page, if you got sideloading methods.
如果你有在用Bilibili, 请关注True砖家
,了解该fork的最新消息。
If you are on Bilibili, subscribe True砖家
to get the latest news of this fork:
https://b23.tv/A0F9v7n
https://github.com/King0fSpace/moonlight-ios-CustomOSC
On screen control customization of my version originated form this repo (with much more improvements)
To prevent plagiarism by copycat "阿西西的日常 (Axixi's Daily Life)", this repository temporarily suspended public code commits during July 2024.
【阿西西: 我撒谎、偷窃、白嫖,但我是大佬Up主】 【 Axixi: I lie, I steal, I cheat, but I'm a big shot uploader 】 https://b23.tv/9noIx3i
【"阿西西的日常" : 游戏串流界小偷、假大佬、毒瘤up主】
【 "Axixi's Daily Life": A thief in the game streaming community, a pretender, and a toxic uploader】
https://b23.tv/Z0ChSiD
https://www.bilibili.com/video/BV1M1421C7FD
这是首个公开的 iOS 多点触控透传fork。
原版本基于 moonlight-ios 9.0.0 ,2024.2.4 提交的 moonlight-common-c 子模块。 已于2024.04.30合并官方仓库9.0.2的代码修改, 并更新moonlight-common-c。
2023年12月,原神PC版的隐藏触屏UI被热心网友发现。 我作为一个从ipad mini系列开始入坑原神、PC上操作不来键鼠,更不会用手柄的资深搓屏玩家, 开始对ipad上用触屏UI直接操作原神充满期待。 于是我在 某三流Up主 的QQ群里承担了大部分iOS版的测试,在2024年元旦前,终于有了第一个差不多通用的多点触控iOS版本。但这个版本并不完善, 多点触控经常性的卡死对游戏体验影响非常大。
由于该 三流Up主 作为手柄玩家和非专业iOS开发者对iOS moonlight多点触控串流并上不心,2024年4月本人不得不亲自下场,找到bug根本原因并提交解决代码, 使之第一次可以正常使用多点触控。
-
经过持续的优化, 多点触透传机制已经非常可靠。
After subsequent optimizations, the multi-touch pass-through mechanism has become very reliable.
-
The most welcomed "touch pointer velocity (sensitivity) tweak" feature, which was first implemented on my Moonlight-Android fork, is now available on iOS version.
触点在屏幕右边生成时, 其移动速度将按设定值缩放, 在剩下的左边屏幕区域则直接透传触点坐标。透传区与调整区的分割位置可调。
The pointer velocity tweak zone is on the right side of screen with configurable width, while on the rest part of screen, original coordinates of pointer will be passed through to the remote PC.
-
First implemented stream view lifting for local keyboard, prevent remote typing view from being blocked by local keyboard:
由于iOS悬浮键盘太难用, 只好做了这个功能。
I did this because iOS floating keyboard sucks.
注意第二张图, 请用手势让软件知道你要在哪里输入文字, 唤醒键盘后串流视图才会抬升到适当的高度,避免文字输入区域被键盘挡住。以下是gif动图示例:
Use Gesture to let the software know where the remote input field is, then stream view will be lifted appropriately (not going to be covered by keyboard). Here's a gif example:
-
由于米家游戏UI左边的方向轮靠近屏幕边缘, 原版的退出桌面手势识别非常容易高频操作下触发,你无法想象在深境螺旋里,桌面突然退出的绝望。我不得不自己写了一个识别器替代iOS原生API, 要求从屏幕边缘滑动到一定距离才能触发退出桌面。
并且滑动距离的触发门槛、以及要求从哪个边缘开始滑动,已加入设置菜单:
Due to the Mihoyo game UI's directional wheel on the left being close to the screen edge, the original exit gesture recognition was frequently triggered during intense touch operations. You cannot imagine the despair of suddenly exiting from desktop in the Genshin Impact Spiral Abyss. I had to write a recognizer myself to replace the iOS native API, requiring a swipe from the screen edge to a certain distance to trigger the exit to the desktop. The trigger threshold for the swipe distance and which edge to start the swipe from have been added to the settings menu:
-
Moonlight-iOS官方版在检测到屏幕上有三个触点时,直接触发本地键盘切换,这种机制将使三触点的拖动完全失效。而如果采用iOS API提供UITapGestureRecognizer, 手势识别成功率将降低,甚至出现连续无法识别的情况。 为此我重写了一个TapGestureRecognizer, 识别率几乎达到100%且不影响三触点拖动。为避免误触导致键盘意外唤醒, 为触发手势识别所要求的手指数量 增加了设置菜单。推荐手机设为三指触发, 平板设为四指或更多手指触发(用平板操作你的手掌可能会碰到屏幕,形成第三个触点)
The official version of Moonlight-iOS triggers the local keyboard switch when it detects three touch points on the screen, a mechanism that makes three-point dragging completely ineffective.
I also tried UITapGestureRecognizer provided by iOS native API: the success rate of gesture recognition would decrease, and even continuous failures could occur. Therefore, I rewrote a TapGestureRecognizer with a recognition rate of almost 100% that does not affect multi-point dragging. To prevent local keyboard from being invoked unexpectedly, I add the required number of fingers for tap recognizer to the setting menu. It is recommended to set 3-finger triggering on phones and 4 or more on tablets (as your palm might touch the screen, forming a third touch point when using a tablet).
这是在平板上将手指数量设置为4的情况:
Here's a *.gif example of setting "Fingers to Tap" to 4 on my ipad mini6:
安装 release 中的 ipa 文件,需要先对文件进行自签名,或者先越狱、安装巨魔商店。 推荐侧载方案:Sideloadly, Altstore.
To install the ipa file in release, you need to find a way to sideload the app on iOS, or try to jaibreak or install trollstore. Recommended sideloading: Sideloadly, Altstore.
Moonlight for iOS/tvOS is an open source client for Sunshine and NVIDIA GameStream. Moonlight for iOS/tvOS allows you to stream your full collection of games and apps from your powerful desktop computer to your iOS device or Apple TV.
Moonlight also has a PC client and Android client.
Check out the Moonlight wiki for more detailed project information, setup guide, or troubleshooting steps.
- Install Xcode from the App Store page
- Run
git clone --recursive https://github.com/moonlight-stream/moonlight-ios.git
- If you've already clone the repo without
--recursive
, rungit submodule update --init --recursive
- If you've already clone the repo without
- Open Moonlight.xcodeproj in Xcode
- To run on a real device, you will need to 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. If your name doesn't appear, you may need to sign into Xcode with your Apple account.
- Change the "Bundle Identifier" to something different. You can add your name or some random letters to make it unique.
- Now you can select your Apple device in the top bar as a target and click the Play button to run.