Sencha Touch 2 Native Packaging for Android-程序员宅基地

技术标签: 开发工具  json  移动开发  

准备

打包安卓应用

  1. Prerequisite: Obtain an appropriate Android ready certificate (debug or release) for signing the application
  2. Install Sencha SDK Tools (SenchaSDKTools 2.0).
  3. Create a packaging configuration file to be use with the packager.
  4. Run the packager to create a packaged .apk.

Step 1: Android certification generation

The Android Keytool included in the Android SDK tools is one way of creating certificate for signing Android applications. Below is an example of a Keytool command that generates a private key:

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

Follow the steps on the Android developers guide “Signing Your Applications” for more information about creating certificates and signing applications.

Step 2: 安装 Sencha SDK Tools.

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

Step 3: Create a packaging configuration file to be used with the native packager.

The configuration file has 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>"}

A configuration file template can be created by running the following command:

sencha package generate <configTemplate.json>

<configTemplate.json> is the name of the configuration template file.

Note: the <configTemplate.json> path or filename cannot contain any space.

The following parameters are applicable to Android packages:

"applicationName":"<AppName>"

Specifies the name of your application (AppName). The output file will have the name <AppName>.apk.

"applicationId":"<AppID>"

Specifies an ID given to your application. It's suggested that you use a nameSpace for your app, such as com.sencha.Touch2Package.

"outputPath":"<AppPackageOutputPath>"

Specifies the output location of the packaged application <application.apk>.

"iconName":"<AppIconName>"

Specifies the launcher icon file to be used for your application. Refer to the Android Launcher Icons guide for further information on icon file specifications.

"versionString":"<AppVersion>",

Specifies the version of the application.

"webAppPath":"<PathToWebApp>"

Specifies the path of the web application to be packaged.

"configuration":"<Release | Debug>"

Specifies the build type from either Release or Debug.

"platform":"<Android | AndroidEmulator>"

Specifies if the build is for the Android device (Android) or the Android Emulator (AndroidEmulator).

"certificatePath":"<certificatePath>",

Specifies a specific Certificate location for the certificate used for signing your application.

"certificateAlias":"<CertificateAlias>"

Specifies a specific Certificate Alias to use for signing your application.

"orientations":["portrait","landscapeLeft","landscapeRight","portraitUpsideDown"

Optional parameter. Specifies the orientations of the application. Available options: portraitlandscapelandscapeRight, andportraitUpsideDown. If omitted, defaults to all four orientations mode.

"deviceType"

This is not applicable for Android applications. This config parameter is ignored when building an Android application.

Sample debug configuration file
{
     "applicationName":"SenchaTouch2Package","applicationId":"com.sencha.Touch2Package","iconName":"icon.png","versionString":"1.0","outputPath":"~/Desktop/STBuild-Android","webAppPath":"~/Desktop/www/","configuration":"Debug","platform":"Android","deviceType":"Universal","certificatePath":"~/Desktop/debug.keystore","certificateAlias":"androiddebugkey","sdkPath":"~/Desktop/android-sdk-mac_x86","orientations":["portrait","landscapeLeft","landscapeRight","portraitUpsideDown"]}
Sample release configuration file
{
     "applicationName":"SenchaTouch2Package","applicationId":"com.sencha.Touch2Package","iconName":"icon.png","versionString":"1.0","outputPath":"~/Desktop/STBuild-Android","webAppPath":"~/Desktop/www/","configuration":"Release","platform":"Android","deviceType":"Universal","certificatePath":"~/Desktop/senchatouch-key.keystore","certificateAlias":"senchatouch","sdkPath":"~/Desktop/android-sdk-mac_x86","orientations":["portrait","landscapeLeft","landscapeRight","portraitUpsideDown"]}

Step 4: Run the packager to create a packaged <application>.apk

Packaging a debug application and run it on an Android Emulator

Prerequisite: The Platform and Configuration setting needs to be set in the config file, for example

platform:AndroidEmulator
configuration:Debug

To package a debug application to run on the Android Emulator, do the following:

  • Start the Android Emulator
  • Issue the following command:

    sencha package run <configFile.json>

The application will start in the already running Android Emulator after successful execution of this command. If Android Emulator is not started before issuing the command, Android Emulator will not start automatically. If package is successful, an .apk is available in the application output location for you to manually test it on an Android Emulator or a device.

More info about Android Emulator can be found on the Android Developer Guide: Using the Android Emulator.

Packaging the application for distribution

To package a signed application to run on the device, issue the following command:

sencha package<configFile.json>

An <AppName.apk> is created in the specified output location. This is the application that you can use to release for distribution.

See Also

  1. Signing Your Applications
  2. Installing the ADT Plugin for Eclipse
  3. Eclipse
  4. Managing Virtual Devices for Android Emulator

Comments

Jaganlal
5th Feb '12
  0  

When i do a debug build for Android platform, i get the following error. ~path/AndroidManifest.xml:10: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon') Any help'll be appreciated. I'm using "iconName":"icon.png" I have icon.png in web application path (note, i tried to give the whole image path, still no use)

baamenabar
8th May '12
  0  

Notice that the example file on some distributions give a relative path to the inputPath parameter, it HAS to be absolute.

also

@Jaganlal: I had the same problem! then realized what the instruction meant... "This is file name of your icon. This should be in the same directory of this configuration file." it HAS to be on the same folder as the < packager.json > config file

gruese
7th Aug '12
  0  

In the last paragraph, the sencha command line is stated as

sencha package <configFile.json>

which does not work (shows usage info in command shell). If I'm not mistaken, this should be changed to

sencha package build <configFile.json>

pavel.stupka
9th Aug '12
  0  

How can I configure Android permissions using this configuration?

CMC
13th Aug '12
  0  

I keep getting this error: -bash: syntax error near unexpected token `newline'. what does this mean?

jop
28th Aug '12
  2  

Sencha Team, please correct in this text the lack of 'build' as stated by gruese.

In any case, I think everything is a little confused concerning sencha command, paths, etc. Still trying to create build in Windows without success.

jop
29th Aug '12
  2  

webAppPath or inputPath?

rain-er
3rd Sep '12
  0  

Successfully created a native apk package. But it does not workl Always the same error message "The webpage at file:///android_asset/index.html might be temporarily down....." Is anybody able to generate native apps for Android?????

ekjyot.kaur
14th Sep '12
  0  

Hi, I am trying to create apk file, but i am getting error " the current working directory is not a recognised sencha sdk or application folder.the specified config file is not available. "

jonathan999
27th Sep '12
  0  

Hi, when executing: sencha package build myConfig.json I am not getting any errors but the apk is not being generated. Is there an output message in the command prompt if the build is successful?

keshav.vohra
14th Oct '12
  0  

how can i set the version code for the app. I am trying to submit an update and its saying that versionCode 1 is alrady in use.

alonsozelek
15th Oct '12
  0  

jonathan999 Hi, when executing: sencha package build myConfig.json I am not getting any errors but the apk is not being generated. Is there an output message in the command prompt if the build is successful?

I HAVE the same problem, you could send my the solution please?

alonsozelek
15th Oct '12
  0  

And my application is not run in Android Emulator.

Help me please!

DougFisher
15th Oct '12
  0  

The Getting Started Video says to use sencha app build native I also noticed that at least in some places you should not use a backslash "\" in the file names, even though you are on windows. Use a forward slash instead "/". Then had to change my path to include the path to javac.exe (set path=%path%;C:\Program Files... Then I noticed that it was using parameter --target android-7 It gave the helpful command to run: android.bat list targets but failed to mention that you have to cd to the sdkpath and the tools directory to find that command. And also fails to mention how to change it from android-7 to android-15. Note that in the packager.json file I did have: "androidAPILevel":"15",

chintan
16th Oct '12
  0  

using SDK Tools Beta 3, sencha touch 2.0.1.1, Ubuntu 10

sencha package generate packager.json

[ERROR] /bin/sh: stbuild: not found

florianspallek
30th Oct '12
  0  

Hello,

I have the same problem here. I build the same app like in the "Getting Started" video. If I try to generate the android app with the "sencha app build native" command, the generator freezes at the step "Packaging your application as a native app...".

Any Ideas?

Regards, Florian

techtigre
2nd Nov '12
  0  

Make sure you have Apache Ant installed in your environment properly. I spent hours on this only to find my Windows PATH variable did not include my ANT or ANT/bin directory. The sencha packager creates a build.xml file when launched and ANT has to be available on your PATH to execute properly.

techtigre
2nd Nov '12
  0  

Also, it does seem that the parameter "androidAPILevel" in the packager.json file does not get reflected in the actual build. I too noticed that it's using --target android-7 no matter what this param is set to. So as a result, if you do NOT have the Android 2.1 (API 7) installed on your machine you will get errors during your build. I used Android's SDK manager to install ALL versions of Android from 2.1 to 4.1 to work around this issue.

burrellramone
29th Nov '12
  0  

Im suprised that almost everyone who left a comment has/had a problem. I can thereby conclude that this walkthrough is not very thorough.

burrellramone
30th Nov '12
  0  

After i installed the apk file on the andoid emulator it says that it cannot file a url that uses the filesystem protocl file:///. Please help.

arsuceno
23rd Jan '13
  3  

Worst guide ever o_O. If you are using Windows check paths of everything (Java JDK, Ant, Sencha SDK Tools...). It is better if you don't use spaces in your paths. Also, running:

sencha app build native

Which will give you a packager.temp.json ready to be launched by sencha package run packager.temp.json . I haven't been able to run the app in Android Emulator without building native before.

CalFord
8th Oct '13
  0  

Is there ANYONE on the planet that is a book or video or docs that actually makes this Sencha product work from install to packaging. Very disappointed over the extreme difficulty this product generates. And its the little things the company misses (or chooses to omit).

GeorgeHoffer
8th Oct '13
  0  

Please consider upgrading to the current version. Touch 2.3.0 and Sencha Cmd 4 help make native packaging understandable--we've done a lot of work to simplify native packaging and improve the docs. Plus in Touch 2.3.0, you get access to the new Apache Cordova interface and wide array of new functionality. See http://docs.sencha.com/touch/2.3.0/ for more information.

转载于:https://www.cnblogs.com/xiari/p/3479689.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30906185/article/details/98905037

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签