keyman icon indicating copy to clipboard operation
keyman copied to clipboard

chore(ios): project changes for xcode 14 compatibility

Open sgschantz opened this issue 3 years ago • 3 comments

To upgrade to Xcode 14 (needed to build and debug apps withiOS 16), two changes generated warnings and caused the build to fail. These changes are described in the Xcode 14 release notes:

  1. increase the iOS target version from 9 to 11

The Xcode 14 release supports on-device debugging in iOS 11 and later, tvOS 11 and later, and watchOS 4 and later. Xcode 14 requires a Mac running macOS Monterey 12.5 or later.

  1. disable bit code

The xcode 14 release notes describe the deprecation of bit code:

Deprecations Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14. Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode. The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols for past bitcode submissions remain available for download. (86118779)

sgschantz avatar Oct 11 '22 08:10 sgschantz

User Test Results

Test specification and instructions

ERROR: user tests have not yet been defined

keymanapp-test-bot[bot] avatar Oct 11 '22 08:10 keymanapp-test-bot[bot]

  • We should make sure we loop in the App Builder team (@chrisvire, @rpmargetts) so they have a heads-up on the changing requirements for Keyman 16. They'll probably already be dealing with it in their own move to iOS 16 but it's nice to be informed anyway! 😁

Please include @davidmoore1. He has done work in app-builders for Xcode 14 and iOS 16 (including removing bitcode). He has also done work in a fork of keyman to support Carthage.

chrisvire avatar Oct 11 '22 20:10 chrisvire

Please include @davidmoore1. He has done work in app-builders for Xcode 14 and iOS 16 (including removing bitcode). He has also done work in a fork of keyman to support Carthage.

Righto, will do. We'd also be interested at some point in understanding what is diverging in the fork and what we should be merging back upstream into the main Keyman project.

mcdurdin avatar Oct 12 '22 02:10 mcdurdin

Please see https://github.com/keymanapp/keyman/issues/7483#issuecomment-1285921017 for additional work we'll need to do in CI when we move to XCode 14.

mcdurdin avatar Oct 20 '22 17:10 mcdurdin

Query: can we reliably use xcode-select to swap between xcode versions? This would allow us to more easily keep up with xcode releases, without breaking existing build agents

mcdurdin avatar Oct 20 '22 20:10 mcdurdin

@mcdurdin: You can have multiple. The question is whether xcodebuild will work correctly after each xcode-select call and if there is anything that resides outside of the Xcode install folder.

https://stackoverflow.com/questions/669367/can-i-have-multiple-xcode-versions-installed

chrisvire avatar Oct 20 '22 21:10 chrisvire

Thanks @chrisvire, that's helpful info. Sad that we need to sudo xcode-select because that makes it hard to script in TeamCity... some exploration needed I guess.

mcdurdin avatar Oct 20 '22 21:10 mcdurdin

Is this replaced by #8015 ?

darcywong00 avatar Jan 27 '23 03:01 darcywong00

Replaced by #8015.

mcdurdin avatar Jan 30 '23 02:01 mcdurdin