3 ms·
> The point is that you've got a choice. Supposing I want to release a free, personal hobby project, app that uses some private APIs in iOS, to solve some long
by DaiPlusPlus 3y ago
> The point is that you've got a choice.
Supposing I want to release a free, personal hobby project, app that uses some private APIs in iOS, to solve some long-standing usability or feature-gap within iOS, then no, I don't have a choice: I don't have an option at all: I can't release it in the Apple-run iOS App Store becuase it uses Private APIs, and I can't release it in a third-party App Store as a free app because I can't afford the "Core Technology" fee (despite paying my $99 annual fee to Apple, which they said (back in 2008) pays for the platform, SDK+DX) - that leaves me only with Cydia as my only option and a significantly reduced audience.
-----
Actually, this whole debacle has me wondering - does this mean that Apple thinks they have the right to shakedown developers in the Cydia ecosystem for their "Core Technology" fees too? If so, it's going to be hilarious to watch them try to actually do that; and because they'll be unsuccessful, does that mean that other developers (using something-other-than-Cydia) can tell Apple to pound-sand as they have no moral-right to the rent they're seeking?
- wtallis 3y agoWhat makes you think it'll be easier to get away with using private APIs by selling through a different storefront? Isn't Apple is still requiring all apps to be submitted for notarization?
- DaiPlusPlus 3y agoMy understanding is Apple’s notarization is about accountability than policy/approval: I’m okay with having my apps stamped with my legal identity - that’s no different to Microsoft AuthentiCode going right-back to the late-1990s.
- kmeisthax 3y agoRegardless of how much review is used, Apple will still be gating what entitlements can be used by third-party apps. They already do this for dev-signed apps - i.e. you can't provision apps that ask for things like, say, task_for_pid-allow[0]. There's actually a whole host of entitlements that you either can't get as a third-party developer, or have to ask for special permission[1] for, or are only available to paid Apple Developer Program members. Whether or not this hampers your use of private APIs depends on whether or not the API requires a private entitlement in order to work. There's a lot of stuff that doesn't - notably, all of IOKit is there just sitting in the public Frameworks directory, but you won't pass App Review if you touch any of it, because that's still considered private API surface. If you want to touch private APIs that are gated behind a private entitlement, you're not getting them. Remember: most of iOS's security comes from sandboxing, not human review. In fact, there's been a lot of scams on iOS that App Review has failed to catch. So Apple is never, not in a million years, going to give an official way to break out of the sandbox. [0] In XNU, processes are part of a Mach task. The task_for_pid syscall obtains a Mach port for a given process's Mach task. If you have this port, you have full control over the process. As you can imagine, this syscall normally only works for development processes that have opted-in to debugging with the get-task-allow entitlement. task_for_pid-allow bypasses this, allowing you to debug everything on the system. Some jailbreaks will even patch this syscall to allow retrieving a task for PID 0 - i.e. the kernel. [1] Notably, there is an entitlement for using the VP9 decoder, which only Google gets to use.
- kjkjadksj 3y agoIf you have cydia installed, that means you’ve jailbroken the phone and can run unsigned code just fine.
- crazygringo 3y agoJust because you don't like your choices doesn't mean you don't have one. Before, you only had one set of terms. Now you have two, which may be an improvement for a lot of people. It goes without saying that neither may be your ideal choice. Heck, in an ideal world, my choice would be for Apple to pay me rather than vice-versa! You know, as a little thank-you for making an app for their phone. It's not gonna happen, though.
- DaiPlusPlus 3y ago> Just because you don't like your choices doesn't mean you don't have one But I don't have a choice - how am I supposed to make my JIT-based/IOKit-using/Kernel-mode/Launchpad-extending app available to (informed) potential users?