Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-23526] Hyperloop: CocoaPods version 1.0.x is not supported by Hyperloop

GitHub Issuen/a
TypeBug
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2016-08-05T18:31:22.000+0000
Affected Version/sRelease 5.4.0
Fix Version/sRelease 5.4.0
ComponentsHyperloop
Labelsqe-5.4.0
ReporterJosh Longton
AssigneeJan Vennemann
Created2016-06-14T23:21:35.000+0000
Updated2016-08-15T21:18:31.000+0000

Description

Hyperloop does not currently support Cocoapods version 1.0.1 Steps to reproduce:

Install Hyperloop using the guide http://labs.appcelerator.com/project/55f74a9f421c44837717716b/Hyperloop-Module

Install the current version of cocoapods (1.0.1) using brew brew install cocoapods

Run a project with hyperloop enabled

*Actual*
[INFO] :   Finished Hyperloop assembly in 0.74 seconds
[ERROR] :  An error occurred during build after 2s 362ms
[ERROR] :  pod install returned a non-zero exit code
*Expected* The project is built successfully.

Comments

  1. Hans Knöchel 2016-06-15

    Some background: We used to have the no-integrate flag in our Hyperloop CLI in order to download the pods, but not reference them to our generated project. This is important to generate the metabase from the local headers afterwards. So in CocoaPods, there was a breaking change where this flag was removed. They now recommend to handle it through the Podfile directly, but the build still failed in early tests. So we need to fix that issue in order to use CocoaPods 1.0.0+ again.
  2. Andrew McElroy 2016-06-15

    While this needs to actually be solved, this buys us time https://github.com/appcelerator/hyperloop.next/pull/35
  3. Christopher Williams 2016-07-14

    Am I missing something here? It appears that we just need to remove the flag from the pod install call and insist users add this to their Podfile:
       install! 'cocoapods',
                :integrate_targets => false
       
  4. Hans Knöchel 2016-07-15

    That was the first thing I tried. Unfortunately, when using that config, the build fails at the very end, because the Info.plist could not be found. I have/had no idea where that could gone, since the :integrate_targets => false should not impact the Titanium project.
  5. Hans Knöchel 2016-07-25

    Unfortunately, the PR of [~sophrinix] does not work. The following error is thrown, signalizing that the files could not be found:
       [TRACE] [Hyperloop] found pod at /usr/local/bin/pod
       [INFO]  [Hyperloop] CocoaPods dependencies found. This will take a few moments but will be cached for subsequent builds
       [ERROR] An error occurred during build after 3s 245ms
       [ERROR] spawn bundle ENOENT
       
  6. Andrew McElroy 2016-07-28

    As mentioned in the standup it does work. Here is a private repo of hyperloop-examples with hyperloop 1.2.5 with my pull request code being used. https://github.com/Sophrinix/secret-hyperloop-examples-with-bundler I can add additional people to this repo if required. I wish github allowed private forks of public projects. Then again, I get from a behavior reason why they don't do this.
  7. Hans Knöchel 2016-08-01

    Here is the problem: Your PR included the Gemfile in the plugin, not in the app-directory. So if people need to copy it manually to their app-directory, that's another non-automated workaround. We need to find out, why the :integrate_targets => false flag does not work in the CLI.
  8. Jan Vennemann 2016-08-03

    PR: https://github.com/appcelerator/hyperloop.next/pull/49 After a lot of digging through trace logs and reading the change logs for CocoaPods, i found out what needs to change to make Hyperlook compatible with CocoaPods 1.0.x. Basically we needed to adjust two build variables and take a few directory changes into account. I tested it with the hyperloop-example project and rvm with ruby 2.2.4 / CocoaPods 0.39.0 and ruby 2.3.0 / CocoaPods 1.0.1. As Chris already mentioned, for CocoaPods 1.0.x the Podfile should include install! 'cocoapods', :integrate_targets => false at the top which replaces the --no-integrate flag from older versions.
  9. Hans Knöchel 2016-08-04

    PR (master) approved & merged, please do a HL 1_2_X backport for the core-SDK 5_4_X as well. Thanks1
  10. Jan Vennemann 2016-08-04

    Backport to 1.2.X done! PR: https://github.com/appcelerator/hyperloop.next/pull/52
  11. Hans Knöchel 2016-08-05

    Hey, QE! This is how to test it:

    Download the latest version of the [hyperloop-examples](https://github.com/appcelerator/hyperloop-examples) project

    Validate your Cocoapods version (pod -v)

    Run the project using appc run

    Navigate to "Thirdparty-Libraries" and open the charts example

    *Expected behaviors*: * CocoaPods 0.39 (< 1.0.0): The build still works, but a deprecated warning is thrown during build process * CocoaPods 1.0.1 (>= 1.0.0): The build now also works, no warning is thrown * For both: The charts example (implemented using a Cocoapods-library) works
  12. Josh Longton 2016-08-08

    Verified as fixed. *CocoaPods 0.39* without removing the two lines in the pod file. As expected.
        [WARN] :   [Hyperloop] Using a CocoaPods version below 1.0.0 is deprecated. Please update your CocoaPods installation with: sudo gem install cocoapods
        [INFO] :   [Hyperloop] CocoaPods dependencies found. This will take a few moments but will be cached for subsequent builds
        [TRACE] :  [Hyperloop] CocoaPods [!] Invalid Podfile file: undefined method `install!' for #<Pod::Podfile:0x007f7fea90dd98>. Updating CocoaPods might fix the issue.
        [TRACE] :  [Hyperloop] CocoaPods  #  from /Users/Josh/Documents/Appcelerator_Studio_Workspace/hyperloop-examples/Podfile:3
        [TRACE] :  [Hyperloop] CocoaPods  #  -------------------------------------------
        [TRACE] :  [Hyperloop] CocoaPods  #  # If you still want to use the old CocoaPods, remove the following 2 lines
        [TRACE] :  [Hyperloop] CocoaPods  >  install! 'cocoapods',
        [TRACE] :  [Hyperloop] CocoaPods  #           :integrate_targets => false
        [TRACE] :  [Hyperloop] CocoaPods  #  -------------------------------------------
        [ERROR] :  An error occurred during build after 3s 229ms
        [ERROR] :  pod install returned a non-zero exit code
        
    *CocoaPods 0.39* after removing the two lines in the pod file. Works and this warning is shown:
        [WARN] :   [Hyperloop] Using a CocoaPods version below 1.0.0 is deprecated. Please update your CocoaPods installation with: sudo gem install cocoapods
        
    *CocoaPods 1.0.1* works and no error is shown. Tested on:
        iPhone 6s plus (9.3.1)
        iPhone Simulator (9.3)
        
Mac OSX El Capitan 10.11.6
        Studio: 4.7.0.201607250649
        
Ti SDK: 5.4.0.v20160804185318
        
Appc NPM: 4.2.7
        Appc CLI: 5.4.0-40
        Xcode 7.3.1
        Node: v4.4.4
        Hyperloop: 1.2.6
        CocoaPods: 0.39/1.0.1
        
    *Closing ticket*
  13. kosso 2016-08-15

    Which version of Hyperloop is being used here? I just upgrade everything that I was told to, to 5.4.0.GS of the SDK and following the instructions to download and install the Hyperloop module and plugin etc. from http://labs.appcelerator.com/project/55f74a9f421c44837717716b/Hyperloop-Module [version 1.2.0 Beta] and I'm still getting this error. Tried using cocoapods version 1.0.1 and also 0.39 Here's my current version setup for Titanium.
        Operating System
          Name                        = Mac OS X
          Version                     = 10.11.5
          Architecture                = 64bit
          # CPUs                      = 4
          Memory                      = 8589934592
        
        Node.js
          Node.js Version             = 0.12.7
          npm Version                 = 3.8.7
        
        Titanium CLI
          CLI Version                 = 5.0.9
        
        Titanium SDK
          SDK Version                 = 5.4.0.GA
          SDK Path                    = /Library/Application Support/Titanium/mobilesdk/osx/5.4.0.GA
          Target Platform             = iphone
        
  14. kosso 2016-08-15

    I see in the previous comment from Josh he says he's running version 1.2.6 of Hyperloop. Where can I get this? Also, version 4.4 of NodeJs. Where can I find the definitive list of required versions of all the tooling required for Appcelerator Titanium with Hyperloop these days please? It all seems a bit of a muddle.
  15. Hans Knöchel 2016-08-15

    [~kosso] The fix is in the 5.4.0.GA version and Hyperloop 1.2.5 and later. The public beta did not include the fix a few months ago. Check the FAQ [here](https://www.appcelerator.com/blog/2016/08/hyperloop-is-here/) for more infos.
  16. kosso 2016-08-15

    Hi Hans. Thanks for the info. But that's exactly where I got my instructions from after the announcement. There is no link anywhere that I can see to download Hyperloop 1.2.5. I only eventually found the link to the 1.2.0 Beta via the release notes. http://docs.appcelerator.com/platform/latest/#!/guide/Titanium_SDK_Release_Notes - which led me to here : http://docs.appcelerator.com/platform/latest/#!/guide/Hyperloop .. then finally here: http://labs.appcelerator.com/project/55f74a9f421c44837717716b/Hyperloop-Module I have the 5.4.0.GA installed.
  17. Hans Knöchel 2016-08-15

    Hyperloop 1.2.5 and later is installed through Studio if you are entitled to it (Pro / Team / Enterprise) like mentioned in the blog-post as well.
  18. kosso 2016-08-15

    I followed all the updates provided to me via Studio. I have a Pro account. The blog post says "Hyperloop comes with our Pro, Team bundle, and Enterprise plans." but that's about it. The only other useful link appears to be to the release notes, which I also followed. I followed the instructions, which said to download the zip file and install it. Which I did. Should I have not done that? Sorry, but the instructions are not very clear at all. Or the documentation is out of date. I have no idea. Are you saying that the 1.2.5+ Hyperloop versions are automatically installed from now on, depending on our plan? It's just not clear. I keep wondering if I'm being totally blind to some obvious piece of information here. But I'm pretty sure I'm not. ;)
  19. Hans Knöchel 2016-08-15

    Here you go (part of the guides): https://wiki.appcelerator.org/display/guides2/Enabling+Hyperloop
  20. kosso 2016-08-15

    Hi. Thanks. That's seems a lot more useful ;) I did not have Platforms services checked, since I don't need TiCloud or Analytics, for now. I see that it has installed the ti.cloud Module too. Is this a requirement for running Hyperloop? Or can I remove it? Also. Once I got this far, after creating a new app in Studio, I added a Podfile (I am on cocoapods v 0.39 now) to test the JBChartView example, removing the two lines as per the example, and I still get the pod install returned a non-zero exit code error Another discrepancy that I have found is the location of <property name="run-on-main-thread" type="bool">true</property> Documentation says it should be in the <ios> section. But when Studio creates a new app, it has placed it just outside the <ios> section. Which one should it be? thanks! I'm pretty exciting to get out the starting gate with Hyperloop! ;)
  21. Hans Knöchel 2016-08-15

    For the property: Old docs should talk about <run-on-main-thread /> in <ios/>, but newer ones (including the guides}} should have it as a properly on the top-level. Cloud is activated with it by default, since it all are platform-services. But you can disable them in your tiapp.xml if you want. The Cocoapods-error looks like a syntax-one in your Podfile, check [this example](https://github.com/appcelerator/hyperloop-examples/blob/master/Podfile).
  22. kosso 2016-08-15

    I'm still getting nowhere. Please, where can I get the latest version 1.2.5+ of Hyperloop? I don't see anything saying where to get it? And Studio isn't automatically updating it, even when I ensure to enable the Platform services. When I create a new app via Studio or the CLI it does ask me if I want to enable Hyperloop ok. The download link on this page, which is linked on the current live release notes and documentation still points to the 1.2.0 Beta. http://labs.appcelerator.com/project/55f74a9f421c44837717716b/Hyperloop-Module Is this crucial download page out of date?
  23. kosso 2016-08-15

    I've also tried removing the previously downloaded hyperloop 1.2.0 folders from the plugins and modules folder in my installation. (Since according to the docs, I should even need to manually download the zip from Labs any more) I've got SDK 5.4.0.GA selected. (checked with ti sdk ) .. I go to create a new app. It asks if I want Hyperloop. Yes. Waits.. Now I don't even see Hyperloop in the list of installed modules in Studio. (ti.cloud is there) I then tried clicking the 'Enable Services' button. It asked about Hyperloop again. I waited. Nothing changed. Is it maybe because I'd tried the Hyperloop Beta before? Or maybe that I'd had pre-GA versions of Ti SDK 5.4.0? -- If I was a Pro user, who was trying Hyperloop for the first time, would I expect to find the hyperloop folders in my [SDK_LOCATION]/plugins and /modules folders, ever?
  24. kosso 2016-08-15

    OK. Update: So, finally I tried and updated Node to 4.4.7 (LTS) using n lts Then after making sure the old 1.2.0 beta folders were removed, I created a new app with the CLI. It asked me if I wanted to use Hyperloop (as it had done before), but this time it did actually download and install 1.2.6 :) It seems the update/download didn't work on the older version 0.12.x of Node, for me. I can now confirm that I have Hyperloop 1.2.6 installed. And that the JBChart example pod works using Cocoapods 1.0.1. At last! Thanks! :)
  25. Hans Knöchel 2016-08-15

    Thanks man, we learned to update some docs and take down the Labs now, since the GA version is online. That changes will take effect over the days and NodeJS in Studio will be upgraded by default in Studio 4.8.0 and later (see CLI-1070 and TISTUD-8509). Thanks!

JSON Source