升级 iOS
本指南展示了如何修改 iOS 项目以从旧版本的 Cordova 升级。 大多数这些说明适用于使用较旧的一组命令行工具(早于 cordova CLI 实用程序)创建的项目。 有关如何更新 CLI 版本的信息,请参阅命令行界面。
注意:你应该使用最新发布的 iOS SDK 版本,该版本包含在最新版本的 Xcode 中。
升级 4.x 项目
cordova platform rm ios
cordova platform add ios
将 3.6.0 项目升级到 4.0.0
对于非 CLI 项目,运行
bin/update path/to/project
对于 CLI 项目
-
更新
cordovaCLI 版本。 请参阅命令行界面。 -
在现有项目中运行
cordova platform update ios。
将 3.3.0 项目升级到 3.4.0
对于非 CLI 项目,运行
bin/update path/to/project
对于 CLI 项目
-
更新
cordovaCLI 版本。 请参阅命令行界面。 -
运行
cordova platform update ios
将 3.2.0 项目升级到 3.3.0
对于非 CLI 项目,运行
bin/update path/to/project
对于 CLI 项目
-
更新
cordovaCLI 版本。 请参阅命令行界面。 -
运行
cordova platform update ios
将 3.1.0 项目升级到 3.2.0
对于非 CLI 项目,运行
bin/update path/to/project
对于 CLI 项目
-
更新
cordovaCLI 版本。 请参阅命令行界面。 -
运行
cordova platform update ios
将 3.0.0 项目升级到 3.1.0
对于非 CLI 项目,运行
bin/update path/to/project
对于 CLI 项目
-
更新
cordovaCLI 版本。 请参阅命令行界面。 -
运行
cordova platform update ios
iOS 7 问题
-
从
index.html文件的viewportmeta标签中删除width=device-width, height=device-height。(请参阅相关错误。) -
更新你的媒体、媒体捕获和启动画面核心插件以支持 iOS 7。
Xcode 5 问题
-
如果 Xcode 5 提示你这样做,请更新你的项目设置(在 Issues Navigator 中)。
-
在 Build Settings 选项卡下的 Build Options 部分更新你的 Compiler for C/C++/Objective-C 设置。 选择 Default compiler (Apple LLVM 5.0)。
从 2.9.0 升级到 CLI (3.0.0)
-
使用 cordova CLI 创建一个新的 Apache Cordova 3.0.0 项目,如命令行界面中所述。
-
将你的平台添加到 cordova 项目,例如:
cordova platform add ios。 -
将项目
www目录的内容复制到你刚刚创建的 cordova 项目根目录下的www目录。 -
从你的原始项目复制或覆盖任何原生资源(
Resources等),确保将任何新文件添加到.xcodeproj项目中。 iOS 项目在platforms\ios目录中构建。 -
将
config.xml复制到www目录,并删除任何插件定义。 在此处修改设置,而不是在平台目录中修改。 -
使用 cordova CLI 工具安装你需要的任何插件。 请注意,CLI 将所有核心 API 作为插件处理,因此可能需要添加它们。 只有 3.0.0 插件与 CLI 兼容。
-
构建并测试。
将 2.9.0 项目升级到 3.0.0
-
将 Cordova 3.0.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如
~/Documents/Cordova-3.0.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova.js文件(请注意它不再有版本后缀,版本在文件本身的标题中)复制到www目录,并删除www/cordova.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova.js文件。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。
注意:从 Cordova 3.0.0 开始,插件不是预安装的,你需要使用 plugman 命令行实用程序自行安装它们。 请参阅使用 Plugman 管理插件。
将 2.8.0 项目升级到 2.9.0
-
将 Cordova 2.9.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如
~/Documents/Cordova-2.9.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova.js文件(请注意它不再有版本后缀,版本在文件本身的标题中)复制到www目录,并删除www/cordova.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova.js文件。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。
将 2.7.0 项目升级到 2.8.0
-
将 Cordova 2.8.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如
~/Documents/Cordova-2.8.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova.js文件(请注意它不再有版本后缀,版本在文件本身的标题中)复制到www目录,并删除www/cordova-2.7.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova.js文件。 -
更新
config.xml文件中的任何<plugin>标签为<feature>标签。 请注意,现有的<plugin>标签仍然有效,但已弃用。 你可以在新项目的config.xml文件中复制此信息。 例如<plugins> <plugin name="LocalStorage" value="CDVLocalStorage" /> <!-- other plugins --> </plugins> <!-- change to: (note that a <feature> tag is on the same level as <plugins> --> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> <!-- other <feature> tags --> -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。 -
将这两个框架添加到你的项目中
OpenAL ImageIO -
更新你的项目目标Build Settings。 在 Linking → Other Linker Flags 下,将 "-Obj-C" 编辑为 "-ObjC"。
-
更新你的项目目标 Build Settings。 在 Linking → Other Linker Flags 下,将 "-all_load" 更改为
-force\_load ${BUILT\_PRODUCTS\_DIR}/libCordova.a。 只有当你在 此问题中定义了问题时,才需要这样做。
将 2.6.0 项目升级到 2.7.0
-
将 Cordova 2.7.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如
~/Documents/Cordova-2.7.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.7.0.js文件复制到www目录,并删除www/cordova-2.6.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova-2.7.0.js文件。 -
根据新项目中的
AppDelegate.m文件更新(或替换,如果你从未更改过该文件)AppDelegate.m文件(请参阅 此差异)。 -
在
config.xml文件中,删除此行。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。
将 2.5.0 项目升级到 2.6.0
-
将 Cordova 2.6.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如
~/Documents/Cordova-2.6.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将项目中的
www/cordova-2.6.0.js文件复制到www目录,并删除www/cordova-2.5.0.js文件。 -
更新
www/index.html文件(以及任何其他引用该脚本的文件)中的 Cordova 脚本引用,以引用新的cordova-2.6.0.js文件。 -
根据新项目中的
AppDelegate.m文件更新(或替换,如果你从未更改过该文件)AppDelegate.m文件(请参阅此差异)。 -
在
config.xml文件中,添加此新行。 -
在
config.xml文件中,添加此新行。 -
在
config.xml文件中,UIWebViewBounce 已更改为 DisallowOverscroll,默认值不同。 -
在
config.xml文件中,EnableLocation首选项已被弃用。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。
将 2.4.0 项目升级到 2.5.0
-
将 Cordova 2.5.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如
~/Documents/Cordova-2.5.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.5.0.js文件复制到www目录,并删除www/cordova-2.4.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova-2.5.0.js文件。 -
根据新项目中的
AppDelegate.m文件更新(或替换,如果你从未更改过该文件)AppDelegate.m文件(请参阅 此差异)。 -
在
config.xml文件中,添加这些新行。 -
在
config.xml文件中,编辑根元素,将其从 cordova 更改为 widget。 -
在
config.xml文件中,删除 OpenAllWhitelistURLsInWebView 首选项。 -
删除
cordova目录,并将新项目中的cordova目录复制到你的项目根目录中。 在 2.5.0 中,这已更新脚本。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。
将 2.3.0 项目升级到 2.4.0
-
下载并解压 Cordova 2.4.0 源代码到您硬盘上的一个永久目录位置,例如
~/Documents/Cordova-2.4.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.4.0.js文件复制到www目录,并删除www/cordova-2.3.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的cordova-2.4.0.js文件。 -
根据新项目中的
MainViewController.m文件更新(或替换,如果您从未更改过该文件)该文件(请参阅 此差异)。 -
根据新项目中的
AppDelegate.m文件更新(或替换,如果您从未更改过该文件)该文件(请参阅 此差异)。 -
在
config.xml文件中,添加这一新行。 -
删除
cordova目录,并将新项目中的cordova目录复制到您的项目根目录。在 2.4.0 中,这里修复了脚本。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。 -
将 AssetsLibrary.framework 作为资源添加到您的项目。(有关如何操作的说明,请参阅 Apple 的文档)。
将 2.2.0 项目升级到 2.3.0
-
下载并解压 Cordova 2.3.0 源代码到您硬盘上的一个永久目录位置,例如
~/Documents/Cordova-2.3.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.3.0.js文件复制到www目录,并删除www/cordova-2.2.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的cordova-2.3.0.js文件。 -
根据新项目中的
MainViewController.m文件更新(或替换,如果您从未更改过该文件)该文件。 -
删除
cordova目录,并将新项目中的cordova目录复制到您的项目根目录。在 2.3.0 中,这里有新的脚本。 -
删除
CordovaLib目录,并将新项目中的CordovaLib目录复制到你的项目根目录中。 -
通过在您的项目文件上运行脚本
bin/cordova\_plist\_to\_config\_xml,将Cordova.plist文件转换为config.xml。 -
通过在
<cordova><plugins>下添加此标签,将 InAppBrowser 插件添加到config.xml。<plugin name="InAppBrowser" value="CDVInAppBrowser" /> -
请注意,Objective-C 插件不再被列入白名单。要使用应用白名单将您的连接列入白名单,您需要将连接的
User-Agent标头设置为与主 Cordova WebView 相同的用户代理。您可以通过访问主视图控制器上的userAgent属性来获取此信息。主视图控制器 (CDVViewController) 还有一个URLisAllowed方法,可用于检查 URL 是否通过白名单。 -
设备 API 更改
- 对于 iOS,device.platform 过去返回
iPhone、iPad或iPod Touch;现在它(正确地)返回iOS。 - 对于 iOS,device.name(现在已在所有平台上弃用)过去返回用户的设备名称(例如“Shazron 的 iPhone 5”);现在它返回 device.platform 过去返回的内容:
iPhone、iPad或iPod Touch。 - 对于所有平台,都有一个新的属性叫做 device.model;这会返回特定的设备型号,例如
iPad2,5(对于其他平台,这会返回 device.name 过去返回的内容)。
- 对于 iOS,device.platform 过去返回
将 2.1.0 项目升级到 2.2.0
-
下载并解压 Cordova 2.2.0 源代码到您硬盘上的一个永久目录位置,例如
~/Documents/Cordova-2.2.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.2.0.js文件复制到www目录,并删除www/cordova-2.1.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的cordova-2.2.0.js文件。 - 根据新项目中的
MainViewController.m文件更新(或替换,如果您从未更改过该文件)该文件- 已更新 → viewWillAppear
-
将新项目中的
cordova目录复制到您的项目根目录。在 2.2.0 中,这里有一个更新的“模拟”脚本。 - 接下来,更新
CordovaLib子项目的引用。从 Cordova 2.1.0 开始,我们在引用CordovaLib的位置时不再使用 CORDOVALIB Xcode 变量,该引用现在是绝对文件引用。- 启动 Terminal.app
- 转到您安装 Cordova 的位置(参见第 1 步),在
bin子目录中 -
运行下面的脚本,其中第一个参数是您的项目
.xcodeproj文件的路径update_cordova_subproject path/to/your/project/xcodeproj
注意:在 2.2.0 中,bin/create 脚本将 CordovaLib 子项目复制到您的项目中。要拥有相同的设置,只需将正确的 CordovaLib 复制到您的项目目录中,并更新 Xcode 文件检查器中 CordovaLib 子项目的位置(相对于项目)。
将 2.0.0 项目升级到 2.1.0
使用 Cordova 2.1.0,CordovaLib 已升级为使用自动引用计数 (ARC)。您不需要升级到 ARC 即可使用 CordovaLib,但是如果您想升级您的项目以使用 ARC,请使用菜单中的 Xcode 迁移向导:编辑 → 重构 → 转换为 Objective-C ARC...,取消选择 libCordova.a,然后运行向导直到完成。
-
下载并解压 Cordova 2.1.0 源代码到您硬盘上的一个永久目录位置,例如
~/Documents/Cordova-2.1.0。 -
如果 Xcode 正在运行,请退出 Xcode。
-
使用 Terminal.app,导航到你上面下载的源代码所在的目录。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.1.0.js文件复制到www目录,并删除www/cordova-2.0.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的cordova-2.1.0.js文件。 - 根据新项目中的
AppDelegate.m文件更新(或替换,如果您从未更改过该文件)该文件- 已编辑 → application:didFinishLaunchingWithOptions
- 已添加 → application:supportedInterfaceOrientationsForWindow
- 根据新项目中的
MainViewController.m文件更新(或替换,如果您从未更改过该文件)该文件- 已添加 → viewWillAppear
-
将新项目中的
cordova目录复制到您的项目根目录。在 2.1.0 中,这里有更新的脚本来支持包含空格的路径。 -
从您的项目中删除
VERSION文件引用(不是CordovaLib中的那个)。 - 接下来,更新
CordovaLib子项目的引用。从 Cordova 2.1.0 开始,我们在引用CordovaLib的位置时不再使用 CORDOVALIB Xcode 变量,该引用现在是绝对文件引用。- 启动 Terminal.app
- 转到您安装 Cordova 的位置(参见第 1 步),在
bin子目录中 -
运行下面的脚本,其中第一个参数是您的项目
.xcodeproj文件的路径update_cordova_subproject path/to/your/project/xcodeproj
将 1.9.0 项目升级到 2.0.0
-
安装 Cordova 2.0.0。
-
创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。
-
将新项目中的
www/cordova-2.0.0.js文件复制到www目录,并删除www/cordova-1.9.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的cordova-2.0.0.js文件。 -
将新项目中的
cordova目录复制到您的项目根目录(如果您想要项目命令行工具)。 -
在
Cordova.plist文件中的 Supporting Files 组下添加一个新条目到Plugins下。键为Device,值为CDVDevice。 -
删除
Cordova.framework。 -
从 Supporting Files 组中删除
verify.sh。 -
在项目导航器中选择项目图标,选择您的项目目标,然后选择构建设置选项卡。
-
搜索预处理器宏,然后删除所有 CORDOVA_FRAMEWORK=1 值。
-
找到安装在您的主文件夹的
Documents子目录下的硬盘上的CordovaLib目录。 -
找到
CordovaLib目录中的CordovaLib.xcodeproj文件,然后将该文件拖放到您的项目中。它应该显示为一个子项目。 -
构建您的项目,您应该会收到一些与
#import指令相关的错误。 -
对于
#import错误,将任何基于引号的导入更改为此样式#import "CDV.h"为这种基于括号的样式
#import <Cordova/CDV.h>并删除任何 Cordova 导入周围的
#ifdef包装器,它们不再需要(导入现在已统一) -
再次构建您的项目,它应该没有任何
#import错误。 -
在项目导航器中选择项目图标,选择您的项目目标,然后选择构建阶段选项卡。
-
展开目标依赖项阶段,然后选择 + 按钮。
-
选择
CordovaLib目标,然后选择添加按钮。 -
展开第一个链接二进制文件与库阶段(它应该已经包含一堆框架),然后选择 + 按钮。
-
选择
libCordova.a静态库,然后选择添加按钮。 -
删除运行脚本阶段。
-
在项目导航器中选择项目图标,选择您的项目目标,然后选择构建设置选项卡。
-
搜索其他链接器标志,并添加值 -force_load 和 -Obj-C。
-
展开
CordovaLib子项目。 -
找到
VERSION文件,将其拖到您的主项目中(我们想要创建指向它的链接,而不是副本)。 -
选择为添加的任何文件夹创建组单选按钮,然后选择完成按钮。
-
选择您在上一步中刚刚拖入的
VERSION文件。 -
键入 Option-Command-1 组合键以显示文件检查器(或菜单项视图 → 实用工具 → 显示文件检查器)。
-
在文件检查器中,在位置的下拉菜单中选择相对于 CORDOVALIB。
-
将 Xcode 首选项 Xcode 首选项 → 位置 → 派生数据 → 高级… 设置为唯一,以便可以找到统一的标头。
-
在项目导航器中选择项目图标,选择您的目标,然后选择构建设置选项卡。
-
搜索标头搜索路径。对于该设置,追加这三个值,包括引号
"$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(BUILT_PRODUCTS_DIR)" -
搜索其他链接器标志。对于该设置,追加此值
-weak_framework CoreFoundation -
构建您的项目,它应该编译并链接,没有任何问题。
-
从方案下拉列表中选择您的项目,然后选择 iPhone 5.1 模拟器。
-
选择运行按钮。
注意:如果您的项目在模拟器中无法按预期工作,请注意 Xcode 控制台日志中的任何错误,以获取线索。
将 1.8.x 项目升级到 1.9.0
-
安装 Cordova 1.9.0。
-
创建一个新项目。您将需要这个新项目中的一些资产。
-
将新项目中的
www/cordova-1.9.0.js文件复制到www目录,并删除www/cordova-1.8.x.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的cordova-1.9.0.js文件。
注意:1.9.0 版本支持新的 BackupWebStorage 布尔值 Cordova.plist 设置。默认情况下启用,因此请将其设置为 false 以禁用它,尤其是在 iOS 6 上。请参阅 发行说明:Safari 和 UIKit 部分
将 1.7.0 项目升级到 1.8.x
-
安装 Cordova 1.8.0。
-
创建一个新项目。您将需要这个新项目中的一些资产。
-
将新项目中的
www/cordova-1.8.0.js文件复制到www目录中,并删除www/cordova-1.7.x.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova-1.8.0.js文件。
如果您打算使用 Capture API,则需要新的 iPad retina-display 资源
-
将新项目中的
Resources/Capture.bundle项复制到您的项目目录中,覆盖您现有的Resources/Capture.bundle项。 -
在您的项目中,在 Xcode 的“项目导航器”中选择
Capture.bundle项,键入 Delete 键,然后从出现的对话框中选择 移除引用。 -
将上面步骤 1 中的新
Capture.bundle拖到 Xcode 的“项目导航器”中,然后选择 为任何添加的文件夹创建组 单选按钮。
将 1.6.x 项目升级到 1.7.0
-
安装 Cordova 1.7.0。
-
创建一个新项目。您将需要这个新项目中的一些资产。
-
将新项目中的
www/cordova-1.7.0.js文件复制到www目录中,并删除www/cordova-1.6.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova-1.7.0.js文件。
将 1.5.0 项目升级到 1.6.x
-
安装 Cordova 1.6.1。
-
备份项目中的
AppDelegate.m、AppDelegate.h、MainViewController.m、MainViewController.h和Cordova.plist。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将这些文件从新项目复制到您基于 1.5.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)
AppDelegate.h AppDelegate.m MainViewController.h MainViewController.m Cordova.plist -
将所有新的
MainViewController和AppDelegate文件添加到您的 Xcode 项目中。 -
将新项目中的
www/cordova-1.6.1.js文件复制到www目录中,并删除www/cordova-1.5.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的cordova-1.6.1.js文件。 -
将新的
Cordova.plist文件添加到您的项目中。这是必要的,因为核心插件服务名称必须更改为与 Android 和 BlackBerry 中的名称匹配,以便使用统一的 Cordova JavaScript 文件 (cordova-js)。 -
将您备份的 Cordova.plist 中包含的任何设置、插件和 ExternalHosts 条目集成到新的
Cordova.plist中。 -
将您备份的
AppDelegate.h和AppDelegate.m中包含的任何特定于项目的代码集成到新的AppDelegate文件中。AppDelegate.m中的任何UIWebViewDelegate或CDVCommandDelegate代码现在都需要放入MainViewController.m中(请参阅该文件中的注释掉的部分)。 -
将您备份的
MainViewController.h和MainViewController.m中包含的任何特定于项目的代码集成到新的 MainViewController 文件中。 -
单击“项目导航器”中的项目图标,选择您的项目,然后选择 构建设置 选项卡。
-
在搜索字段中输入 C/C++/Objective-C 编译器。
-
选择 Apple LLVM Compiler 3.1 值。
将 1.4.x 项目升级到 1.5.0
-
安装 Cordova 1.5.0。
-
创建一个新项目并运行一次。您将需要这个新项目中的一些资源。
-
将新项目中的
www/cordova-1.5.0.js文件复制到www目录中,并删除www/phonegap-1.4.x.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 Cordovacordova-1.5.0.js文件。 -
在“项目导航器”中找到
PhoneGap.framework,选择它。 -
键入 Delete 键,并删除“项目导航器”中的
PhoneGap.framework引用。 -
键入 Option-Command-A 组合键,这将下拉一个工作表以将文件添加到您的项目(添加文件…工作表)。确保已选择 为任何添加的文件夹创建组 单选按钮。
-
键入 Shift-Command-G 组合键,这将下拉另一个工作表,以便您转到某个文件夹(转到文件夹:工作表)。
-
在 转到文件夹: 工作表中输入
/Users/Shared/Cordova/Frameworks/Cordova.framework,然后按 前往 按钮。 -
按 添加文件… 工作表中的 添加 按钮。
-
在“项目导航器”中选择
Cordova.framework。 -
键入 Option-Command-1 组合键以显示 文件检查器。
-
在 文件检查器 中,选择 位置 下拉菜单的 绝对路径。
-
键入 Option-Command-A 组合键,这将下拉一个工作表以将文件添加到您的项目(添加文件…工作表)。确保已选择 为任何添加的文件夹创建组 单选按钮。
-
键入 Shift-Command-G 组合键,这将下拉另一个工作表,以便您转到某个文件夹(转到文件夹:工作表)。
-
在 转到文件夹: 工作表中输入
~/Documents/CordovaLib/Classes/deprecated,然后按 前往 按钮。 -
按 添加文件… 工作表中的 添加 按钮。
-
在
AppDelegate.h、AppDelegate.m和MainViewController.h文件中,将整个#ifdef PHONEGAP_FRAMEWORK块替换为#import "CDVDeprecated.h" -
单击“项目导航器”中的 项目图标,选择您的目标,然后选择 构建设置 选项卡。
-
搜索 框架搜索路径。
-
将现有值替换为
/Users/Shared/Cordova/Frameworks。 -
搜索 预处理器宏。
-
对于第一个(组合)值,将该值替换为 CORDOVA_FRAMEWORK=YES。
-
选择 构建阶段 选项卡。
-
展开 运行脚本。
-
将任何出现的 PhoneGap 替换为 Cordova。
-
在“项目导航器”中找到
PhoneGap.plist文件,然后单击文件名一次以进入名称编辑模式。 -
将
PhoneGap.plist重命名为Cordova.plist。 -
右键单击
Cordova.plist,然后选择 打开方式 → 源代码。 -
按 Option-Command-F,从“源代码”窗口左上角的下拉菜单中选择 替换。
-
在“查找”字符串中输入
com.phonegap,在“替换”字符串中输入org.apache.cordova,然后按 全部替换 按钮。 -
在“查找”字符串中输入 PG,在“替换”字符串中输入 CDV,然后按 全部替换 按钮。
-
按 Command-B 进行构建。您仍然有一些可以在将来删除的弃用项(请参阅
CDVDeprecated.h。例如,将代码中使用 PG* 的类替换为 CDV*)。
将 1.4.0 项目升级到 1.4.1
-
安装 Cordova 1.4.1。
-
备份
MainViewController.m。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将新项目中的
MainViewController.m文件复制到您基于 1.4.0 的项目目录中,替换旧文件(首先备份上面步骤 2 中的文件)。 -
将
MainViewController.m文件添加到您的 Xcode 项目中。 -
将您备份的
MainViewController.m中包含的任何特定于项目的代码集成到新文件中。 -
更新
phonegap-1.4.0.js文件是可选的,在 1.4.0 和 1.4.1 之间的 JavaScript 中没有任何更改。
将 1.3.0 项目升级到 1.4.0
-
安装 Cordova 1.4.0。
-
备份项目中的
AppDelegate.m和AppDelegate.h。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将这些文件从新项目复制到您基于 1.3.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)
AppDelegate.h AppDelegate.m MainViewController.h MainViewController.m MainViewController.xib -
将所有
MainViewController文件添加到您的 Xcode 项目中。 -
将新项目中的
www/phonegap-1.4.0.js文件复制到www目录中,并删除www/phonegap-1.3.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的phonegap-1.4.0.js文件。 -
在
PhoneGap.plist文件中的Plugins下添加一个新条目。键为com.phonegap.battery,值为PGBattery。 -
将您备份的
AppDelegate.h和AppDelegate.m中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。
将 1.2.0 项目升级到 1.3.0
-
安装 Cordova 1.3.0。
-
备份项目中的
AppDelegate.m和AppDelegate.h。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将这些文件从新项目复制到您基于 1.2.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)
AppDelegate.h AppDelegate.m MainViewController.h MainViewController.m MainViewController.xib -
将所有
MainViewController文件添加到您的 Xcode 项目中。 -
将新项目中的
www/phonegap-1.3.0.js文件复制到www目录中,并删除www/phonegap-1.2.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的phonegap-1.3.0.js文件。 -
在
PhoneGap.plist文件中的Plugins下添加一个新条目。键为com.phonegap.battery,值为PGBattery。 -
将您备份的
AppDelegate.h和AppDelegate.m中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。
将 1.1.0 项目升级到 1.2.0
-
安装 Cordova 1.2.0。
-
备份项目中的
AppDelegate.m和AppDelegate.h。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将这些文件从新项目复制到您基于 1.1.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)
AppDelegate.h AppDelegate.m MainViewController.h MainViewController.m MainViewController.xib -
将所有
MainViewController文件添加到您的 Xcode 项目中。 -
将新项目中的
www/phonegap-1.2.0.js文件复制到www目录中,并删除www/phonegap-1.1.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的phonegap-1.2.0.js文件。 -
在
PhoneGap.plist文件中的Plugins下添加一个新条目。键为com.phonegap.battery,值为PGBattery。 -
将您备份的
AppDelegate.h和AppDelegate.m中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。
将 1.0.0 项目升级到 1.1.0
-
安装 Cordova 1.1.0。
-
备份项目中的
AppDelegate.m和AppDelegate.h。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将这些文件从新项目复制到您基于 1.0.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)
AppDelegate.h AppDelegate.m MainViewController.h MainViewController.m MainViewController.xib -
将所有
MainViewController文件添加到您的 Xcode 项目中。 -
将新项目中的
www/phonegap-1.1.0.js文件复制到www目录中,并删除www/phonegap-1.0.0.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的phonegap-1.1.0.js文件。 -
在
PhoneGap.plist文件中的Plugins下添加一个新条目。键为com.phonegap.battery,值为PGBattery。 -
将您备份的
AppDelegate.h和AppDelegate.m中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。
将 0.9.6 项目升级到 1.0.0
-
安装 Cordova 1.0.0。
-
备份项目中的
AppDelegate.m和AppDelegate.h。 -
创建一个新项目。您将需要这个新项目中的一些资产。
-
将这些文件从新项目复制到您基于 0.9.6 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)
AppDelegate.h AppDelegate.m MainViewController.h MainViewController.m MainViewController.xib -
将所有
MainViewController文件添加到您的 Xcode 项目中。 -
将新项目中的
www/phonegap-1.0.0.js文件复制到www目录中,并删除www/phonegap-0.9.6.js文件。 -
更新
www/index.html文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的phonegap-1.0.0.js文件。 -
在
PhoneGap.plist文件中的Plugins下添加一个新条目。键为com.phonegap.battery,值为PGBattery。 -
将您备份的
AppDelegate.h和AppDelegate.m中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。