[TIMOB-17164] LiveView: Error on rebuild - "Invalid Titanium project path (no tiapp.xml)"
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2014-08-28T14:34:15.000+0000 |
Affected Version/s | Release 3.3.0 |
Fix Version/s | Release 3.4.0 |
Components | LiveView |
Labels | module_liveview, qe-closed-3.4.0, qe-manualtest, triage |
Reporter | Alan Leard |
Assignee | Praveen Innamuri |
Created | 2014-06-16T19:45:14.000+0000 |
Updated | 2014-09-03T18:05:55.000+0000 |
Description
Description
Live View breaks with RC build with the following error:
[ERROR] Invalid Titanium project path (no tiapp.xml) at "/Users/aleard/Downloads/Appcelerator_Studio/AppceleratorStudio.app/Contents/MacOS"
Repro Steps
1. Build attached app with Live View enabled 2. Make a change to any file and save it 3. App will not reload and error appearsAttachments
File | Date | Size |
---|---|---|
Test.zip | 2014-06-16T19:45:14.000+0000 | 5925163 |
Unable to reproduce issue on: Mac OSX 10.9.3 Windows 8.1 Appcelerator Studio, build: 3.3.0.201406231625 Titanium SDK, build: 3.3.0.v20140626115712 Titanium CLI, build: 3.3.0-rc3 Alloy: 1.4.0-rc2 LiveView: 1.0.4 Attached alloy project successfully updates with LiveView changes. No tiapp.xml error is thrown.
[~aleard] I'm unable to reproduce the issue while trying to run the app on iOS simulator and Android device. Are you running the app on android/ios simulator/device ?
Here is my environment : Titanium CLI : 3.3.0-rc3 Alloy : 1.4.0-rc3 Studio : 3.3.0.201406271159
I have validated that this issue exists only in 3.3.1 and 3.4.x builds. We have addressed an issue (in 3.3.1) with respect to UNC path and does not pass in the working directory to the build command. However, Alloy expects the working directory to be set when it is forced to recompile by liveview. comple/index.js file (at line 48) invokes getAndValidateProjectPaths() method with one of a valid arguments. However, since the working directory is not set with the project directory, it picks up the working directory of the process (which is happened to be Studio base directory). [~skypanther] Do you think that Alloy should consider the project path directory here, instead of falling back to process current directory ?
[~pinnamuri] The statement you reference accepts one of three paths:
program.outputPath || args[0] || process.cwd()
. The first of those comes from the CLI (e.g.ti build ...
when it spawns the compile process and represents the project-dir as defined by the CLI. The remaining two look to the current path and would come into play whenalloy compile
is called directly. Where would Alloy get this project path if it's not passed to it or extracted from the process environment?https://github.com/appcelerator/liveview/pull/81 To verify the changes :
Copy the liveview changes into the Appcelerator Studio installation (/plugins/com.appcelerator.titanium.liveview.core_1.1.0.1408413634/node_modules/liveview/)
Run a Alloy app onto iOS simulator with liveview enabled.
After the app is run in simulator, make a few changes to the Alloy app. Make sure the changes are reflected in simulator/device.
Verified the issue: Appcelerator Studio: 3.4.0.201408251831 Sdk:3.4.0.v20140825141714 alloy:1.5.0-dev titanium:3.4.0-dev titanium-code-processor:1.1.1 acs:1.0.16 npm:1.3.2 OS:Maverick(10.9.4) xcode: Xcode6Beta5 Device:iPhone5c(v7.1.2) LiveView working fine.Reloading changes without error on both alloy and classic project. After the fix we have new Appcelerator Studio build(3.4.0.201408251831) in which above mentioned git changes already exist in the file (Appcelerator_Studio/plugins /com.appcelerator.titanium.liveview.core_1.1.0.1409014742/node_modules/liveview/lib/fserver.js)
This is still an issue if the Workspace path has spaces :- [ERROR] Titanium project path does not exist at "/Users/jkneen/Documents/Code/Titanium". My Workspace is in the old format, without _ between the words.
[~jkneen] Thanks for testing the fix and reporting the issue.
Works as described. PR merged
Verified fix on: Mac OSX 10.9.4 Appcelerator Studio, build: 3.4.0.201408291834 Titanium SDK build: 3.4.0.v20140829184521 Titanium CLI, build: 3.4.0-dev Alloy: 1.5.0-dev Created a new Alloy project that contained a space in the project name and built to iOS device, made changes to the code and saved. The changes were reflected by the simulator. Closing ticket.