Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.5.0
-
None
-
OSX 10.9.4
Description
Following instructions as per:
https://github.com/apache/cordova-osx
"Add the Cordova OSX Platform the a CLI project" [sic]
does not work.
I checked out cordova from master, completed all the npm linking as described in the linked instructions and checked cordova version:
3.5.0-0.2.7-dev
I then tried to follow this instruction: "patch the 2 projects with the patches provided in the patches directory to enable the osx platform". I expected to be able to download and git apply these patches in the git root for each of the two node modules - cordova-cli and cordova-plugman. However, they are not set up correctly for this, and produced errors:
error: platforms.js: No such file or directory
error: src/platform.js: No such file or directory
Indeed, the path locations in each patch do not seem to be vaild for any given location within either module. I thus ended up finding all files named platform.js and platforms.js (there are many, spread throughout the cordova-lib module within both cordova-cli and cordova-plugman), eyeballing them to see which files matched the patch changes, and copy/pasting the changes manually. (8 files in total, as the 4 "patched" files appear under cordova-lib in each cordova module.)
When running cordova platform add osx, I then got an error about an invaild location for the ios-parser. I found the incorrect line in the "patched" cordova/platform.js and changed it as follows:
parser : './metadata/ios_parser',
Following this I was able to add the osx platform and run the app.
Needless to say, this is a frustrating developer experience. I don't know why the osx platform information code is not included in cordova by default - it would seem to be fairly well isolated from effects on any other platform - but if it is going to be "upgradable" in this fashion, then the git patches should at least work. If they were designed to work (and ever did work) with a specific version of the cordova modules, or in a different location other than the git root, then that should be stated, instead of instructing the hapless developer to clone cordova from master and providing no further clues.