[TIMOB-23526] Hyperloop: CocoaPods version 1.0.x is not supported by Hyperloop
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2016-08-05T18:31:22.000+0000 |
Affected Version/s | Release 5.4.0 |
Fix Version/s | Release 5.4.0 |
Components | Hyperloop |
Labels | qe-5.4.0 |
Reporter | Josh Longton |
Assignee | Jan Vennemann |
Created | 2016-06-14T23:21:35.000+0000 |
Updated | 2016-08-15T21:18:31.000+0000 |
Description
Hyperloop does not currently support Cocoapods version 1.0.1
Steps to reproduce:
Install the current version of cocoapods (1.0.1) using brew
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.
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.While this needs to actually be solved, this buys us time https://github.com/appcelerator/hyperloop.next/pull/35
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:
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.Unfortunately, the PR of [~sophrinix] does not work. The following error is thrown, signalizing that the files could not be found:
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.
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.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.PR (master) approved & merged, please do a HL 1_2_X backport for the core-SDK 5_4_X as well. Thanks1
Backport to 1.2.X done! PR: https://github.com/appcelerator/hyperloop.next/pull/52
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) worksVerified as fixed. *CocoaPods 0.39* without removing the two lines in the pod file. As expected.
*CocoaPods 0.39* after removing the two lines in the pod file. Works and this warning is shown:
*CocoaPods 1.0.1* works and no error is shown. Tested on:
*Closing ticket*
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.
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.
[~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.
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.
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.
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. ;)
Here you go (part of the guides): https://wiki.appcelerator.org/display/guides2/Enabling+Hyperloop
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! ;)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).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?
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?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! :)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!