title: How to build sencha app with Cordova/PhoneGap
body: <p>For a client, I need to build native application using Sencha Touch and Cordova.</p>
  
  <p>For performance, I use the command "sencha app build package" from SDK Tools for minified javascript source.</p>
  
  <p>There is no problem if I use Sencha for development, and Corova for the webview. But I need to use Cordova functions (like FileSystem, ...) that I can't do with Sencha.</p>
  
  <p>The problem is that when I use "sencha app build package", I have errors like <code>[ERROR] ReferenceError: Can't find variable: fileSystem</code>.</p>
  
  <p>I read a lot of posts which talking about Sencha + Cordova, but none of them talks about build/minified source with Cordova + Sencha.</p>
  
  <p>Is there anybody who was confronted to this problem and how did you solved it ?</p>
  
  <p>Best regards </p>
  
  <p><b>UPDATE ON 05/31/2012</b></p>
  
  <p>I use a file called CordovaFunctions.js for every methods that needs to access to the  cordova variables, and my app.js and other View/Controller call the methods in CordovaFunctions.js ...</p>
  
  <p>Here is my app.json : </p>
  
  <pre class="lang-js prettyprint-override"><code>{
  /**
   * The application's namespace, used by Sencha Command to generate classes
   */
  "name": "ImageDownloader",
  
  /**
   * The file path to this application's front HTML document, relative to this app.json file
   */
  "indexHtmlPath": "index.html",
  
  /**
   * The absolute URL to this application in development environment, i.e: the URL to run this application
   * on your web browser during development, e.g: "http://localhost/myapp/index.html".
   *
   * This value is needed when build to resolve your application's dependencies if it requires server-side resources
   * that are not accessible via file system protocol.
   */
  "url": null,
  
  /**
   * List of all JavaScript assets in the right execution order.
   * Each item is an object with the following format:
   *      {
   *          "path": "path/to/script.js" // Relative path to this app.json file
   *          "update": "delta"           // (Optional)
   *                                      //  - If not specified, this file will only be loaded once, and
   *                                      //    cached inside localStorage until this value is changed.
   *                                      //  - "delta" to enable over-the-air delta update for this file
   *                                      //  - "full" means full update will be made when this file changes
   *
   *      }
   */
  "js": [
  
      {
         "path": "cordova-1.7.0.js"
      },/*
      {
         "path": "CordovaFunctions.js"
      },*/
      {
          "path": "sdk/sencha-touch.js"
      }
      ,
      {
          "path": "app.js",
          "bundle": true,  // Indicates that all class dependencies are concatenated into this file when build 
          "update": "delta"
      }
  ],
  
  /**
   * List of all CSS assets in the right inclusion order.
   * Each item is an object with the following format:
   *      {
   *          "path": "path/to/item.css" // Relative path to this app.json file
   *          "update": "delta"          // (Optional)
   *                                     //  - If not specified, this file will only be loaded once, and
   *                                     //    cached inside localStorage until this value is changed to either one below
   *                                     //  - "delta" to enable over-the-air delta update for this file
   *                                     //  - "full" means full update will be made when this file changes
   *
   *      }
   */
  "css": [
      {
          "path": "resources/css/app.css",
          "update": "delta"
      }
  ],
  
  /**
   * Used to automatically generate cache.manifest (HTML 5 application cache manifest) file when you build
   */
  "appCache": {
      /**
       * List of items in the CACHE MANIFEST section
       */
      "cache": [
          "index.html"
      ],
      /**
       * List of items in the NETWORK section
       */
      "network": [
          "*"
      ],
      /**
       * List of items in the FALLBACK section
       */
      "fallback": []
  },
  
  /**
   * Extra resources to be copied along when build
   */
  "resources": [
      "resources/images",
      "resources/icons",
      "resources/startup"
  ],
  
  /**
   * File / directory name matchers to ignore when copying to the builds, must be valid regular expressions
   */
  "ignore": [
      "\.svn$"
  ],
  
  /**
   * Directory path to store all previous production builds. Note that the content generated inside this directory
   * must be kept intact for proper generation of deltas between updates
   */
  "archivePath": "archive",
  
  /**
   * Default paths to build this application to for each environment
   */
  "buildPaths": {
      "testing": "build/testing",
      "production": "build/production",
      "package": "build/package",
      "native": "build/native"
  },
  
  /**
   * Build options
   */
  "buildOptions": {
      "product": "touch",
      "minVersion": 3,
      "debug": false,
      "logger": "no"
  },
  
  /**
   * Uniquely generated id for this application, used as prefix for localStorage keys.
   * Normally you should never change this value.
   */
  "id": "dfbad430-a63b-11e1-a218-a1757e9a8324"
  }
  </code></pre>