My application will successfully build a test version, but apparently fails to build a production version due to some type of svn conflict.
I can build a test version of my app using:
sencha app build testing
but when I attempt to build a production version using:
sencha app build production
the following error is thrown:
[ERR] failed generating diff from .svn to e0a93a0bc2dfb48ee19323686d1dd406f5c096de
[ERR] Unable to read dictionary file '<PATH TO APPLICATION DIRECTORY>/archive/app.js/.svn': Is a directory
[ERR] BUILD FAILED
We are currently using Sencha Cmd v18.104.22.1688, and in 'app.json', the following line is present:
This is a bug in the delta patch generator. Currently, the ignores filter is not
used to filter out which files are needing delta patches generated, and the issue
here is that the .svn folders in the archive location are accidentally being picked
up as file entries for previous versions of application files (app.js in this case).
The final fix will go into the upcoming Sencha Cmd 3.1.1 release, but there is a
patch that can be applied to existing versions to correct this issue by skipping
directories in the archive location when scanning for previous versions.
The following code will need to be added to the app-build.js file from the SenchaCmd
That code patch will need to be added to the following locations:
For Sencha Cmd 3.0.2, add the above code at line 355 of file:
For Sencha Cmd 3.1.0, add the above code at line 372 of files:
After making the edit, I was able to build the testing version successfully, but the production version still failed (albeit with a different error).
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.BasicException: The following error occurred while executing this line:
[ERR] <PATH TO APPLICATION DIRECTORY>/.sencha/app/build-impl.xml:137: com.sencha.exceptions.ExScript: TypeError: Cannot find function isDirectory in object 8817a2ac306cd9faf2a7373ee4eb0cb26e3cc310. (x-app-build#359)
here is the placement of the recommended edit to the file:
Initially, the archivedVersion reference will be a java.io.File instance from the directory scan. The patch uses the isDirectory method to ensure that the File instance does not reference a directory before converting the variable to the string representation of the version.
The error you were getting was due to the post-conversion variable not having the isDirectory method.