Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
PlayCover: Run iOS apps and games on the M1 Mac (github.com/letscoder)
122 points by mmastrac on Aug 13, 2021 | hide | past | favorite | 67 comments


Just tried with Disney+ and Minecraft. The Minecraft install failed as usual with "The developer did not intend this app to run on this platform." (This is not a server-side check BTW, Apple has it baked into their IPA encryption.) As for Disney+ it just completely failed to decrypt or install.


Apparently this is intentional since macOS 11.3

I found more in-depth info by following the GitHub link, then YouTube description: https://www.applegamingwiki.com/wiki/Sideload_apps_not_on_Ap...

Looks like a lot of trouble just to use software you payed for, the way you prefer.


> Looks like a lot of trouble just to use software you payed for, the way you prefer.

I use a lot of proprietary software too, but I don't see any point or reason to demand that I should be able to use the proprietary software the way that I want.

If you want freedom to use software the way you prefer, use open source software. I write open source software because I think open source is both important, and because it is beneficial both to myself and others.

I run proprietary and open source software side by side. And software that lives forever is the exception not the rule in either case.

Whether you pay with your money or your time, almost all software has an end of life at some point. For any number of reasons. Sometimes it's an open source developer that stops maintaining the software and noone has the time nor capacity to pick up the work. Sometimes it's the company behind a proprietary piece of software that goes bankrupt, or the company is acquired and the developers put to work on something else. Or... any number of reasons.

About the only thing that you can really do in the end, if you want ultimate control, is to develop the software yourself. But that has a huge cost too, which is the amount of your time that you put into it. Or, we can use the software that others make and admit to ourselves that we are not in control of the future of that software nor how we will be able to use it. And in the end we all have to do so with a lot of software that we use, because no one single person is able to maintain all of the software that they rely on, from the OS to the apps and across devices – it's just way too much code and way too much of everything.

And this brings me to the point which is to say, factor this into the consideration when making decisions. Buy a piece of software because it provides value given the current state of things. And be wary of to what extend you allow yourself to be locked into any one app or platform. Don't keep your data on their platform only. Export data to a neutral format and neutral storage medium regularly, so that you have access to it in the future. And if the software makes this impractical, decide which is worth more, the immediate benefit, or the future. Sometimes the answer is immediate benefit, but I think we are susceptible to appreciate immediate benefit even in cases where we should be considering the future more.

I use a MacBook Pro M1 and an iPhone because they provide value to me. They provide a platform that is comfortable to use and which suits me. But my files and my life is not tied too strongly to Apple, and my desktop computer runs Linux and my servers run FreeBSD. And if a piece of software does not fulfill what I need it to, I find an alternative piece of software or I find a different way of doing things.


buying something usually makes you the owner of that thing. And as such to use it the way you want, even if that means breaking it ( you may just loose the waranty, which is perfectly acceptable). If you buy a mac and an iOS app, i don't see any reason why you couldn't try to have the two work together if that's technically possible. Apple may add additional code to prevent that, and then you should be allowed to remove it.

It's the regular way things work with ownership.


> If you buy a mac and an iOS app, i don't see any reason why you couldn't try to have the two work together if that's technically possible. Apple may add additional code to prevent that, and then you should be allowed to remove it.

From the point of view of Apple I can see at least three reasons why they'd want to prevent arbitrary iOS apps from running on macOS.

- The developer of the iOS app may not want people to use the iOS version on macOS, because they already have a version of the software made for macOS that they want people to buy instead.

- Software made for iOS does not necessarily work all that well on macOS. Both because of the difference between touch screen and mouse paradigms, and because of iOS apps being made to run in a more constrained environment.

- Beyond the above point being harmful both to end-users and to Apple, it's also harmful to the developers of the app because they have to deal with support requests and negative reviews from people running the software in a way it was not designed to be run. Similar to the way that it was with Linux users for this one game developer: "Game dev: Linux users were only 0.1% of sales but 20% of crashes and tickets", https://news.ycombinator.com/item?id=18845205

And what I am saying is, if you want the freedom, why invest into proprietary software in the first place? Or if you want the proprietary software, why insist on being able to do whatever you want with it?

And as for ownership, when you license proprietary software you are almost never being sold ownership of the software. You are paying for a license to use it. And if you think that this is bad, again, open source is much better in line with your desires.


the drift from purchasing a software copy to a software license to use is an interesting one from a historical POV.

I'm 100% convinced most people purchasing apps on the store don't realize the distinction until they're suddenly prevented from launching the app the way they want...


Apple simply allowed developers to decide whether their software will be available on M1. By default it is, so they have to opt-out if they don't want to.

You may dislike the way it works, but developers clearly want to control the deployment platforms.


Don't developers have the right to decide when and how people can run their software?


i don't see why though.. once they've sold the software copy ( through the channel they want), it doesn't belong to them anymore


First-sale doctrine says probably not, although I'm aware that legally they may be able to work around that.


It’s actually possible to bypass and run any iOS app, but it’s not easy and requires a jailbroken iOS device to decrypt the apps.

I recently followed this guide[0] and it worked.

https://www.applegamingwiki.com/wiki/Sideload_apps_not_on_Ap...


I think it's important people realise that you can have a normal capitalist for-profit software market without monopolies, vendor lock-in or other anti-competitive practices. What a world that would be!


Where can I read about that? I'm under the impression that monopolies, vendor lock-in and other anti-competitive practices are the logical conclusion to capitalism.


It's the logical conclusion to unregulated capitalism. Capitalism is centered around the idea that self-interest leads to the common good. That's true to a large extent, but it relies on healthy competition and a basic level of comfort. If someone is desperate or doesn't have a choice because there's no competition, the concept breaks down.

In reality, there's practically no such thing as unregulated capitalism, but the IT world is as close to an exception as you can find.

Don't have anything specific to read. But, if you notice that anti-competition has been very active and successful in IT, and that more traditional sectors have regulators keeping competition in check, to a greater extent, you might come up with ideas about what to read yourself.


This error message is rich lol, it's Apple who does not want the IPA to run, not the developer who is blamed for no reason.


No, Apple lets developers choose this.


There's no checkbox called "prevent this app to run on M1 Mac" anywhere, only an option to make it visible on the store, that's not the same thing at all as preventing it to run.


There's Checkboxes for iPhone, iPad & Mac, if Mac is unselected then this error will appear.

Very much up to the developer


Except the checkbox is not called "prevent to run on M1". Actually, bringing up the iPad is the perfect counter example since unchecking the iPad checkbox does not prevent your app to run on the iPad, it just will run on the iPad as an iPhone app scaled.


Dude, why are you still arguing? You were shown to be wrong and talking out of your rear end.

Just stop already.


I haven't seen any counterargument yet to what I said so far. I do get it, Apple's does whatever they want anyways, it's their decision, but at least they should own up to what they chose.


It’s very clear how developers can decide to limit the targets for their apps. What are you missing? Maybe I can help explain further.


The checkbox does not say it prevents to run it on the M1 but states about the availability on the store, it's called "Make this app available", I can also help you by providing actual screenshots if you want if you don't believe me.


As a developer, if I untick that checkbox. I expect it not to run on mac M1. I don't want users to be able to run it, from store or otherwise.

I unchecked that box because I haven't developed with mac in mind and don't want to provide bad experience.


And?

Do you think a developer who ticks that checkbox is going to be unhappy with this functionality?


I don't know, nobody asked them? Hence why this error message is poorly worded.


Literally nobody but you cares.


This will not work anymore since Apple blocked sideloading iOS apps natively on M1 Macs as of January 2021.

From [0]

> The change itself was made to the App Store system that delivers the actual .IPA file and it is all part of Apple’s APIs that manage the DRM (Digital Rights Management) protections of the operating system. Because of this, it’s unlikely that a workaround will present itself in the future.

Just look at the issues section, the same errors appear. [1]

[0] https://9to5mac.com/2021/01/19/apple-blocks-m1-mac-iphone-ap...

[1] https://github.com/Letscoder/PlayCover/issues


Looks like there are ways to do it by removing DRM and other shenanigans. I don't own an M1 though, just interesting reading:

https://www.applegamingwiki.com/wiki/Sideload_apps_not_on_Ap...


Big Sur already supports iPad apps on M1 natively, out of the box.

You just download the iPad version from the App store and it runs automagically.

I even did a blog post about it: https://chrisbergeron.com/2021/06/16/Pushover-Desktop-Yes-on...


Didn’t apple enable a block against installing IPAs that the developer didn’t authorise to run on macs? https://appleinsider.com/articles/21/02/09/apple-again-bars-...


I think Apple has adopted a denylist instead of permitlist approach. They let all iPad and iPhone apps run unless the developer puts their app on the denylist.


No, its a whitelist. There are plenty of abandoned apps that haven't been updated in years, which I would like to run on M1, but aren't available.


It’s a whitelist, but it’s opt-out. You have to specifically check “do not let this app run on Mac” in the App Store Connect portal.


Guys, an opt-out whitelist is per definition a blacklist.

I.e what is done explicitly defines the color. Explicit Allow (blacklist opt out) -> whitelist Explicit Deny (whitelist opt out) -> blacklist


Except that old apps that aren’t updated, are not put on the whitelist. (This is what I understand from the comments above.)


> It’s a whitelist, but it’s opt-out.

That's a blacklist.


If it's a whitelist or a blacklist is really just an implementation detail.

The key here is that the developer can choose to opt-in/out when uploading to the mac store (defaulting to opt-in), however older apps will be opt-out by default (as the developer didn't have this choice when they uploaded).


What applies to this conversation, however, is the correct use of terms and to not use the opposite, incorrect term.


Well if you want to get technical on terms, it’s probably not implemented as either a whitelist or a blacklist and is probably just a database field which was defaulted to false during the migration.

And because it’s likely implemented like that, you can either generate a whitelist or blacklist if you want, but in reality it’s highly unlikely it’s implemented as either of these things.

But regardless it seems like this whole thread is just about semantics anyway.


Isn't that because the apps haven't been recompiled for ARM64 though?


No iPad has ever run intel, and Apple went 64 bit over half a decade ago.


Yes in 2014 they made the move. The first iPad is from 2010. So we have 4 years worth of old arm compiled apps. I don‘t understand the intel part though.


Since you have root couldn't you just patch the runtime to whitelist the app you want to run?


It does a server-side check.


[flagged]


There are good reasons to not allow some mobile apps to run on a laptop or desktop. For example for some games you might have an competitive advantage playing them on a computer instead of a mobile devices. Beside that there are also impacts on the developer / company with additional training, documentation and support which might simply not make any sense to them based on their app and business model.


We as a company made the decision not to include some apps right from the start. It has mainly to do with the support, maintenance and the looks of the product. My old CEO told me after I asked him why we don‘t put our games to more platforms. „Publishing them is easy. Then you need to actively support them.“ I know from testing that most of our games looks and works good on M1. But we don‘t add it to our QA cycle. But I understand your point as well.


[flagged]


I don‘t know about you but in the last 8 years or so my job was it to maintain multiple games in different stores (playstore, appstore, kindle, etc.) The amount of things that changed over the years that had to be actively maintained in order to be able to push new versions to these stores is huge. Sure if you have a free app that just uses a minimum API and in case of iOS is somewhat responsive you can do a fire and forget publish.

But the moment you have a tighter integration with the system with a custom login or maybe ads and some inApp products you are in for a fun ride if you want users to get the latest and greatest version. The moment you have ingame products that are paid with real money you will have the added joy of dealing with customers and issues with said payments. The. One the yearly API deprecations with soft force updates to the latest build tools and so forth.

Also OpenSourcing a game is not just a push of a button on GitHub. For bigger projects and companies it means lawyers have to get involved.


My understanding is that not denying your app to run on M1 Macs means it appears in the Mac App Store.

So a user who has never used the app on iOS can go in the store, pay money for the app, and try to use it on their Mac.

So yes, that does create an implication of support by the developer for that app running on that platform.

That is a different scenario than removing access to download an app on your phone that you purchased in the past. You can remove the app from the store and still allow downloads for existing users.


I excluded my company’s app from running on M1. It relies on iPhone hardware (specifically the microphone, and all our training data was recorded from iPhones), and we found the experience on M1 to be abysmal.

So perhaps, many developers who exclude their app from running on M1 may be doing it for technical reasons.


[flagged]


Counterpoint - he may not want new users to have their first experience be one leading to them rating 1 star and requesting refund.


There's legitimate reasons. Some iPhone applications simply don't work properly or at all on Big Sur.


At least one app I've tried (Logic Wiz sudoku) failed to get past the loading screen. Any insight? Not sure if it's an api that isn't implemented or a data storage issue?


Do you know how does in app purchase work in that configuration ?


Doing it the way you describe requires an Apple ID, which requires a phone number and email address, and also transmits your unchangeable hardware serial number (a supercookie) to Apple when you launch the App Store.

I believe it also requires that system integrity protection not be disabled, so any other Apple spyware in macOS (eg serial-linked APNS phone-home) cannot be disabled.


Just a note that if you have a jailbroken iPhone, you may be able to extract unencrypted .ipa files to use with this.


Now that’s a tip. Are there any tools for this?


Doesn't Big Sur on M1 already do this? I thought that was one of the major selling points?


Not by default, not anymore. The developer has to check a box to allow it. If it’s not allowed, macOS won’t run it.


That's kinda silly, but I see why Apple would do that. I guess it's a good thing this exists for power users then!


I hate that I have to ask this, will Apple be able to shut this down?


If a software producer sells or distribues their program outside of the Apple app store then Apple can't stop them, but they could kick them out of the app store. I can't see why they would do that though, as it would be a loose loose situation. As long as it's a separate platform my guess is that they will ignore it?


Yeah but I remember there was a hack to get the IPA's to run on M1 and then Apple shut that down somehow.


It wasn’t a hack, you can just install IPAs normally, apple just added a server side check to prevent you from doing that for apps that weren’t in the mac store: https://appleinsider.com/articles/21/02/09/apple-again-bars-...


Sent me to some sketch site that sells cracked iOS apps and was also offering to pay cash for my developer account?


Ah perfect! I really wanted to play Genshin Impact on my M1 MBA!


This sounds very promising! I imagine that eventually it’ll integrate with some way to find IPAs, and have a simpler way to detect input. Good start




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: