64 bit is already a requirement, right? We submitted an update a few weeks back and it wouldn't pass verification without us adding 64 bit support (which took a few days of work - it added a few issues but nothing major, they were just tricky to track down)
We're working on moving over to the iOS 8 SDK already. What a massive pain in the backside that is proving to be.
We also hit this - it was a bug, and was fixed within a couple days. They are now rolling this out intentionally on Feb 1.
This is a challenge for us because we use a large 3rd party library (WebRTC) that has a bunch of armv7 assembly in it, but Feb 1 should be enough time to get it sorted.
Ah nice, now that is frustrating. We just ended up fixing it, where did you find it was a bug? I find the communication between Apple and the general developer community is pretty difficult to come by (even after millions of installs of our app)
Ah, it finally happened. My company has a legacy-ish SDK that all our products are built on, and because of bad decisions in the past (like extensive use of C macros) it essentially cannot be ported to 64-bit. Luckily we're already building the replacement, but this is going to accelerate the requirement of having to migrate data from the old system to the new one.
At least it sounds like this only applies to new apps, not apps updates for apps that are already published. It would be great to get clarification on that though.
This makes sense to me and easier to maintain the code. I won't have to support older versions. And my app can take advantage of the 64bit architecture.
I'm not sure why you'd say that. There's a lot of misinterpretation going on here. Read the text carefully (emphasis mine):
> new iOS apps uploaded to the App Store must include 64-bit support and be built with the iOS 8 SDK
You must include support for these items. There is no suggestion or requirement that a developer not support iOS7 (or iOS 6 for that matter).
This also only affects new apps. So basically:
* This only applies to new apps [1].
* This only requires that new apps include support for iOS 8 [2] and 64-bit.
* Developers can still support older versions of iOS.
That's just the basic breakdown of Apple's expectations. Your customers might still demand support for older iOS versions, so this isn't much of a change as far as legacy support goes.
1: I suppose it is open to interpretation whether "new iOS apps uploaded to the App Store" includes updated versions of older apps. It doesn't sound like that to me though.
2: Just because you use the iOS 8 SDK doesn't mean you can't/don't support earlier iOS versions. Quite the opposite actually, as iOS SDKs have specific provisions for supporting older versions (note, I'm not an iOS dev, but this is what I hear).
Building with a new SDK makes the app opt in to new behaviors even when targeting older iOS versions. This can be quite a hassle. Your perfectly working app - even when deployed on an iOS 8 device - will suddenly break in many fun ways merely from recompiling with a newer SDK: touch handling differs, margins may be weird, table headers vanish because various new methods aren't implemented, screen rotation suddenly gets enabled where you didn't expect, new keyboard metrics mess up your layout, etcetc. This happens because when the runtime detects that an app is built with an older SDK, it enables a bunch of compability behaviors that newly built apps cannot opt in to.
No - it just means new iOS apps must support 64-bit and be built with Xcode 6. Those same binaries/archives can also support 32-bit and older OS versions.
Similarly, today, you must build your app using at least the iOS 7 SDK and xcode 5, but that does not prevent you from supporting iOS 6 as well.
I read the link, I was focusing on the "built with the iOS 8 SDK" part. I'm asking the question whether or not building with the iOS 8 SDK would preclude that code from running on iOS 7 or is that only if that code uses iOS 8 features.
One reason is that, I believe, currently if even a single 32-bit app is loaded on a newer iOS device, all the standard 32-bit libraries have to be loaded into memory as well which causes increased memory pressure. This is a problem given that current iOS devices only have 1 GB of RAM. Getting older apps migrated to 64-bit is therefore a big deal for this reason alone.
I think HN has trained me to be very pessimistic about technology news. When I see a link posted like this without much commentary voted to the front page my first reaction is that it must be bad news.
If they only have a gig of RAM, why does iOS bother with 64-bit support at all? Doesn't that increase memory pressure due to all the pointers being twice as big?
Basically, as I understand it, 64-bit pointers on iOS can actually act to decrease memory pressure because the extra bits can be used to store object class information that would otherwise have to be stored separately.
This is important news for iOS developers as it means they must build and test their app on iOS 8, including any libraries that they use.
There are many ways and reasons why changing your build target may affect your app, so much so that's it's far beyond the scope of a hackernews thread. Supporting 64-bit, although introduced a while ago already with with iPhone 5S, can present some tricky bugs, also too much to explain here.
It's also meta-interesting as it shows the pace at which Apple wants app developers to adopt the new APIs, and will ultimately result in a more modern/ios 8 friendly app landscape.
EDIT: somebody else noted that you can likely still target earlier versions, which on the whole makes this much less interesting.
An app targeting iOS 7 built with an iOS 8 SDK may act very different from the same source built with an iOS 7 SDK. The modernization is mandatory and will definitively force apps to update to the new ways.
You can build against a higher SDK version than your minimum requirement with OS X/iOS. For example, your deployment target is OS X 10.7, but yo're building with the OS X 10.10 SDK.
We're working on moving over to the iOS 8 SDK already. What a massive pain in the backside that is proving to be.