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 overp
orpo
.[…]
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
com.apple.security.get-task-allow
entitlement into the app’s signature. As a result, you can now submit an archived app to Apple’s notary service usingxcrun altool
without first needing to strip this entitlement.
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).
Well hello there… #ObjectiveC #Runtime #Funtime #iOS12
[…]
Fundamentally [
objc_setHook_getClass()
] allows you to interposeobjc_getClass()
(and thereforeNSClassFromString()
)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
Previously:
- Why Instagram Is No Longer Optimized for Large Phone Screens
- Swift 5 Release Notes for Xcode 10.2 Beta
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.
Fans of dark IDEs but not Mojave’s Dark Mode overall theme will be happy: Xcode 10.2 “Always use Dark”.
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.
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.