提前警告...
首先,不要打扰官方文档升级手册。这只会帮助您从 1.0 升级到 1.1,然后从 1.1 升级到 1.2,然后从 1.2 升级到 1.3,等等。如果您想跳过多个版本,您不知道自己是否做对了。因此,当您升级时,请从头开始创建一个新项目。
此外,向前跳跃以确保您不会在流程中陷入困境:如果您的 3.0 之前的 Phonegap 应用程序使用自定义插件,那么如果您想要升级,请仔细考虑。向前滚动到“注意自定义插件”以了解原因。
一步一步
话虽如此,这是一步一步的过程,以行分隔。
1.命令行
Phonegap 3.0 完全是关于命令行工具。它看起来比实际上要可怕得多。您只需要安装一些您将在那里使用的工具(主要是通过在命令行中键入命令)。
需要了解的最重要的一般命令是:
//For Mac and Windows (on Windows, replace slashes by backslashes)
cd mySubfolder //Go to the subfolder "mySubfolder"
cd /MyTopLevelFolder/SomeOtherSubfolder //Go to any folder using the entire address
//Show a list of files and subfolders where you currently are
dir //On Windows
ls //On Mac
2。在正确的地方
命令行工具最关键的方面是您必须始终注意您当前所在的目录。仅当您位于该应用的主文件夹中时,告诉 Phonegap 构建和部署您的应用才有效。
通常,要对您的 Phonegap 项目进行操作,您需要使用以下命令导航到项目的主目录:
cd /Users/yourself/thePathToYourWorkspace/YourCurrentPhonegapProject //On Mac
cd D:\ThePathToYourWorkspace/YourCurrentPhonegapProject //On Windows
3.启蒙之路
PS:为确保您安装的工具正确运行,您有时需要告诉计算机,如果它在当前目录中找不到文件,它应该在许多额外的目录中查找。您编辑称为路径变量的东西。在别处查找,这并不太难,但对于 Windows 和 Mac 来说是不同的。
4.先获取工具箱的工具箱
首先,basic docs 没问题。您下载并安装 node.js,这是其他工具将使用的工具,然后使用它来安装 phonegap/cordova 命令行工具。 p>
//Like so, for Mac
$ sudo npm install -g phonegap
//Note: the "sudo" bit is needed to install a number of necessary files in folders that Apple protects from direct user editing
从现在开始,您可以使用“phonegap”命令为您的项目执行多项任务。
5.打开工作区
您需要做的第一件事是创建一个工作区,它是所有项目的主文件夹的通用词(您可以使用 Windows 资源管理器、Finder 或任何其他用户来执行此操作- 也很友好)。
特别是对于 Windows,请尝试确保您可以键入该文件夹的完整路径而不使用空格。所以永远不要把你的工作空间放在像“我的文档”这样的地方,尤其是因为那是 C:\Documents and settings\John Doe\" 的子目录。而是尝试像 "D:\Workspace\" 这样的地方。
如果您已经将 Dropbox 用于其他目的,并且更改 Dropbox 文件夹的位置并不麻烦,请考虑使用它来自动备份您的工作区。只需将 Dropbox 文件夹放在 D:\ 或其他磁盘的根目录中即可。然后将 Workspace 添加为 Dropbox 的直接子文件夹。
使用 Dropbox偶尔会在开发过程中妨碍您同步项目中的文件。但结果是您可以自动备份文件的多个版本:当天的所有版本,昨天的一些版本,前一天的一个版本。
6.创建您的项目
接下来,您在命令行控制台中使用cd 命令转到您的工作区目录。在那里,您告诉 Phonegap 使用命令
放置一个
空应用的基本结构
$ phonegap create hello com.yourCompanyName.yourAppName HelloWorld
这将创建一个文件夹 HelloWorld 并在其中填充许多子目录,其中包含作为应用程序主干的文件。
7.把它挂在脚手架上
然后你开始填充这个结构。大多数情况下,您的应用程序将是一堆 HTML、CSS 和 Javascript 文件。那些放在主 www 文件夹中。该文件夹还包含 config.xml 文件,其中包含您应用的许多设置,例如使用什么图标、显示什么名称、是否显示 Android 状态栏、哪些域要列入白名单等。
Phonegap 将这些文件组合在 /www 目录中,因此您可以将所有“可编辑”的东西放在一起。如果您不想让您的应用使用插件来做任何花哨的事情,那么您就可以开始了。
8.以正确的方式列入白名单
如果您的应用程序的任何部分实际访问互联网,即使只是针对 Google Analytics(分析)之类的东西,您也必须告诉 Phonegap 将相应的域名“列入白名单”。如上所述,这是使用 MyProject\www\config.xml 中的标签完成的。
这是一个棘手的问题,因为 Phonegap 在处理这个问题上的平台差异时遇到了麻烦。
对于 Android(以 Google Analytics 为例),将您的域添加到白名单中,如下所示:
您添加此域两次的原因是,许多在线服务以未经验证的简单 http:// 协议开始,但它们的某些功能随后可能会从/向同一安全 https:// 地址获取或发送代码域。
星号很重要,因为您希望能够从 **www.**google-analytics.com 以及主 google-analytics.com 或任何子域下载脚本和其他内容。
9.插入附加功能
如果您的应用需要特殊功能(Android 会要求用户许可的功能,例如访问您的手机或通讯录或相机或加速度计),那么您需要在您的应用项目中安装插件。
查看文档中的here 了解如何操作。
另外,请确保在 config.xml 中添加一行,告诉 Phonegap 不要请求任何不必要的权限:
<preference name="permissions" value="none" />
文档说这意味着您只要求一个权限(网络访问),但事实并非如此。示例:如果您安装了相机插件,无论您是否添加了上述 value=none 偏好标签,应用程序都会向用户询问相机访问权限。所有其他功能/权限相同。
10.小心使用自定义插件
另外,这似乎是 Phonegap 中的一个错误,无论您的插件和权限设置如何,该应用程序总是会尝试获得其他三个权限:RECORD_VIDEO、ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION。
Phonegap 只是将它们放在 Android 清单中,就好像您在某处指定了一样。当您构建应用程序以实际发布到应用程序商店时,您需要修复此问题。如何:在最后一次构建之后,但在签名和发布包之前编辑你的 AndroidManifest.xml。
这样你就可以获得这些讨厌的权限。但是每次您将新的应用版本上传到应用商店时,您都必须重复此操作!
除了标准插件,Phonegap 一直有大量第三方自定义插件。 Phonegap 3.0 中的安装方式与以前完全不同。已经知道这个练习的懒惰的专家说“就像安装核心插件一样”,但没有人费心在任何地方举个例子。
如果您知道如何将 3.0 之前的插件安装过程翻译成 3.0+ 的过程,请添加评论,我将复制粘贴到本手册中。
当您准备好开始测试您的应用时,请先连接您的设备(或安装模拟器)。这些命令将是最有用的,但并非所有命令都有很好的记录...
$ phonegap build android //This builds a test app, but doesn't run it
$ phonegap run android //This builds the test app AND runs it on device/emulator
然后,当应用完全按照您的意愿运行,并且您已准备好将其放入应用商店时,您需要采取最后几个步骤来创建一个可用于商店的应用应用程序包 (.apk)。
您需要安装“ant”。在我的例子中,安装所有其他的东西意味着 ant 也被自动安装了,这很可能是你的情况。 Ant 是一个构建包的工具(我的愚蠢推论,不是经过验证的事实)。
11.蚂蚁去哪里
到目前为止,您一直在命令行控制台中从项目的主目录中执行命令。但是,现在您需要使用您使用这些命令创建的 Android apk,而“ant”不知道“phonegap”在哪里可以找到这些命令。
所以转到子目录...
cd platforms/android //This is a subdir of blabla/workspaces/myproject.
这是您制作的 HTML/CSS/Js 内容的 Android 应用的 Java 原生“包装器”的位置。
12.准备发布
如果您需要对应用程序进行最后的修改(例如从 AndroidManifest.xml 中删除奇怪的权限请求),请立即进行。请务必编辑 /platforms/android 文件夹中的 AndroidManifest.xml,而不是 /platforms/android/bin 中的那个。
由于 Phonegap 中的错误,您可能需要进行一些修改:
- 删除不需要的权限请求
- 手动设置版本代码(
Phonegap sets it to 1 即使您在 config.xml 中指定了不同的方式)
13.释放蚂蚁
如果您真的准备好将您的东西放入应用商店,只需启动此命令即可。准备好出错:您一次处理这些步骤比我将整个 if-then 过程放在本手册中要容易。
ant release
ant 完成后,您应该在文件夹 /Platforms/Android/bin 中找到一个名为 YourAppName-release.apk 的文件。这是您可以上传到 Google Play 的文件。
14. “ant release”的可能问题...
A.您的应用需要私钥
密钥存储在私有密钥库(文件)中。如果这不是您的第一个应用程序版本,请从您存储的任何地方获取这些内容,并将其放在一个简单、易于键入的位置,例如 D:\Developer\Keystores。如果这是您的第一个应用版本,请创建一个密钥。
B. Ant 找不到您的密钥
Ant 不知道在哪里可以找到这个密钥库,因此您需要在platforms/Android 目录中编辑一个文件以将其指向正确的方向。该文件称为 ant.properties。使用纯文本编辑器添加这些属性:
//Point it to the right directory:
key.store=/Users/Me/Dropbox/Developer/Keystores/keystoreForMyFirstApp //For Mac
key.store = D:\Dropbox\Developer\Keystores\keystoreForMyFirstApp //For Windows
//This describes the name of your signing key, as stored in the keystore
key.alias=FirstKey
您现在可能准备好将 apk 文件放入 Google Play 或其他一些 Android 商店。我并没有详尽无遗,但这些步骤应该会让你走得很远。欢迎评论!