Creating the Apk file for your sencha touch application

Hello there! I'm diving into the world of Sencha Touch as a new user. After installing all the required tools and SDK, I successfully set up the demo example that came with project creation via command line. Now, I'm eager to generate the APK file for the web application I've developed, but I could use some guidance on how to get started. Any tips or pointers would be greatly appreciated.

Thank you in advance!

Answer №1

Step 1: Generating Android Certification Utilize the Android Keytool from the Android SDK tools to create a certificate for signing Android applications. Below is a sample Keytool command that generates a private key:

$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name
    -keyalg RSA -keysize 2048 -validity 10000

Step 2: Installation of Sencha SDK Tools.

  • Execute the Sencha SDK installation: SenchaSDKTools (SenchaSDKTools-2.0.0-Beta)
  • The sencha command along with the package option will be installed to the specified location during installation (default: Applications/SenchaSDKTools-2.0.0-Beta/command).

Step 3: Crafting a Packaging Configuration File for Native Packager. The configuration file should adhere to the following format:

{
    "applicationName": "<AppName>",
    "applicationId": "<AppID>",
    "outputPath": "<AppPackageOutputPath>",
    "iconName": "<AppIconName>",
    "versionString": "<AppVersion>",
    "inputPath": "<PathToWebApp>",
    "configuration": "<Release | Debug>",
    "platform": "<Android | AndroidEmulator>",
    "certificatePath": "<certificatePath>",
    "certificateAlias": "<certificateAlias>",
    "sdkPath": "/android-sdk-mac_86",
    "orientations": [
        "portrait",
        "landscapeLeft",
        "landscapeRight",
        "portraitUpsideDown"
     ],
    "deviceType": "<Not applicable for Android>"
}

To generate a template of the configuration file, execute the command below:

sencha package generate <configTemplate.json>

represents the name of the configuration template file.

Note: Avoid using spaces in the path or filename.

The parameters below are specific to Android packages:

"applicationName":"<AppName>"

Defines the application's name (AppName). The resultant file will be named .apk.

"applicationId":"<AppID>"

Sets an ID for the application. Using a namespace like com.sencha.Touch2Package is recommended.

---Additional Content Omitted for Brevity---

To package a signed application and run it on a device, use this command:

sencha package <configFile.json>

An will be generated in the designated output location. This marked application can then be released for distribution.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The date formatting issue persists in jqGrid 3.5 as the dates are not being displayed correctly

I have been experimenting with jqGrid 3.5.2 and currently, I am extracting data from a local JSON object. Upon researching date formatting, I realized that the dates in my JSON were not properly formatted, so I converted them all to ISO8601Long format. Now ...

Unexpected behavior observed: Title attribute malfunctioning upon double clicking span element

I recently implemented the following code: <span title="hello">Hello</span> Under normal circumstances, the title attribute functions correctly when hovering over the element. However, after double clicking on the span element (causing the t ...

Opera browser having trouble with sidebar rendering

On my best days, I struggle immensely with troubleshooting browser display issues. The left-hand sidebar on this page () appears incorrect in Opera. While in all other browsers, the sidebar displays with an orange and tan background, for some unknown reas ...

Struggling to find a solution for directing to the featured homes page without the content overlapping with my navbar and search component. Any assistance would be greatly

Looking for assistance with routing to the featured homes page without the content overlapping my navbar and search component. I simply want it to direct to a new URL without importing the components unless specifically needed. Check out this link I suspe ...

Having trouble integrating JQuery Mobile into ReactJS - Unable to find a solution for 'jquery-mobile' package

I've been attempting to integrate JQM into my ReactJS project. Here's what I'm doing to add it: npm install <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="107a616575626950213e21213e21">[email protected]& ...

Uploading video files using XMLHttpRequest encountered an error on a particular Android device

One of our testers encountered an issue where they failed to upload a video file (.mp4) on a specific Android mobile phone. Interestingly, the same file uploaded successfully on an iPhone and another Android device. To investigate further, I attempted to ...

JQuery Utilization: Constructing Queries - Techniques for Extracting Queries from Backend Code

Incorporating JQuery Query Builder into my ASP.net project. How can I retrieve the generated query from the code behind? Additionally, is there functionality to dynamically update one filter based on another selected filter? ...

Is it possible to extract data from a table by adjusting Javascript in the inspector tool? The page is only showing today's data, but I'm interested in retrieving historical data by going back

My Desired Action: I am interested in extracting data from the 2nd and 3rd tables on this page. However, the data displayed is specific to the current 'day'. I wish to access readings from September 1st and import them into a Google Sheet. Speci ...

Tips for modifying and refreshing data in a live table with JQuery

One challenge I'm facing is figuring out how to transfer the data from a dynamic table back into input fields when clicking on the edit button of a specific row. Additionally, I need to update that particular row based on any changes made to the value ...

Encountering a challenge while rendering an Ajax partial using link_to to specify a controller action

I am facing an issue with rendering different partials into a div (id="content") on a "proposition" show page. The partial to be rendered depends on the selected tab at the top of the div. To achieve this, I have been attempting to use AJAX and the follow ...

developing a multimedia player using HTML5

I'm attempting to create a dynamic video "collage" that showcases videos with different aspect ratios in a flexible grid layout. Each row should have videos of the same height, while filling up the horizontal space within a container. With known widt ...

What is the process for updating a particular index in a list?

Currently, I am delving into React by working on a task master app. The concept is simple - each user input becomes a new task in an array of tasks. The app features Add, Delete, and Update buttons for managing these tasks. Everything is functioning smoot ...

Tips for showcasing information from the tmdb api by leveraging the value or data obtained from a separate api

I am currently working on a project that involves displaying movie data using the tmdb api. I receive the response from my own api which only includes the id of the tmdb movie. Here is an example of the response: [ { "id": 0, "tit ...

Unexpected lag causing delays in jQuery animations

I am attempting to implement a "hover" effect using jQuery. Everything seems to be working fine, except for a strange delay that occurs only the first time the complete callback is triggered - oddly enough, this is the only instance where it reaches the pr ...

using reactjs to dynamically render elements based on the selected condition in a select box

Is there a way to dynamically change an element based on the selected value of a dropdown in React? I'm looking for help with rendering conditions. Here's a snippet of my code: <Col span={12}> <Form.Item label='Qu ...

Tips for identifying when a change has been made to a SCSS file or any of its partial files

Looking to incorporate sass into a Ruby script but want to compile only when necessary. The typical method for compiling involves using the following code: require "sass" Sass::Engine.new(File.read(scss), options).render By utilizing appropriate hash val ...

Transferring a JSON object to a PHP script

I am attempting to send a JSON object with a structure like this: {"service": "AAS1", "sizeTypes":[{"id":"20HU", "value":"1.0"},{"id":"40FB","2.5"}]} Just to note: The sizeTypes array contains a total of approximately 58 items. Upon clicking the submit ...

How can I modify an array in Couchbase by using an N1QL query?

{ "name":"sara", "emailId":"<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="abcde8e2ea9627225c4b9a3afa7bbcc808cb554a1adaf">[email protected]</a>", "subjects" : [{ "name":"Math", "tutor":"alice", "classes" ...

Navigating through directory paths in JavaScript can be a daunting task for many

In my app.js file, I've included the following code: app.use(multer({dest:'./uploads'})) What does './uploads' refer to here? It is located in the same directory as app.js. In what way does it differ from simply using uploads? I ...

My live website is plagued by an annoying horizontal scroll bar that doesn't appear in the local host version

I am struggling to remove the unwanted horizontal scroll bar on my live website, although it is not visible on my local host... <-- this is my website, built using Vite + ReactJs. I attempted to use overflow: hidden; and max-width: 100% on the body t ...