Apple Begins Rejecting Apps With 'Hot Code Push' Feature (apple.com) 149
Apple has long permitted "hot code push", a feature that allows developers to continuously deploy changes to their mobile apps and have those changes reflect in their apps instantly. This allowed developers to make quick changes to their apps without having to resubmit the new iteration and get approval from the Apple Store review team. But that's changing now. In response to a developer's query, Apple confirmed that it no longer permits "hot code push." The company told the developer: Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability to change your app's behavior or functionality after App Review approval, which is not in compliance with section 3.3.2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2. This code, combined with a remote resource, can facilitate significant changes to your app's behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes.
Yea but they don't (Score:2, Interesting)
As someone who has worked on ios apps big and small, I will tell you the rules for big orgs are not the same vs small. If they want to "hot push" (ghey btw) a scheduled event in Disney Kigndoms, apple won;t say shit. If you want to "hot push" (ghey btw) an update to some pixel avatar app with 3 users, you get rejected.
Re: (Score:2)
etc
There are plenty of MMOs for mobile devices (just not iOS)
https://duckduckgo.com/?q=mmo+... [duckduckgo.com]
Re: (Score:3)
What?
Of course they don't.
You make a new version of the app with all the content a week or whatever before, and allow it to get through whatever review process there is. At a known time, your app starts using those features.
Re: (Score:2)
So you don't tell the users until you get it approved.
Re: (Score:2)
And when your users start asking when you're going to roll out new content for your game, what do you tell them? Marketers have a tough enough time already.
Re: (Score:1)
"Could" is the operative word. By this same logic, every adult male has the tools required to commit rape. Therefore, any time a single adult male is out on the streets after dark without being part of a large group, we must incarcerate him to ensure that he doesn't use those tools for that purpose. See how silly that reasoning sounds when shifted into a different problem space?
Rationally, Apple should penalize developers that abuse this capability to deliberately ship features that they know would be r
Re: For Good Reason (Score:1)
Re: (Score:2)
How is that false equivalence? The original argument is that the only thing preventing everybody from doing bad things is oversight by other people. That's prima facie absurd. Most people will do the right thing even without being watched by other members of their peer group, police, etc. In much the same way, most developers will not abuse the ability to hot patch their code merely because they have that ability.
Re: (Score:2)
No, not really. You're conflating "someone" with "everyone" here. The closed ecosystem provides a benefit because the odds are high that someone will do something bad. Bans on hot-patching provides a benefit only if you assume that everyone will do something bad. This difference is subtle, but critical.
Apple has a number of protections to prevent malicious apps from causing harm—blacklistin
Re: (Score:2)
...See how silly that reasoning sounds...
That's the whole point of drawing a false parallel and then appling reductio ad absurdum, right?
Re: (Score:2)
I actually agreed with the parent logic, but the reason for Apple to do this, for me, is to save their behind in the future. The prevention is not about what's going on right now (most people are doing the right thing), but it is to save their own behind in the future from even one misused case. The breech through the Internet is a lot more difficult to stop, let alone the cost to detect. Even those who are doing the right thing could make a mistake and open a hole to those who are looking to exploit.
Anyway
Re: (Score:1)
Well yeah, the CEO of Disney sits on Apple's board. Of course there will be that sort of influence and exemptions.
Pray I don't change it again (Score:2, Insightful)
Seriously, unless you're part of a big corp with big corp lawyers and money behind you why develop for Apple? You have to buy your way into their walled garden, give up a significant portion of sales to them, and be put through an obscured process to get approval to be published in a store. Which, if you're lucky enough to hit on something that's both novel and popular, is going to fill up with a bunch of clones within days of the first hint of success.
If you're not doing it for the fun of being repeatedly
Re:Pray I don't change it again (Score:5, Informative)
Developers care about eating (Score:3)
You can't eat open source revenues. Most of the open source devs work for some corp or another, after all.
Re: (Score:2)
Why can't the application for accessing said service be a web application that runs in Safari for iOS?
Re: (Score:2)
Perhaps they want to secure the traffic with something better than HTTPS. Of course, I'd then have to ask why it's on a mobile device at all if it really needs that kind of protection.
Re: (Score:2)
I thought Progressive Web Apps [stackoverflow.com] could access device functionality, such as the camera, microphone, location, orientation, etc. Or is Apple deliberately withholding device functionality from JavaScript? To which particular "functionality not available to a browser" are you referring?
Re: Pray I don't change it again (Score:2)
Because browser-based webapps fscking SUCK compared to any halfway-competent native app. Javascript is dog-ass slow on mobile devices, and the user experience is AWFUL. Go ahead, go compare the experience of using walmart.com, amazon.com, or homedepot.com to the experience of using their native apps. It's a night & day difference. The webapps are a minefield of continually-reflowing content with a knack for changing the spot you were trying to touch 250ms ago into some goddamn other link. My blood press
Re: Pray I don't change it again (Score:2)
The issue is 3 things in my opinion:
1) shitty developers that don't understand how to actually build web applications anymore. They rely on 10 different monolithic libraries to render a simple page that basic html/css would do fine without the JS.
2) stupid bosses that want to track every touch you make, every link you click, and every scroll you make. Each action needs to phone home every time you do one of those things.
3) poor optimization on the browser side. Honestly Firefox runs freaking great on my two
Re: (Score:2)
Aside from that, my Android phone cost more than my wife's iPhone 6 Plus (does more, too). I paid for both. I've paid for a few hundred dollars in apps and more than that in in-app pu
Re:Pray I don't change it again (Score:5, Insightful)
Let's see:
I'm a one man shop that does App development as a hobby while simultaneously maintaining a full time job. Having someone handle 24/7 hosting and billing and a sort of rudimentary QA on the final product (so the users will trust it better) is something of value. In many cases, costs and time would be prohibitive for a new, small shop to do all these things itself. So they do something for that 30% other than rubber stamp it.
Also, $99 is a pittance - how much do dev kits from Nintendo, Sony and Microsoft cost?
Now another poster pointing out that the rules are different for larger companies that develop on Apple's platform - yes they are. I see competing apps that violate the backgrounding policies (for good reasons) that I could never get away with if I tried.
One example is playing silent audio while streaming via DLNA from the iOS device to prevent the OS from putting the app to sleep after 10 minutes or so. A big company just does it and has done it for years without consequence. Another small developer in my niche needed to do this as well, but was forced by Apple to remove it unless there was a specific function for it. So the developer instead added a useless "visualizer" that made graphic effects to music picked up by the microphone which is then put in the background and hidden - just to get around the rules. I have not added DLNA streaming yet because of these headaches.
Re:Pray I don't change it again (Score:5, Insightful)
How much is an Apple computer? You can't compare the cost of the license without taking into account the hardware required.
Re: (Score:2)
I think most people that consider to write iOS Apps already have an Apple computer.
Re: Pray I don't change it again (Score:3)
The Mac is a general purpose computing device. The dev tools (Xcode) are free. Yes, owning a Mac is a barrier to entry, same as a PC would be for other development targets, but Macs and PCs have many other uses aside from development.
You can write iOS apps at zero cost to you and test them in a decent simulator on the Mac. If you think you have something, you can then fork over the $99 and put it on the App Store. If you own a PC instead of a Mac, then the cost of entry is based on your personal choice of
Re: (Score:2)
It is not enough to have a mac, you need to have a recent >=~ 2010 mac to be able to use the latest OS and xcode. Now, if anything had happened with the mac line since 2010, maybe there would be a reason except to grab money, I *guess* you can develop android apps on a 386 with enough memory, but certainly on Apple hardware from 2010 that allows *much* more memory and power than the 2017 mac "pro".
Re: (Score:2)
A 2010 Mac is not "recent".
As a matter of fact I was developing iOS apps on a 2012 Mac until last year. Then I had to work on the Android version on one, and the Mac wasn't good enough. It would compile, but it took 10 minutes to do so. Obviously that's not practical. It's Android that required me to upgrade my Mac, not iOS development.
Re: (Score:1)
Also, $99 is a pittance - how much do dev kits from Nintendo, Sony and Microsoft cost?
The value of the hardware and R&D time that went into them and will continue going into them to keep them up to date.
How much does the binary field in your Apple account record cost, again? $99? If that's the price Apple pays for a bit, I see why they have to charge so much for their hardware.
Re: (Score:2)
> and will continue going into them to keep them up to date.
Yes, but they could give all that to you free, too. Why are they allowed to recoup tools R&D cost and not Apple?
The marginal cost of all these things is low. Even the dev hardware from Nintendo, Sony, and Microsoft. The real cost is the initial development, the cost to build the first unit, and maintenance.
Re: (Score:2)
I might be cool with them charging some reasonable amount per submission. You know, to cover the cost of the review a
Re: (Score:2)
$99 is just a token sum to keep out the complete time wasters. Like you.
Re: (Score:2)
Re: (Score:2)
Because whining about the $99 in every iOS development thread for the last 10 years *is* time-wasting. It's a trivial sum. If you think it's significant, then you are not a developer, you're a time waster.
Re: (Score:2)
Second, as an iOS developer, I've paid it. Many times over. That doesn't mean I don't understand why others complain about it, which is what I was explaining above, in response to a direct question.
So, as I said before: you know me, then? Nah, didn't think so. Why with the personal attacks?
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
This isn't a change to the rules. The rules always stated that you weren't allowed to do out-of-band updates that don't go through the review process. They're just enforcing the existing rules better.
Re: (Score:2)
Because iOS users are more likely to pay for an App than Android users.
And as long as I only sell Apps that cost below $3, I don't care that Apple takes a $1 as fee: I have no hassle with writing bills, sales taxes, credit card/debit card billing etc. And no hassle with: download, storage, bandwidth, license keys and and and
You must be a user instead of a developer ...
Re: Pray I don't change it again (Score:2)
> Seriously, unless you're part of a big corp with big corp lawyers
> and money behind you why develop for Apple?
Ok, here's a challenge: write an Android-only app to collaborate or organize some kind of group activity, then try to get any real-world group (besides literal Android developers) to USE it. The moment somebody realizes it can't be used by group members with iPhones & iPads, your app will become dead and irrelevant to that group, unless it's LITERALLY a group overwhelmingly comprised of
Re: (Score:1)
400 milli-consumers? Wow that's fucking awesome!
Oh, wait a minute... is it Imperial or Metric consumers?
Re: (Score:1)
You're not even pedanting right. "m" is meter. If, ignoring all English-language precedent and convention you're going to assume it's a unit of measure, then it's 400 meters of consumers.
Re: (Score:2, Interesting)
at least I'm not at the mercy of several parties to keep my security and features up to date
No, you're at the mercy of one who left an attack vector you could drive a damn dump truck through open for years. What do you think "hot code push" is? It's a way to push any code you want past Apple's app review process. Submit the code without your malware, then hot-push it after approval.
I've been telling you guys it was possible for years, as well, I just couldn't discuss the details until it was public. Though, on the old slashdot, I never would have had to spell out something so simple and obvious.
Re: (Score:2)
Re: (Score:2)
It doesn't even need to be that.
"It's only a two line change, it doesn't need the full testing & QA rigmarole". We've all done that, right?
Re: (Score:2)
Especially if you originally submit with:
Then it literally is just a two line change.
As an aside, it seems Slashdot has fallen on the "neither" side of the tabs/spaces argument, as I tried both and it seems to want to eat my indentation regardless. Yes, my code is properly indented.
Re: (Score:2)
Re: (Score:2)
Very funny. Removig play services will remove 40% of your phone capabilities.
Until you realize there are other app stores and *BAM* you've got that all back!
Want to use Google Wallet app? Nope.
You don't trust Google not to push malware to your phone, but you want to trust them with your financial credentials? Seems legit.
Want to install any DRM apps? Forget about it
Unless you use Amazon's store, or... well, there are others but I'm not familiar with them.
If you only need phone for calling/receiving calls and web browser app, I guess it's fine.
Right, then you wouldn't bother installing any of the other stores. But, if you want to do more... and I'm repeating myself here... you can install another store.
Otherwise wake up and start realizing what kind of walled garden Google is creating with their play services.
The kind where you can uninstall them and install
Re: (Score:2)
Re: (Score:2)
I've been reading and trolling Slashdot for quite some time. I don't recognize you or any such allegations you claim to have made.
Put up or shut up.
But beyond your little jerkoff session, of COURSE Apple can push code to devices without user intervention. Anyone who ever thought otherwise is a fool.
Re: (Score:2)
So, (Score:1)
Surprised (Score:4, Insightful)
so each new map needs to wait for the app store (Score:2)
so each new map in a game needs to wait for the app store review system to push it out?
Re: (Score:2)
the distinction between code and data can be blurry
Re: (Score:2)
so any game
with map scripts in new maps needs the review
pinball games each new table needs the review
driving games needs a review for a new track
games with levels needs an review to add new levels?
Re: (Score:2)
not that but under apples rules that data = code
Re: (Score:2)
In case they didn't spell it out plainly enough, lots of games are developed using a scripting language for the level data themselves. Going back as far as the old Sierra adventure games. I'm not sure if code that runs through an interpreter counts as a violation, though they could easily write an "interpreter" that passes just about anything as a live command if they set it up that way from the start.
Re: (Score:2)
A map is data, not code.
Or you seriously did something wrong.
Re: (Score:1)
The line is fuzzy. What if the "data" for your map says that when the user walks over a specific location, call a specific function? What if those functions can accept information about the state of the game at that point? What if that map data can contain multiple function calls? At some point that map data starts to look like a script, and scripts look an awful lot like code.
Re: (Score:2)
As long as the code is already in the App ... there is no problem.
Oh me, oh my... (Score:2)
Recipe for disaster (Score:5, Interesting)
"Apple has long permitted "hot code push", a feature that allows developers to continuously deploy changes to their mobile apps and have those changes reflect in their apps instantly. This allowed developers to make quick changes to their apps without having to resubmit the new iteration and get approval from the Apple Store review team."
Is it just me or does this seem like a recipe for disaster, ripe for abuse in the worst possible ways? And not just by the developer, but by anyone who hacks the developer's tool chain or system.
In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
Who thought having this capability was a good idea?
Re: (Score:2)
Hot fixes such as this should be limited to enterprise apps only - i.e. apps that don't affect the world.
Was the hot fix permitted for all apps or just enterprise apps? If the former, then it should be definitely be removed.
Re:Recipe for disaster (Score:4, Informative)
Hot fixes such as this should be limited to enterprise apps only - i.e. apps that don't affect the world.
Was the hot fix permitted for all apps or just enterprise apps? If the former, then it should be definitely be removed.
Enterprise apps don't have to go through the review process because they aren't in the App Store in the first place. They're distributed privately, with the enterprise signing each app using a cert and each employee's device being configured to accept apps signed by that cert. Updates can be deployed directly to employee devices, as a result.
As for apps using this feature, I know that a variety of games download content updates outside of the App Store, though if I had to guess, I'd wager that when Plants vs. Zombies 2 and Final Fantasy Record Keeper say they're downloading new content, it's just a package of art assets and the like that the existing executable knows how to parse. If it is arbitrary code, however, I'd also wager that I'll suddenly see those games issuing a lot more frequent updates, given that FFRK pushes out content updates 1-2 times per week as it is.
Re: (Score:3)
In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
It's called Windows Update
Re: (Score:2)
In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
It's called Windows Update
Yep, before you could simply say "no", but thanks to Microsoft, the "no" button has been removed.
"Install updates? Click 'Yes' to continue or 'Yes' to continue."
Re: (Score:2)
> In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
That's absolutely the risk.
> Who thought having this capability was a good idea?
I think it is for online games and other situations where a bug might otherwise mean a server outage until it could go through a code review. It's still a terrible idea.
Anyway, I would suspect that the timing of this is not a coincidence, given the vulnerabilities alluded to in the news recently.
Re: (Score:2)
Is it just me or does this seem like a recipe for disaster, ripe for abuse in the worst possible ways? And not just by the developer, but by anyone who hacks the developer's tool chain or system.
In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
Who thought having this capability was a good idea?
The same people who invented JavaScript?
Re: (Score:2)
Is it just me or does this seem like a recipe for disaster, ripe for abuse in the worst possible ways? And not just by the developer, but by anyone who hacks the developer's tool chain or system.
In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
Who thought having this capability was a good idea?
The same people who invented JavaScript?
Or major developers like Mozilla and LibreOffice Microsoft and ...
The list could go on forever. The point of this functionality is that, as users, the programs we run can immediately be patched with the latest updates so that security threats, when discovered, can be mitigated immediately. Consider that Apple might sit on an update for several weeks while it reviews changes. At the same time, the user is exposed to the security vulnerability that the developer is attempting to close.
I completely agree that
Re: (Score:1)
Re: (Score:2)
In other words, you could push the most intrusive, malevolent, destructive code to a user's device at will with no oversight.
Isn't this also true for Javascript-embedded-in-a-web-page?
In both cases, the only thing standing between the user and catastrophic fiery death is the security of the execution environment -- either the sandbox keeps the malware from causing damage, or it doesn't. At least in the Apple Store case, the downloaded code is authenticated as coming from a known/registered developer, so there is some (slim) chance of them being held accountable for anything negligent/malicious they might do to your phone.
They are worried about the CIA (Score:4, Insightful)
Re: (Score:2)
Or that this news story gave them the excuse, or just cause, to do what they've been wanting to do for a long time.
Apple must have been too afraid of upsetting any of the large publishers to have let it go on for so long.
It smacks more of opportunistic timing than of being reactionary.
I see that... (Score:3, Interesting)
And all of you thought I was crazy for saying it was possible.
Re: (Score:2)
Re: (Score:2)
To back up the claim that you've been saying this for 4 years, you'd have to do a link to a post of yours from 4 years ago. Not one from today.
Re: (Score:2)
Beyond that, I honestly don't care if you believe me; at least not enough to be bothered to go through over 100 pa
so much for supporting iThingies (Score:1)
In one fell swoop, Apple just broke all Meteor apps, and probably any other hybrid framework.
So I suppose we're all supposed to develop iOS apps using Apple-proprietary technologies now? No thanks. I'm old enough to remember the open internet, before the invasion of the phone-pokers.
What I'm trying to wrap my head around is where they draw the somewhat arbitrary line between downloading content and downloading functionality. I mean, any app that connects to the internet has the potential to download
Re: (Score:2)
Web content, including Javascript is an explicit exception to the rule banning downloading code.
And if Apple know you're charging a fee, via whatever method, to get around app store fees, then they'll reject the app.
Edgy fucks always ruin it for everybody (Score:3)
It is apparently in response to something called Rollout.io [rollout.io], and looking at what it does, holy fucking hell, how the fuck has such a thing existed as long as it has, and why did those dumb fucks think Apple would be cool with them hot-patching code?
What concerns me is
which means no method swizzling and no introspection, which is absurd. You can't even implement many idiomatic Objective-C patterns without respondsToSelector. Maybe the key is "arbitrary parameters", though in that case, they should be looking for calls to NSSelectorFromString, not these methods.
This is also seems to rule out calling a web service through a JavaScript front-end published by the server. And hell, most jailbreak checks call dlopen. Apple will be screwing over anti-cheat and anti-piracy techniques so they can enforce their own security theater.
Re: (Score:1)
"We're hiring". Probable not any more.
Re: (Score:2)
That kind of dynamic programming is more or less dead when you switch to Swift anyway.
Facebook? (Score:2)
The description of "hot code push" sounds like something Facebook and Messenger are doing on iOS. They both change the location of buttons (and occasionally some functionality)--like moving the Messages icon in the Facebook app to the top left and replacing it with a useless Marketplace icon--without needing to submit a new app, among other continual and usually annoying changes in Messenger itself. (Or at least the change isn't obviously correlated with a new app version; they don't write real changelogs,
Re: (Score:2)
I don't know specifically about those apps. But many apps do it as a natural result of them being little more than web-apps running in web-view.
Re: (Score:2)
I don't know specifically about those apps. But many apps do it as a natural result of them being little more than web-apps running in web-view.
Yeah, I think Facebook tried that with their early iOS app (or at least they said it was "HTML5"), but I believe a few years ago they rewrote it to be "native." Not sure if they've gone back or what (or just hybridized), but both it and especially Messenger keep changing more than you'd expect for a typical app.
Good. It levels the playing field on store ratings (Score:2)
If you publish on iTunes App store, as I do, you'll know that releasing a new version has the knock on effect of lowering your installs due to 2 things that happen on each new release:
1) iTunes App's have 2 ratings. An all time rating and a current version rating which goes to 0 on updates causing your app to lose popularity with installers.
2) iTunes keyword ranking is affected by current rating, not significantly, but enough to drop you a few places and 1/2 your installs until (1) improves again.
The App st
Uber (Score:2)
Anyone else notice the correlation between this and Uber walking-back Greyball?
I suspect Apple threatened the nuclear option. Greyball would definitely qualify for removal from the App Store on the broader issue here of undisclosed/changing app behavior as well as just plain out-and-out fraud.
I would have rather seen Uber removed from the App Store, though, than whatever back-room deal was made. There was no second chance, for example, for Kepeli/Dash. (Dash is an offline API documentation reader app. The a