Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-23665

[Hyperloop] iOS: custom class is not added to Xcode project and compiled if no other frameworks are being used in the project

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Release 5.4.0
    • Component/s: Hyperloop, iOS, Tooling
    • Labels:
      None
    • Environment:

      Ti SDK 5.4.0.v20160713141635
      Hyperloop module 1.2.3

    • Story Points:
      5
    • Sprint:
      2016 Sprint 15 Tooling

      Description

      Creating a new project, enabling Hyperloop and adding a custom class does not work unless a Cocoa Touch framework is also referenced.

      Steps:

      • Create new project
      • Configure the project for Hyperloop
      • Add a custom Obj-C class 'MyClass', declare it in appc.js and require it in index.js controller

      Result:

      • MyClass metabase JS file is generated
      • MyClass is not added to the Xcode project and therefore not compiled
      • No build-time error, run time error Cannot find class with name: MyClass

      I have tracked down the cause:

      Custom classes and frameworks are added to the Xcode project in the plugin updateXcodeProject function. This function makes this check for content in this.nativeModules: https://github.com/appcelerator/hyperloop.next/blob/master/iphone/plugin/hyperloop.js#L672. this.nativeModules is populated here: https://github.com/appcelerator/hyperloop.next/blob/master/iphone/plugin/hyperloop.js#L574.

      I have attached an example project which demonstrates the error.

        Attachments

          Activity

            People

            • Assignee:
              jvennemann Jan Vennemann
              Reporter:
              cbowley Chris Bowley
              Reviewer:
              Chee Kiat Ng (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Backbone Issue Sync

                • Titanium SDK/CLI <> Titanium Mobile
                  Synced with:
                  TIMOB-9934
                  Sync status:
                  ERROR
                  Last received:
                  Last sent:

                  Git Integration