Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-19202] iOS9: Rebuild all static libraries in titanium_mobile and appcelerator modules with Xcode 7

GitHub Issuen/a
TypeEpic
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2018-07-27T17:37:21.000+0000
Affected Version/sRelease 4.1.1
Fix Version/sRelease 5.0.1
ComponentsiOS
Labelsappthinning, qe-4.1.1
ReporterChee Kiat Ng
AssigneeEric Merriman
Created2015-07-10T03:08:37.000+0000
Updated2018-07-27T17:37:21.000+0000

Description

Following the release of Xcode 7 / Beta 3, There's a *Enable Bitcode* in Build Settings which is set to *YES*, that prevents the Xcode project from compiling if it contains libraries that were not compiled with Xcode 7 / Beta 3 with the same build setting. Reference [here](https://forums.developer.apple.com/thread/8991) Bitcode is part of the app thinning initiative. Reference [here](https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html#//apple_ref/doc/uid/TP40012582-CH35) A temporary work around is to set this *Enable Bitcode* to *NO*, and the project will compile. However, eventually we should have all libraries recompiled with the latest Xcode, so that future projects are app thinning ready. New tickets on rebuilding should be referenced to this ticket.

Comments

  1. Chee Kiat Ng 2015-07-24

    Enable Bitcode will be set to NO by default in the next release. This ticket will be addressed after the next release.
  2. Chee Kiat Ng 2015-08-20

    This ticket has to be resolved in order for app submission of watch app to work. See http://adcdownload.apple.com/Developer_Tools/Xcode_7_beta_5/Xcode_7_beta_5_Release_Notes.pdf page 37 under App thinning: {quote} Xcode 7 has a ENABLE_BITCODE option to embed bitcode in apps, app extensions, and frameworks. The option is turned on by default for iOS and is *mandatory* for watchOS projects submitted to the store. {quote} Also see https://forums.developer.apple.com/thread/10392 for user frustrations.
  3. Chee Kiat Ng 2015-08-21

    One of the key concerns of rebuilding the static libraries is whether it implies that we have to maintain 2 architectures, one with bitcode enabled, while the other is not. Based on information from: http://www.openradar.me/21884601 and https://github.com/CocoaPods/CocoaPods/issues/3729 It seems to imply that libraries and frameworks built with bitcode enabled can be used in both bitcode enabled and disabled projects. i.e. they can be used in Xcode 7 as well as earlier versions of Xcode that doesn't have bitcode. *Verified*. libs built with bitcode support is backward compatible with Xcode < 7 as well. This implies that we don't have to maintain 2 versions of libs.
  4. Chee Kiat Ng 2015-08-21

JSON Source