Friday, January 25, 2019

Xcode 10.2 Beta Release Notes


Resolved an issue that affected app compatibility with iOS 9.0, 9.1, and 9.2 when distributing an app for local or enterprise distribution. App asset catalogs built using Xcode 10 with a deployment target of iOS 9.0, 9.1 or 9.2 produced content incompatible with the runtimes of those iOS versions when distributed using local or enterprise distribution. Rebuilding the app with Xcode 10.2 resolves this issue.


On iOS and watchOS, Xcode shows the memory limit for running apps in the Memory Report as you approach the limit. Use Instruments and Xcode Memory Debugging to optimize your app to have the smallest possible memory footprint.


You can now use $0, $1, … shorthands in LLDB expression evaluation inside closures.


The LLDB debugger has a new command alias, v, for the “frame variable” command to print variables in the current stack frame. Because it bypasses the expression evaluator, v can be a lot faster and should be preferred over p or po.


Opening a project that uses any deprecated localization identifiers now produces a warning for each one used. Selecting one of these warnings presents an assistant for migrating files in the associated legacy “lproj” directories to “lproj” directories named for the equivalent modern identifier. If necessary, this process also updates the project’s development region to a modern identifier. Migrated projects are compatible with older versions of Xcode.


When you’re building an archive of a macOS app and using a Developer ID signing certificate, Xcode includes a secure timestamp in the archive’s signature. As a result, you can now submit an archived app to Apple’s notary service with xcrun altool without first needing to re-sign it with a timestamp.

When you’re building an archive of a macOS app, Xcode no longer injects the entitlement into the app’s signature. As a result, you can now submit an archived app to Apple’s notary service using xcrun altool without first needing to strip this entitlement.

Jesse Squires:

Apple’s new release notes pages for Xcode are 👌

No more PDFs and not behind a login.

Let’s see whether this URL stays up. Apple’s release notes tend to disappear or move around, e.g. to here (which is hard to find in Google).

Dave DeLong:

Well hello there… #ObjectiveC #Runtime #Funtime #iOS12


Fundamentally [objc_setHook_getClass()] allows you to interpose objc_getClass() (and therefore NSClassFromString())

So yeah, you could use it for doing class posing. I was thinking it would be for decoding ancient nibs and replacing unknown classes with a generic KVC-compliant proxy


Update (2019-01-28): Greg Parker:

You can’t use this to pose as a class: the hook is only called if the class is not already known to exist. It’s intended for Swift to register some of its classes on demand, such as instantiations of Swift generics, that the ObjC runtime can’t see up front.

Benjamin Mayo:

Fans of dark IDEs but not Mojave’s Dark Mode overall theme will be happy: Xcode 10.2 “Always use Dark”.

stephen ryner jr:

Time to upgrade to Mojave, I guess

Jeff Johnson notes that Xcode’s requirement for macOS 10.14 creates problems when deploying to an earlier macOS version. You can no longer debug your app on that version using the current version of Xcode. But if you stay with the older version of Xcode, you can’t use the new SDK. This didn’t used to a problem because Xcode used to support (and include SDKs for) multiple macOS versions.

Jim Rea:

Yes, this is a huge problem. Because of this I’m usually running a couple versions behind with both macOS and Xcode on my dev machine, currently running macOS 10.12 and Xcode 8 (my code is 100% ObjC). Not great, but it seems to be my least bad option.

Update (2019-02-04): The Xcode 10.2 beta 2 Release Notes:

The new release notes don’t seem to say what’s new in this beta. And the beta 1 release notes now redirect to the beta 2 ones, so you can’t actually compare the two pages.

So I now think this is worse than the old PDF release notes.

1 Comment RSS · Twitter

[…] Xcode 10.2 Beta Release Notes […]

Leave a Comment