准备工作
软件
- 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程序时使用.
Step 3: 创建一个配置文件供打包iOS程序时使用.
配置文件具有如下的格式:
注意:在Mac系统Terminal上运行如下的命令行可以创建配置文件模板:
<configTemplate.json> 是配置文件的名字. 注意: <configTemplate.json> 的路径和文件名中不能包含空格。
下面参数用于IOS打包
AppName 以及AppID都可以在 iOS provisioning portal 中的App IDs部分中找到
AppID
注意: App ID 需要与你在 Xcode的Identifier field输入的相同 。
你打包出文件的输出位置, <application.app>。
你的应用程序所需要的图标文件。
注意: Retina图标需要在文件名的末尾用@2x标记。例如icon.png (普通的图标文件),icon@2x.png (retina图标文件). 如果带有 @2x.png的retina图标存在,打包程序将包含retina图标.
注意: 请参考 iOS icon guideline 来进一步了解图标文件类型。
application的版本.
用来打包的web application路径。
指定创建出程序的类型: Release or Debug.
制定创建出程序的运行方式 iOS 模拟器还是iOS设备.
注意: the iOS simulator cannot run a signed build. A signed build can only be run on the device.
指定设备类型.可选项: - iPhone:用于 iPhone 设备 – iPad:用于iPad 设备 – Universal:可用于iphone和iPad二者。
这是一个非必选项. 你可以指定一个Certificate Alias来给你的app命名。
注意: 如果忽略此选项,默认的certificate将会是你在iOS Provisioning Portal中建立的那一个。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{
"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上运行如下的命令行可以创建配置文件模板:
1
|
sencha package generate <
configTemplate.json
>
|
<configTemplate.json> 是配置文件的名字. 注意: <configTemplate.json> 的路径和文件名中不能包含空格。
下面参数用于IOS打包
1
|
"applicationName":"<
AppName
>"
|
AppName 以及AppID都可以在 iOS provisioning portal 中的App IDs部分中找到
AppID
例如上方所示:
- AppName 为 “Sencha Touch 2 Packaging”
- AppID 为 “com.Sencha.Touch2Packaging”
注意: App ID 需要与你在 Xcode的Identifier field输入的相同 。
1
2
3
|
"applicationId"
:
"<AppID>"
"outputPath"
:
"<AppPackageOutputPath>"
|
你打包出文件的输出位置, <application.app>。
1
|
"iconName"
:
"<AppIconName>"
|
你的应用程序所需要的图标文件。
注意: Retina图标需要在文件名的末尾用@2x标记。例如icon.png (普通的图标文件),icon@2x.png (retina图标文件). 如果带有 @2x.png的retina图标存在,打包程序将包含retina图标.
注意: 请参考 iOS icon guideline 来进一步了解图标文件类型。
1
|
"versionString"
:
"<AppVersion>"
,
|
application的版本.
1
|
"webAppPath"
:
"<PathToWebApp>"
|
用来打包的web application路径。
1
|
"configuration"
:
"<Release | Debug>"
|
指定创建出程序的类型: Release or Debug.
1
|
"platform"
:
"<Simulator | iOS>"
|
制定创建出程序的运行方式 iOS 模拟器还是iOS设备.
注意: the iOS simulator cannot run a signed build. A signed build can only be run on the device.
1
|
"deviceType"
:
"<iPhone | iPad | Universal>"
|
指定设备类型.可选项: - iPhone:用于 iPhone 设备 – iPad:用于iPad 设备 – Universal:可用于iphone和iPad二者。
1
|
"certificateAlias"
:
"<(Optional)CertificateAlias>"
|
这是一个非必选项. 你可以指定一个Certificate Alias来给你的app命名。
注意: 如果忽略此选项,默认的certificate将会是你在iOS Provisioning Portal中建立的那一个。
1
2
3
4
5
6
|
"orientations"
: [
"portrait"
,
"landscapeLeft"
,
"landscapeRight"
,
"portraitUpsideDown"
]
|
这是一个可选的配置项. 你可以给app指定方向. 可选项包括: “portrait”, “landscapeLeft”, “landscapeRight” and “portraitUpsideDown”
注意: 如果忽略此选项,默认将包括四个方向。
Sample debug configuration file
Sample release configuration file
Step 4: 运行packager来打包获得一个程序
Sample debug configuration file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"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"
]
}
|
Step 4: 运行packager来打包获得一个程序
打包出一个在iOS 模拟器运行的app
准备工作: 在配置文件中设定Platform 和Configuration参数
例如:
1
2
|
"platform"
:
"iOSSimulator"
"configuration"
:
"Debug"
|
注意: 如果platform,configuration这两个选项没有提供 iOS将不能正常运行。
在终端运行以下命令,可以打包并在iOS上运行一个debug或unsigned的app。
注意: <AppName.app> 将会输出在指定的位置,这是一个你可以在iOS设备上运行的程序。
1
|
sencha package run <configFile.json>
|
顺利执行完此命令之后,iOS模拟器将会运行app
注意: “deviceType” 选项将引导启动合适的模拟器: iPhone iPad.
打包出一个在 iOS 设备上运行的app
在终端运行以下命令,打包出一个在iOS设备上运行的程序
1
|
sencha package <configFile.json>
|
注意: <AppName.app> 将会输出在指定的位置,这是一个你可以在iOS设备上运行的程序。