如何在 json 文件中正确设置 unicode 字符串来构建 sencha touch 应用程序?
这个假设可能是错误的,它不会为任何变体编译: "\u0423\u0413\u041F"和 "%u0423%u0413%u041F"。如果我使用拉丁字符(“UGP”),那么它会正常构建。
编译器日志:
c:\all\trunk\mobile\UGP>sencha --debug package build config.json
Sencha Cmd v3.0.0.250
[DBG] using path C:\Sencha\Cmd\3.0.0.250\stbuild;C:\Sencha\Cmd\3.0.0.2
50\stbuild\bin;C:\Program Files\pkzip;C:\Users\sergzach\Desktop\adt-bundle-windo
ws-x86\adt-bundle-windows-x86\sdk\platform-tools;C:\Program Files\Java\jdk1.7.0_
09\bin;C:\Sencha\Cmd\3.0.0.250;C:\SenchaSDKTools-2.0.0-beta3;C:\SenchaSDKTools-2
.0.0-beta3\bin;C:\SenchaSDKTools-2.0.0-beta3\compat\jsbuilder;C:\SenchaSDKTools-
2.0.0-beta3\compat\scripts;C:\Users\sergzach\Desktop\adt-bundle-windows-x86\adt-
bundle-windows-x86\sdk\tools;C:\all\sencha-projects;C:\Program Files\AMD APP\bin
\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32
\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C
:\Program Files\TortoiseSVN\bin;C:\Program Files\PostgreSQL\8.4\bin\;C:\Python26
\Scripts;C:\Python26;C:\Program Files\ImageMagick-6.6.7-Q16;C:\all\start;C:\all\
trunk\www\cometd\cometd-twisted;C:\Program Files\nodejs\;C:\Users\sergzach\AppDa
ta\Roaming\npm\
[DBG] executable located at C:\Sencha\Cmd\3.0.0.250\stbuild\stbuild.ex
e
[DBG] using workding directory .
Error: Project name '╨г╨У╨Я' contains invalid characters.
Allowed characters are: a-z A-Z 0-9 _
""C:/Users/sergzach/Desktop/adt-bundle-windows-x86/adt-bundle-windows-x86/sdk\to
ols\android" create project --target android-10 --name ╨г╨У╨Я --activity STActiv
ity --path "C:/all/trunk/mobile/UGP-out\/" --package com.ergosolo.firstApp"
Can not open destination file for writing
Failed to copy packager library
Failed to package application
Copy operation failed src=C:\Sencha\Cmd\3.0.0.250\stbuild\st-res/android/\nimble
kit.jar dst=C:/all/trunk/mobile/UGP-out\\libs\nimblekit.jar
[DBG] exit code was : 3
[DBG] exit code was : 3
[ERR]
Error: Project name '??????' contains invalid characters.
Allowed characters are: a-z A-Z 0-9 _
""C:/Users/sergzach/Desktop/adt-bundle-windows-x86/adt-bundle-windows-x86/sdk\to
ols\android" create project --target android-10 --name ?????? --activity STActiv
ity --path "C:/all/trunk/mobile/UGP-out\/" --package com.ergosolo.firstApp"
Can not open destination file for writing
Failed to copy packager library
Failed to package application
Copy operation failed src=C:\Sencha\Cmd\3.0.0.250\stbuild\st-res/android/\nimble
kit.jar dst=C:/all/trunk/mobile/UGP-out\\libs\nimblekit.jar
[ERR] stbuild exited with non-zero code : 3
com.sencha.exceptions.ExProcess: stbuild exited with non-zero code : 3
at com.sencha.command.pkg.PackageCommands$BasePackageCommand.execute(Pac
kageCommands.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sencha.cli.Command.dispatch(Command.java:78)
at com.sencha.cli.Commands.dispatch(Commands.java:49)
at com.sencha.cli.Commands.dispatch(Commands.java:49)
at com.sencha.command.Sencha.main(Sencha.java:71)
完整的config.json:
{
/**
* @cfg {String} applicationName
* @required
* This is the name of your application, which is displayed on the device when the app is installed. On IOS, this should match
* the name of your application in the Apple Provisioning Portal.
*/
"applicationName":"\u0423\u0413\u041F",
"iconName": "C:/all/trunk/mobile/UGP/resources/icons/Icon.png",
/**
* @cfg {String} applicationId
* This is the name namespace for your application. On IOS, this should match the name of your application in the Apple Provisioning Portal.
*/
"applicationId":"com.ergosolo.firstApp",
/**
* @cfg {String} bundleSeedId
* A ten character string which stands before aplication ID in Apple Provisioning Portal
*/
"bundleSeedId":"KPXFEPZ6EF",
/**
* @cfg {String} versionString
* @required
* This is the version of your application.
*/
"versionString":"1.0",
/**
* @cfg {Integer} versionCode
* @required
* This is the integer version code of your application, or you can refer to it as a build number. Used only for Android builds.
*/
"versionCode":"1",
/**
* @cfg {Object} icon
* For iOS, please refer to their documentation about icon sizes:
* https://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html
*
* For Android, please refer to the Google Launcher icons guide:
* http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html
*/
"icon": {
"57":"resources/icons/Icon.png",
"72":"resources/icons/Icon~ipad.png",
"114":"resources/icons/Icon@2x.png",
"144":"resources/icons/Icon~ipad@2x.png"
},
/**
* @cfg {String} inputPath
* @required
* This is location of your Sencha Touch 2 application, relative to this configuration file.
*/
"inputPath":"C:/all/trunk/mobile/UGP",
/**
* @cfg {String} outputPath
* @required
* This is where the built application file with be saved. Make sure that output path is not in your input path, you may get into endless recursive copying
*/
"outputPath":"C:/all/trunk/mobile/UGP-out",
/**
* @cfg {String} configuration
* @required
* This is configuration for your application. `Debug` should always be used unless you are submitting your app to an online
* store - in which case `Release` should be specified.
*/
"configuration":"Debug",
/**
* @cfg {String} platform
* @required
* This is the platform where you will be running your application. Available options are:
* - iOSSimulator
* - iOS
* - Android
* - AndroidEmulator
*/
"platform":"AndroidEmulator",
/**
* @cfg {String} deviceType
* @required
* This is device type that your application will be running on.
*
* If you are developing for Android, this is not necessary.
*
* Available options are:
* - iPhone
* - iPad
* - Universal
*/
"deviceType":"Universal",
/**
* @cfg {String} certificatePath
* This is the location of your certificate.
* This is required when you are developing for Android or you are developing on Windows.
*/
"certificatePath":"C:/all/GS/my-debug-key.keystore",
/**
* @cfg {String} certificateAlias
* This is the name of your certificate.
*
* IF you do not specify this on OSX, we will try and automatically find the certificate for you using the applicationId.
*
* This can be just a simple matcher. For example, if your certificate name is "iPhone Developer: Robert Dougan (ABCDEFGHIJ)", you
* can just put "iPhone Developer".
*
* When using a certificatePath on Windows, you do not need to specify this.
*/
"certificatePassword":"",
/**
* @cfg {String} certificatePassword
* The password which was specified during certificate export
*/
"provisionProfile":"",
/**
* @cfg {String} provisionProfile
* The path to the provision profile (APP_NAME.mobileprovision) which you can create and then download from Apple's provisioning portal
*/
"sdkPath":"C:/Users/sergzach/Desktop/adt-bundle-windows-x86/adt-bundle-windows-x86/sdk",
/**
* @cfg {String} sdkPath
* This is the path to the Android SDK, if you are developing an Android application.
*/
/**
/**
* @cfg {String} androidAPILevel
* This is android API level, the version of Android SDK to use, you can read more about it here: http://developer.android.com/guide/appendix/api-levels.html.
* Be sure to install corresponding platform API in android SDK manager (android_sdk/tools/android)
*/
"androidAPILevel":"10",
/**
/**
* @cfg {Array[String]} permissions
* Array of permissions that is used by an application (Android only)
* Full list of permissions for Android application can be found here: http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_CHECKIN_PROPERTIES
*/
"permissions":["android.permission.INTERNET"],
/**
* @cfg {Array[String]} orientations
* @required
* This is orientations that this application can run.
*/
"orientations": [
"portrait",
"landscapeLeft",
"landscapeRight",
"portraitUpsideDown"
]
}