Wyt*_*tze 12
提前警告......
首先,不要打扰官方文档升级手册.这只会帮助你从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
Run Code Online (Sandbox Code Playgroud)
2.在正确的地方
命令行工具最关键的方面是你总是要注意你目前所在的目录.告诉Phonegap构建和部署您的应用程序只有在您位于该应用程序的主文件夹中才有效.
通常,要使用Phonegap项目执行操作,您需要使用以下方法导航到项目的主目录:
cd /Users/yourself/thePathToYourWorkspace/YourCurrentPhonegapProject //On Mac
cd D:\ThePathToYourWorkspace/YourCurrentPhonegapProject //On Windows
Run Code Online (Sandbox Code Playgroud)
3.启蒙之路
PS:为了确保您安装的工具正确运行,您有时需要告诉计算机,如果它无法在当前目录中找到文件,它应该在许多额外目录中查找.您编辑称为路径变量的东西.在其他地方看一下,它并不太难,但对于Windows和Mac来说则不同.
4.首先获取工具箱的工具箱
要开始,基本文档是可以的.您下载并安装node.js,这是其他工具将使用的工具,然后使用它来安装phonegap/cordova 命令行工具.
//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
Run Code Online (Sandbox Code Playgroud)
从现在开始,您可以使用'phonegap'命令为项目执行许多任务.
5.打开工作区
您需要做的第一件事是创建一个工作空间,这是所有项目的主文件夹的通用词(您可以使用Windows资源管理器,Finder或任何其他用户友好的方式执行此操作).
特别是对于Windows,请尝试确保您可以在不使用空格的情况下键入该文件夹的完整路径.所以永远不要把你的工作区放在像"我的文档"这样的地方,特别是因为那是C:\ Documents and settings\John Doe \"的子目录.而是尝试类似"D:\ Workspace \"的东西.
如果您已经将Dropbox用于其他目的,并且更改Dropbox文件夹的位置并不是太麻烦,请考虑使用它来自动备份工作区.只需将Dropbox文件夹放在D:\或其他磁盘的根目录中.然后将Workspace添加为Dropbox的直接子文件夹.
如果碰巧在项目中同步文件,使用Dropbox可能会偶尔在开发过程中阻碍您.但结果是你有许多版本的文件的自动备份:当天的所有版本,昨天的一些版本,以前的每一个版本.
6.创建项目
接下来,使用该命令转到命令行控制台中的workspace目录cd
.在那里,你告诉Phonegap 使用命令放置一个空app的基本结构
$ phonegap create hello com.yourCompanyName.yourAppName HelloWorld
Run Code Online (Sandbox Code Playgroud)
这将创建一个文件夹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会要求用户许可的内容,例如访问您的手机或联系人或相机或加速度计),那么您需要在应用项目中安装插件.
看看这里的文档,看看如何做到这一点.
另外,请确保在config.xml中添加一行,告诉Phonegap不要求任何不必要的权限:
<preference name="permissions" value="none" />
Run Code Online (Sandbox Code Playgroud)
文档说这意味着你只需要一个权限(网络访问),但这并不完全正确.示例:如果您已安装摄像头插件,则无论您是否添加了上述值=无偏好标记,该应用程序都会要求用户提供摄像头访问权限.所有其他功能/权限相同.
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
Run Code Online (Sandbox Code Playgroud)
然后,当应用程序不正是你想要什么,你就可以把它的应用程序商店,你将需要采取一些最后的步骤来创建存储准备的应用程序包(.apk文件).
你需要安装'ant'.在我的情况下,安装所有其他东西意味着蚂蚁也自动安装,这可能是你的情况.Ant是一个构建包的工具(我的愚蠢推论,而不是经过验证的事实).
11.去蚂蚁去的地方
到目前为止,您一直在命令行控制台中从项目的主目录中搜索命令.但是,现在,您将需要使用您使用这些命令创建的Android apk,并且'ant'不知道'phonegap'会在哪里找到这些命令.
所以继续前进到子目录......
cd platforms/android //This is a subdir of blabla/workspaces/myproject.
Run Code Online (Sandbox Code Playgroud)
这是您的Android应用程序的java本机"包装器"的位置,用于您所做的HTML/CSS/Js.
12.准备发布
如果您需要对应用程序进行最后修改(例如从AndroidManifest.xml中删除奇怪的权限请求),请立即执行此操作.一定要编辑/ platforms/android文件夹中的AndroidManifest.xml,而不是/ platforms/android/bin中的那个.
由于Phonegap中的错误,您可能需要进行一些修改:
Phonegap sets it to 1
即使您在config.xml中以不同方式指定)13.释放蚂蚁
如果您真的准备将您的东西放入应用程序商店,只需触发此命令即可.准备好出错:你一次处理这一步比我在本手册中整理if-then过程更容易.
ant release
Run Code Online (Sandbox Code Playgroud)
当ant完成后,您应该在/ Platforms/Android/bin文件夹中找到名为YourAppName-release.apk的文件.这是您可以上传到Google Play的文件.
14."蚂蚁释放"的可能问题......
答:您的应用需要一个私钥
密钥存储在私有密钥库(文件)中.如果这不是您的第一个应用程序版本,请从存储它的任何地方获取该内容并将其放在一个简单易用的位置,如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
Run Code Online (Sandbox Code Playgroud)
您可以现在准备把一个apk文件在谷歌播放或其他一些Android商店.我并没有详尽无遗,但这些步骤应该会让你走得更远.欢迎评论!
归档时间: |
|
查看次数: |
2976 次 |
最近记录: |