准备工作
软件
- Mac OS X 10.6+
- Xcode (iOS 模拟器所需要的)
Apple iOS provisioning
- Complete iOS provisioning on the Apple iOS provisioning portal and have the certificates and devices setup through the provisioning portal and Xcode.
- Create an App ID and finish provisioning your application. Please refer to the How-To section in the Apple iOS provisioning portal for help.
注意: 在打包iOS应用程序的过程中,需要用到App ID和App name。
在Mac系统上打包iOS系统应用程序的步骤
- 前期准备:进入 Apple iOS provisioning portal完成开发者授权。
- 安装打包程序部分: Sencha SDK Tools 2.0
- 创建一个配置文件用于打包IOS应用.
- 运行 packager 打包工具,创建一个App.
Step 1:在Apple iOS provisioning portal完成iOS程序开发者授权
可查看开发者授权系统Apple iOS provisioning portal 来获得开发和发布应用程序所需要的certificate和profile。
Step 2: 安装打包程序
运行Sencha SDK 安装程序: SenchaSDKTools (SenchaSDKTools-2.0.0-Beta)
包含有打包选项的的sencha command会被安装到指定的目录中(默认: Applications/SenchaSDKTools-2.0.0-Beta/command).
Step 3: 创建一个配置文件供打包iOS程序时使用.
配置文件具有如下的格式:
- {
- "applicationName": "<AppName>",
- "applicationId": "<AppID>",
- "outputPath": "<AppPackageOutputPath>",
- "iconName": "<AppIconName>",
- "versionString": "<AppVersion>",
- "webAppPath": "<PathToWebApp>",
- "configuration": "<Release | Debug>",
- "platform": "<iOSSimulator | iOS>",
- "deviceType": "<iPhone | iPad | Universal>",
- "certificateAlias": "<(Optional)CertificateAlias>",
- "orientations": [
- "portrait",
- "landscapeLeft",
- "landscapeRight",
- "portraitUpsideDown"
- ]
- }
注意:在Mac系统Terminal上运行如下的命令行可以创建配置文件模板:
- sencha package generate <configTemplate.json>
<configTemplate.json> 是配置文件的名字. 注意: <configTemplate.json> 的路径和文件名中不能包含空格。
下面参数用于iOS打包
- "applicationName":"<AppName>"
AppName 以及AppID都可以在 iOS provisioning portal 中的App IDs部分中找到
AppID
例如上方所示:
- AppName 为 “Sencha Touch 2 Packaging”
- AppID 为 “com.Sencha.Touch2Packaging”
注意: App ID 需要与你在 Xcode的Identifier field输入的相同 。
你打包出文件的输出位置,<application.app>。
- "iconName":"<AppIconName>"
你的应用程序所需要的图标文件。
注意: Retina图标需要在文件名的末尾用@2x标记。例如icon.png (普通的图标文件),icon@2x.png (retina图标文件). 如果带有 @2x.png的retina图标存在,打包程序将包含retina图标.
注意: 请参考 iOS icon guideline 来进一步了解图标文件类型。
- "versionString":"<AppVersion>",
application的版本.
- "webAppPath":"<PathToWebApp>"
用来打包的web application路径。
- "configuration":"<Release | Debug>"
指定创建出程序的类型: Release or Debug.
- "platform":"<Simulator | iOS>"
制定创建出程序的运行方式 iOS 模拟器还是iOS设备.
注意: the iOS simulator cannot run a signed build. A signed build can only be run on the device.
- "deviceType":"<iPhone | iPad | Universal>"
指定设备类型.可选项: - iPhone:用于 iPhone 设备 – iPad:用于iPad 设备 – Universal:可用于iphone和iPad二者。
- "certificateAlias":"<(Optional)CertificateAlias>"
这是一个非必选项. 你可以指定一个Certificate Alias来给你的app命名。
注意: 如果忽略此选项,默认的certificate将会是你在iOS Provisioning Portal中建立的那一个。
- "orientations": [
- "portrait",
- "landscapeLeft",
- "landscapeRight",
- "portraitUpsideDown"
- ]
这是一个可选的配置项. 你可以给app指定方向. 可选项包括: “portrait”, “landscapeLeft”, “landscapeRight” and “portraitUpsideDown”
注意: 如果忽略此选项,默认将包括四个方向。
Step 4: 运行packager来打包获得一个程序
- Sample debug configuration file
- {
- "applicationName":"Sencha Touch 2 Packaging",
- "applicationId":"com.sencha.touch2packaing",
- "iconName":"icon.png",
- "versionString":"1.0",
- "outputPath":"~/Desktop/STBuild-iOS",
- "webAppPath":"~/Desktop/www/",
- "configuration":"Debug",
- "platform":"iOSSimulator",
- "deviceType":"iPhone",
- "orientations": [
- "portrait",
- "landscapeLeft",
- "landscapeRight",
- "portraitUpsideDown"
- ]
- }
- Sample release configuration file
- {
- "applicationName":"Sencha Touch 2 Packaging",
- "applicationId":"com.sencha.touch2packaing",
- "iconName":"icon.png",
- "versionString":"1.0",
- "outputPath":"~/Desktop/STBuild-iOS",
- "webAppPath":"~/Desktop/www/",
- "configuration":"Release",
- "platform":"iOS",
- "deviceType":"iPhone",
- "orientations": [
- "portrait",
- "landscapeLeft",
- "landscapeRight",
- "portraitUpsideDown"
- ]
- }
打包出一个在iOS 模拟器运行的app
准备工作: 在配置文件中设定Platform 和Configuration参数
例如:
- "platform":"iOSSimulator"
- "configuration":"Debug"
注意: 如果platform,configuration这两个选项没有提供 iOS将不能正常运行。
在终端运行以下命令,可以打包并在iOS上运行一个debug或unsigned的app。
- sencha package run <configFile.json>
顺利执行完此命令之后,iOS模拟器将会运行app
注意: “deviceType” 选项将引导启动合适的模拟器: iPhone iPad.
打包出一个在 iOS 设备上运行的app
在终端运行以下命令,打包出一个在iOS设备上运行的程序
- sencha package <configFile.json>
注意: <AppName.app> 将会输出在指定的位置,这是一个你可以在iOS设备上运行的程序。
原文链接: http://html5mobi.gotoip1.com/discussion/97/sencha-touch-2-sencha-touch-2-ios