Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-26245] iOS: Exclude 32-Bit architectures for iOS 11+ targets

GitHub Issuen/a
TypeStory
PriorityNone
StatusOpen
ResolutionUnresolved
Affected Version/sn/a
Fix Version/sn/a
ComponentsiOS
Labelscb-tooling
ReporterHans Knöchel
AssigneeChris Barber
Created2018-07-27T21:39:12.000+0000
Updated2019-10-22T13:23:33.000+0000

Description

If the Titanium developer targets iOS 11+, we can remove the 32-bit architectures for all builds, because iOS 11+ does not run on these devices anymore. There is a related discussion over at [CocoaPods](https://github.com/CocoaPods/CocoaPods/issues/7148) about it.

Comments

  1. Hans Knöchel 2018-07-27

    [~cbarber] Do you know which parts we should touch for this?
  2. Chris Barber 2018-08-08

    I believe this is implicitly handled these days in the Xcode project settings. Long time ago, we used to explicitly list the architectures we were building for: https://github.com/appcelerator/titanium_mobile/blob/3_3_X/iphone/cli/commands/_build.js#L2505. I believe I removed it around the time time I added watchOS support. I believe the problem is in order to not build for i386, we'd need to explicitly tell xcodebuild what to build for and whatever is selected is inherited when it builds watchOS apps and since those run on devices with different architectures, it won't work. So, you can try setting the ARCHS, but maybe you need to do VALID_ARCHS, but you'd probably also need to set ONLY_ACTIVE_ARCH to NO. I also believe I say "I believe" too much.
  3. Chris Barber 2019-10-22

    Note: for iOS Simulator builds, the iOS build sets ONLY_ACTIVE_ARCH=1. However in Titanium SDK >=8.2.1, the iOS build will pick an arbitrary iOS simulator for the xcodebuild destination so long as the device type family matches. We have to specify a destination so Xcode correctly builds apps containing watch apps. If the selected device type is not 64-bit, such as an iPhone 5 or iPad Retina, then ONLY_ACTIVE_ARCH is not set and will build for all architectures.

JSON Source