moonlight-stream / moonlight-ios

GameStream client for iOS/tvOS
GNU General Public License v3.0
1.13k stars 289 forks source link

Moonlight only supports adding PCs on local network on iOS/tvOS #417

Closed Alexie7777 closed 4 years ago

Alexie7777 commented 4 years ago

Is it the IOS limitation?

cgutman commented 4 years ago

Apple's App Store Review Guideline 4.2.7a states:

The app must only connect to a user-owned host device that is a personal computer or dedicated game console owned by the user, and both the host device and client must be connected on a local and LAN-based network.

Therefore, Moonlight does not allow you to add PCs that aren't on your local network anymore. This was a hard requirement by Apple's App Store Review team.

If you have to add your PC remotely, you may have success using a VPN like ZeroTier which looks like a LAN connection to other apps.

abusse commented 4 years ago

Wouldn't it be possible to make/release a dedicated version that only allows desktop access like Shadow reverted to after the hassle with the quoted rules or restrict internet hosts to that functionality?

cgutman commented 4 years ago

Nope, I proposed this exact thing to them and they rejected it.

abusse commented 4 years ago

The first or the latter one (or both)? Was there something different that you proposed compared to how Shadow is doing it with their revised tvOS/iOS app?

cgutman commented 4 years ago

Both. My proposed solution was essentially to act like a remote desktop app, similar to Microsoft Remote Desktop.

I asked about other game streaming apps that do the same thing, and they told me they are investigating those too for possible policy violations.

abusse commented 4 years ago

May I ask about the timeline when you had this "discussion" with Apple? I'm asking because the Shadow app was kicked from the App Store for exactly that reason, but then re-allowed after removing the direct game access and reverting to remote desktop only. Their argument sounds like you had asked before that happened? Maybe it's worth another try with this precedent? Or they have additional information what is necessary to be allowed into the App Store like the Shadow app was.

cgutman commented 4 years ago

The talks were after Shadow was re-approved.

I'm not going to be contesting this with Apple again anytime soon. Due to the review proceedings, I was left unable to ship any new Moonlight builds (even bugfixes) for over 3 months while this whole situation played out. If Nvidia had released a GFE update that required a Moonlight update, iOS users would have been unable to use the app anymore. It's simply not worth the risk to contest it.

sean256 commented 3 years ago

How easy is it to disable the block should one build from source?

abusse commented 3 years ago

It is pretty easy. There is just one definition of ENABLE_APP_STORE_RESTRICTIONS that enforces the App Store restrictions. Just make sure that you don't have set it during build and all App Store restrictions should be disabled (cf this).

witchcraftsman commented 3 years ago

If you have to add your PC remotely, you may have success using a VPN like ZeroTier which looks like a LAN connection to other apps.

Since ZeroTier can't be used on tvos, what are the options other then source building (guess it'd also require apple dev account to deploy to the box, atm having none) ? EDIT: I guess joining separate LANs with VPN would work but encryption overhead etc would kill its purpose

redlinejoes commented 3 years ago

If you have to add your PC remotely, you may have success using a VPN like ZeroTier which looks like a LAN connection to other apps.

Since ZeroTier can't be used on tvos, what are the options other then source building (guess it'd also require apple dev account to deploy to the box, atm having none) ? EDIT: I guess joining separate LANs with VPN would work but encryption overhead etc would kill its purpose

This guy gets it. Although you typically want encryption, there is unnecessary overhead here with regards to streaming service providers infrastructure services. I’m planning to build from source and remove the limitation myself. I’m not interested in paying Apple the $99 annually at this time though. So I will go another step further and build a CI/CD server to push the build every week or as needed. If you’re interested in helping out, or learning from my experience, don’t hesitate to reach out. I’m so appreciative of moonlight being open source and these companies are all seemingly trying to stifle remote streaming service providers offerings. It wreaks of anti competitive action.

Heath123 commented 3 years ago

Please can someone host builds with this enabled? People can sideload them with AltStore or a jailbreak

boazvdwansem commented 3 years ago

Please can someone host builds with this enabled? People can sideload them with AltStore or a jailbreak

Please?

Heath123 commented 3 years ago

If no one else is going to maybe I could but I’m not sure if I need a Mac OS VM to build it (I don’t have a Mac)

Heath123 commented 3 years ago

I'm installing Mac OS in a VM now, if I get it built I'll upload an IPA

Heath123 commented 3 years ago

image

boazvdwansem commented 3 years ago

I'm installing Mac OS in a VM now, if I get it built I'll upload an IPA

Had any success yet? I'm currently installing Mac OS in a VM as well, will post if I have anything to share.

redlinejoes commented 3 years ago

I have actual macOS physical systems but in order for me to do this, I would have to pay the $99 Apple Developer fee or be required to rebuild it every 7(days). That is the requirement if you do not jailbreak your iOS device which I had no intention of doing. This is really a headache and because I can use other apps like Splashtop, I've just stopped using Moonlight. I expected more "push back" by Moonlight senior dev towards Apple's anticompetitive tactics. How are you guys getting around the Apple developer costs? Or do you plan to use CI/CD to just keep pushing a new version every 7, or whatever number, of days?

redlinejoes commented 3 years ago

If no one else is going to maybe I could but I’m not sure if I need a Mac OS VM to build it (I don’t have a Mac)

As far as I know, it requires Xcode and TestFlight on macOS, so you do need an Apple system and you need an Apple Developer account. I've been an Apple Developer before so I'm familiar with the processes and procedures, but I'm open to hearing if there are other ways this can be done. I just don't want to jailbreak my device.

boazvdwansem commented 3 years ago

If no one else is going to maybe I could but I’m not sure if I need a Mac OS VM to build it (I don’t have a Mac)

As far as I know, it requires Xcode and TestFlight on macOS, so you do need an Apple system and you need an Apple Developer account. I've been an Apple Developer before so I'm familiar with the processes and procedures, but I'm open to hearing if there are other ways this can be done. I just don't want to jailbreak my device.

I'm using a jailbreak for signing, you could also use altstore for signing.

boazvdwansem commented 3 years ago

Schermafbeelding 2021-08-05 021630 Does anyone know how to fix this?

don17sch commented 3 years ago

https://drive.google.com/drive/folders/13ebjY2qSVJebr2hLjTXTHkD981bl0Tb1?usp=sharing

Here you go. ipa built with the app store restriction removed

boazvdwansem commented 3 years ago

https://drive.google.com/drive/folders/13ebjY2qSVJebr2hLjTXTHkD981bl0Tb1?usp=sharing

Here you go. ipa built with the app store restriction removed

Thank you very much. Do you happen to know why I got that error above?

boazvdwansem commented 3 years ago

Well it seems like even without the restriction on it won't work :/

redlinejoes commented 3 years ago

Well it seems like even without the restriction on it won't work :/

I was afraid of that. Maybe the Moonlight discord would be kind enough to give some advice. Have you tried there?

boazvdwansem commented 3 years ago

Well it seems like even without the restriction on it won't work :/

I was afraid of that. Maybe the Moonlight discord would be kind enough to give some advice. Have you tried there?

How did you get it to build tho? By looking at the commits I found that https://github.com/moonlight-stream/moonlight-ios/commit/dbab07838d29388ac9e547905e00836d54c6dd17 Is the one where it’s introduced, by setting these values to false it should work.

don17sch commented 3 years ago

https://drive.google.com/drive/folders/13ebjY2qSVJebr2hLjTXTHkD981bl0Tb1?usp=sharing Here you go. ipa built with the app store restriction removed

Thank you very much. Do you happen to know why I got that error above?

You needed to run this command in terminal. 'git submodule update --init --recursive' you did not have the core part of moonlight added yet

don17sch commented 3 years ago

Well it seems like even without the restriction on it won't work :/

I tried at least. sorry it did not work for you

redlinejoes commented 3 years ago

Well it seems like even without the restriction on it won't work :/

I tried at least. sorry it did not work for you

But did it work for you?

don17sch commented 3 years ago

Well it seems like even without the restriction on it won't work :/

I tried at least. sorry it did not work for you

But did it work for you?

I just built it with the flag for app store restrictions turned off. I personally do not know how to connect to my pc remotely

boazvdwansem commented 3 years ago

It seems like the issue is coming from a unreachable file: http://ip-here:47989/serverinfo, I’ve tried forwarding already but it still isn’t reachable, only through my local network. Other than that, removing the flag actually seems to work.

don17sch commented 3 years ago

It seems like the issue is coming from a unreachable file: http://ip-here:47989/serverinfo, I’ve tried forwarding already but it still isn’t reachable, only through my local network. Other than that, removing the flag actually seems to work.

did you install this tool to check that your pc can host over the internet? https://github.com/moonlight-stream/Internet-Hosting-Tool

boazvdwansem commented 3 years ago

It seems like the issue is coming from a unreachable file: http://ip-here:47989/serverinfo, I’ve tried forwarding already but it still isn’t reachable, only through my local network. Other than that, removing the flag actually seems to work.

did you install this tool to check that your pc can host over the internet? https://github.com/moonlight-stream/Internet-Hosting-Tool

Yep, canyouseeme.org even says the port is opened but yet I can only reach locally. I’ve also tried using xampp to host the serverinfo file but seems like it needs to be updated after connecting so that won’t work either.

cgutman commented 3 years ago

Just to confirm, you're just typing your IP address in the Add PC field, not a URL or anything like that, correct?

Some routers don't allow you to access services via the WAN/Internet address of your router while you're on the LAN (called NAT hairpinning). Make sure you're not connected to the same network as your PC and router when you are trying to add the PC using the WAN IP address.

boazvdwansem commented 3 years ago

Just to confirm, you're just typing your IP address in the Add PC field, not a URL or anything like that, correct?

Some routers don't allow you to access services via the WAN/Internet address of your router while you're on the LAN (called NAT hairpinning). Make sure you're not connected to the same network as your PC and router when you are trying to add the PC using the WAN IP address.

Thank you so much it’s working now, it was because I was connecting from the same IP address.

boazvdwansem commented 3 years ago

Just to confirm, you're just typing your IP address in the Add PC field, not a URL or anything like that, correct?

Some routers don't allow you to access services via the WAN/Internet address of your router while you're on the LAN (called NAT hairpinning). Make sure you're not connected to the same network as your PC and router when you are trying to add the PC using the WAN IP address.

Am I allowed to redistribute the IPA online? @cgutman

don17sch commented 3 years ago

should I have asked for permission before posting the IPA @cgutman if so I am sorry for not doing so

cgutman commented 3 years ago

Yes, you're allowed to redistribute binaries from GPLv3 licensed projects as long as you link back to the source code.

don17sch commented 3 years ago

Just to confirm, you're just typing your IP address in the Add PC field, not a URL or anything like that, correct? Some routers don't allow you to access services via the WAN/Internet address of your router while you're on the LAN (called NAT hairpinning). Make sure you're not connected to the same network as your PC and router when you are trying to add the PC using the WAN IP address.

Am I allowed to redistribute the IPA online? @cgutman

feel free to message me when you need me to build new ipa files.

boazvdwansem commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

redlinejoes commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN).

When going to your URL, I do not see where there is a moonlight IPA listed.

Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

don17sch commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN).

When going to your URL, I do not see where there is a moonlight IPA listed.

Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

My IPA was built with the $99 a year license already attatched

redlinejoes commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

My IPA was built with the $99 a year license already attached

Would you be interested in forking and adding it to your Github? I believe it would be a popular addition to your repo if you choose to do that. I intended to do this same thing myself, but you guys beat me to it. Whatever you decide, thanks so much for the support from all of you that have helped. I'm very grateful to see others who feel the same way I do about this restriction from Apple. I feel really bad for Cameron who got put in this position by Apple.

boazvdwansem commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN).

When going to your URL, I do not see where there is a moonlight IPA listed.

Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

I tried connecting inside my LAN to WAN, that was the issue. The URL I posted is to add in a apt package manager if jailbroken (Cydia for example). The only way around the 7 days limitation that I know of is AltStore/ jailbreak. I have uploaded an IPA I built myself to: https://github.com/boazvdwansem/ios-repo/tree/main/ipas, but it should be t almost identical as the one @don17sch posted

redlinejoes commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

I tried connecting inside my LAN to WAN, that was the issue. The URL I posted is to add in a apt package manager if jailbroken (Cydia for example). The only way around the 7 days limitation that I know of is AltStore/ jailbreak. I have uploaded an IPA I built myself to: https://github.com/boazvdwansem/ios-repo/tree/main/ipas, but it should be t almost identical as the one @don17sch posted

Awesome, thanks for clarifying, and thanks for all the help. You guys are awesome.

don17sch commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

My IPA was built with the $99 a year license already attached

Would you be interested in forking and adding it to your Github? I believe it would be a popular addition to your repo if you choose to do that. I intended to do this same thing myself, but you guys beat me to it. Whatever you decide, thanks so much for the support from all of you that have helped. I'm very grateful to see others who feel the same way I do about this restriction from Apple. I feel really bad for Cameron who got put in this position by Apple.

forking this does not make sense as all I did was turn off a flag in build settings. also if I fork it you will still need to sign it yourself when you build it. I only signed those specific IPA files

redlinejoes commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

My IPA was built with the $99 a year license already attached

Would you be interested in forking and adding it to your Github? I believe it would be a popular addition to your repo if you choose to do that. I intended to do this same thing myself, but you guys beat me to it. Whatever you decide, thanks so much for the support from all of you that have helped. I'm very grateful to see others who feel the same way I do about this restriction from Apple. I feel really bad for Cameron who got put in this position by Apple.

forking this does not make sense as all I did was turn off a flag in build settings. also if I fork it you will still need to sign it yourself when you build it. I only signed those specific IPA files

Thank you for clarifying.

boazvdwansem commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

My IPA was built with the $99 a year license already attached

Would you be interested in forking and adding it to your Github? I believe it would be a popular addition to your repo if you choose to do that. I intended to do this same thing myself, but you guys beat me to it. Whatever you decide, thanks so much for the support from all of you that have helped. I'm very grateful to see others who feel the same way I do about this restriction from Apple. I feel really bad for Cameron who got put in this position by Apple.

forking this does not make sense as all I did was turn off a flag in build settings. also if I fork it you will still need to sign it yourself when you build it. I only signed those specific IPA files

It’s possible to use someone else’s certificate? I thought that to install it to my device I’d need to sign it myself.

boazvdwansem commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

I tried connecting inside my LAN to WAN, that was the issue. The URL I posted is to add in a apt package manager if jailbroken (Cydia for example). The only way around the 7 days limitation that I know of is AltStore/ jailbreak. I have uploaded an IPA I built myself to: https://github.com/boazvdwansem/ios-repo/tree/main/ipas, but it should be t almost identical as the one @don17sch posted

Awesome, thanks for clarifying, and thanks for all the help. You guys are awesome.

All the credit goes to @cgutman, @abusse and @don17sch. All I did was rebuilt the IPA and post it for others to download. I also made a Reddit post which already has ~200 upvotes: https://www.reddit.com/r/jailbreak/comments/p0pxiu/free_release_moonlight_streaming_service_unlocked/?utm_source=share&utm_medium=ios_app&utm_name=iossmf.

don17sch commented 3 years ago

I have uploaded the file to my repo at https://boazvdwansem.github.io/ios-repo/ for anyone interested

Thanks for plugging away at this, and just to confirm: You were trying to connect to your WAN IP from inside your LAN and that is why you said it did not work? In order to connect to your WAN IP, you need to be on the Internet (WAN). When going to your URL, I do not see where there is a moonlight IPA listed. Is the IPA you are hosting the same one that was provided by don17sch? I already downloaded his and so now my next question is, do you need to keep rebuilding this every 7 days? Or is there a way around that limitation without paying Apple $99/year?

My IPA was built with the $99 a year license already attached

Would you be interested in forking and adding it to your Github? I believe it would be a popular addition to your repo if you choose to do that. I intended to do this same thing myself, but you guys beat me to it. Whatever you decide, thanks so much for the support from all of you that have helped. I'm very grateful to see others who feel the same way I do about this restriction from Apple. I feel really bad for Cameron who got put in this position by Apple.

forking this does not make sense as all I did was turn off a flag in build settings. also if I fork it you will still need to sign it yourself when you build it. I only signed those specific IPA files

It’s possible to use someone else’s certificate? I thought that to install it to my device I’d need to sign it myself.

I do not know the answer for sure. maybe @cgutman knows?