升级 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 项目

  1. 更新 cordova CLI 版本。 请参阅命令行界面

  2. 在现有项目中运行 cordova platform update ios

将 3.3.0 项目升级到 3.4.0

对于非 CLI 项目,运行

bin/update path/to/project

对于 CLI 项目

  1. 更新 cordova CLI 版本。 请参阅命令行界面

  2. 运行 cordova platform update ios

将 3.2.0 项目升级到 3.3.0

对于非 CLI 项目,运行

bin/update path/to/project

对于 CLI 项目

  1. 更新 cordova CLI 版本。 请参阅命令行界面

  2. 运行 cordova platform update ios

将 3.1.0 项目升级到 3.2.0

对于非 CLI 项目,运行

bin/update path/to/project

对于 CLI 项目

  1. 更新 cordova CLI 版本。 请参阅命令行界面

  2. 运行 cordova platform update ios

将 3.0.0 项目升级到 3.1.0

对于非 CLI 项目,运行

bin/update path/to/project

对于 CLI 项目

  1. 更新 cordova CLI 版本。 请参阅命令行界面

  2. 运行 cordova platform update ios

iOS 7 问题

  1. index.html 文件的 viewport meta 标签中删除 width=device-width, height=device-height。(请参阅相关错误。)

  2. 更新你的媒体、媒体捕获和启动画面核心插件以支持 iOS 7。

Xcode 5 问题

  1. 如果 Xcode 5 提示你这样做,请更新你的项目设置(在 Issues Navigator 中)。

  2. Build Settings 选项卡下的 Build Options 部分更新你的 Compiler for C/C++/Objective-C 设置。 选择 Default compiler (Apple LLVM 5.0)

从 2.9.0 升级到 CLI (3.0.0)

  1. 使用 cordova CLI 创建一个新的 Apache Cordova 3.0.0 项目,如命令行界面中所述。

  2. 将你的平台添加到 cordova 项目,例如:cordova platform add ios

  3. 将项目 www 目录的内容复制到你刚刚创建的 cordova 项目根目录下的 www 目录。

  4. 从你的原始项目复制或覆盖任何原生资源(Resources 等),确保将任何新文件添加到 .xcodeproj 项目中。 iOS 项目在 platforms\ios 目录中构建。

  5. config.xml 复制到 www 目录,并删除任何插件定义。 在此处修改设置,而不是在平台目录中修改。

  6. 使用 cordova CLI 工具安装你需要的任何插件。 请注意,CLI 将所有核心 API 作为插件处理,因此可能需要添加它们。 只有 3.0.0 插件与 CLI 兼容。

  7. 构建并测试。

将 2.9.0 项目升级到 3.0.0

  1. 将 Cordova 3.0.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如 ~/Documents/Cordova-3.0.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova.js 文件(请注意它不再有版本后缀,版本在文件本身的标题中)复制到 www 目录,并删除 www/cordova.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova.js 文件。

  7. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

注意:从 Cordova 3.0.0 开始,插件不是预安装的,你需要使用 plugman 命令行实用程序自行安装它们。 请参阅使用 Plugman 管理插件

将 2.8.0 项目升级到 2.9.0

  1. 将 Cordova 2.9.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如 ~/Documents/Cordova-2.9.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova.js 文件(请注意它不再有版本后缀,版本在文件本身的标题中)复制到 www 目录,并删除 www/cordova.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova.js 文件。

  7. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

将 2.7.0 项目升级到 2.8.0

  1. 将 Cordova 2.8.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如 ~/Documents/Cordova-2.8.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova.js 文件(请注意它不再有版本后缀,版本在文件本身的标题中)复制到 www 目录,并删除 www/cordova-2.7.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova.js 文件。

  7. 更新 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 -->
    
  8. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

  9. 将这两个框架添加到你的项目中

     OpenAL
     ImageIO
    
  10. 更新你的项目目标Build Settings。 在 Linking → Other Linker Flags 下,将 "-Obj-C" 编辑为 "-ObjC"

  11. 更新你的项目目标 Build Settings。 在 Linking → Other Linker Flags 下,将 "-all_load" 更改为 -force\_load ${BUILT\_PRODUCTS\_DIR}/libCordova.a。 只有当你在 此问题中定义了问题时,才需要这样做。

将 2.6.0 项目升级到 2.7.0

  1. 将 Cordova 2.7.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如 ~/Documents/Cordova-2.7.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova-2.7.0.js 文件复制到 www 目录,并删除 www/cordova-2.6.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova-2.7.0.js 文件。

  7. 根据新项目中的 AppDelegate.m 文件更新(或替换,如果你从未更改过该文件)AppDelegate.m 文件(请参阅 此差异)。

  8. config.xml 文件中,删除此行

  9. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

将 2.5.0 项目升级到 2.6.0

  1. 将 Cordova 2.6.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如 ~/Documents/Cordova-2.6.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将项目中的 www/cordova-2.6.0.js 文件复制到 www 目录,并删除 www/cordova-2.5.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他引用该脚本的文件)中的 Cordova 脚本引用,以引用新的 cordova-2.6.0.js 文件。

  7. 根据新项目中的 AppDelegate.m 文件更新(或替换,如果你从未更改过该文件)AppDelegate.m 文件(请参阅此差异)。

  8. config.xml 文件中,添加此新行

  9. config.xml 文件中,添加此新行

  10. config.xml 文件中,UIWebViewBounce 已更改为 DisallowOverscroll,默认值不同

  11. config.xml 文件中,EnableLocation 首选项已被弃用。

  12. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

将 2.4.0 项目升级到 2.5.0

  1. 将 Cordova 2.5.0 源代码下载并提取到你硬盘驱动器上的永久目录位置,例如 ~/Documents/Cordova-2.5.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova-2.5.0.js 文件复制到 www 目录,并删除 www/cordova-2.4.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova-2.5.0.js 文件。

  7. 根据新项目中的 AppDelegate.m 文件更新(或替换,如果你从未更改过该文件)AppDelegate.m 文件(请参阅 此差异)。

  8. config.xml 文件中,添加这些新行

  9. config.xml 文件中,编辑根元素,将其从 cordova 更改为 widget

  10. config.xml 文件中,删除 OpenAllWhitelistURLsInWebView 首选项

  11. 删除 cordova 目录,并将新项目中的 cordova 目录复制到你的项目根目录中。 在 2.5.0 中,这已更新脚本。

  12. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

将 2.3.0 项目升级到 2.4.0

  1. 下载并解压 Cordova 2.4.0 源代码到您硬盘上的一个永久目录位置,例如 ~/Documents/Cordova-2.4.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova-2.4.0.js 文件复制到 www 目录,并删除 www/cordova-2.3.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的 cordova-2.4.0.js 文件。

  7. 根据新项目中的 MainViewController.m 文件更新(或替换,如果您从未更改过该文件)该文件(请参阅 此差异)。

  8. 根据新项目中的 AppDelegate.m 文件更新(或替换,如果您从未更改过该文件)该文件(请参阅 此差异)。

  9. config.xml 文件中,添加这一新行

  10. 删除 cordova 目录,并将新项目中的 cordova 目录复制到您的项目根目录。在 2.4.0 中,这里修复了脚本。

  11. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

  12. 将 AssetsLibrary.framework 作为资源添加到您的项目。(有关如何操作的说明,请参阅 Apple 的文档)。

将 2.2.0 项目升级到 2.3.0

  1. 下载并解压 Cordova 2.3.0 源代码到您硬盘上的一个永久目录位置,例如 ~/Documents/Cordova-2.3.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova-2.3.0.js 文件复制到 www 目录,并删除 www/cordova-2.2.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的 cordova-2.3.0.js 文件。

  7. 根据新项目中的 MainViewController.m 文件更新(或替换,如果您从未更改过该文件)该文件。

  8. 删除 cordova 目录,并将新项目中的 cordova 目录复制到您的项目根目录。在 2.3.0 中,这里有新的脚本。

  9. 删除 CordovaLib 目录,并将新项目中的 CordovaLib 目录复制到你的项目根目录中。

  10. 通过在您的项目文件上运行脚本 bin/cordova\_plist\_to\_config\_xml,将 Cordova.plist 文件转换为 config.xml

  11. 通过在 <cordova><plugins> 下添加此标签,将 InAppBrowser 插件添加到 config.xml

    <plugin name="InAppBrowser" value="CDVInAppBrowser" />
    
  12. 请注意,Objective-C 插件不再被列入白名单。要使用应用白名单将您的连接列入白名单,您需要将连接的 User-Agent 标头设置为与主 Cordova WebView 相同的用户代理。您可以通过访问主视图控制器上的 userAgent 属性来获取此信息。主视图控制器 (CDVViewController) 还有一个 URLisAllowed 方法,可用于检查 URL 是否通过白名单。

  13. 设备 API 更改

    • 对于 iOS,device.platform 过去返回 iPhoneiPadiPod Touch;现在它(正确地)返回 iOS
    • 对于 iOS,device.name(现在已在所有平台上弃用)过去返回用户的设备名称(例如“Shazron 的 iPhone 5”);现在它返回 device.platform 过去返回的内容:iPhoneiPadiPod Touch
    • 对于所有平台,都有一个新的属性叫做 device.model;这会返回特定的设备型号,例如 iPad2,5(对于其他平台,这会返回 device.name 过去返回的内容)。

将 2.1.0 项目升级到 2.2.0

  1. 下载并解压 Cordova 2.2.0 源代码到您硬盘上的一个永久目录位置,例如 ~/Documents/Cordova-2.2.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova-2.2.0.js 文件复制到 www 目录,并删除 www/cordova-2.1.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的 cordova-2.2.0.js 文件。

  7. 根据新项目中的 MainViewController.m 文件更新(或替换,如果您从未更改过该文件)该文件
    • 已更新 → viewWillAppear
  8. 将新项目中的 cordova 目录复制到您的项目根目录。在 2.2.0 中,这里有一个更新的“模拟”脚本。

  9. 接下来,更新 CordovaLib 子项目的引用。从 Cordova 2.1.0 开始,我们在引用 CordovaLib 的位置时不再使用 CORDOVALIB Xcode 变量,该引用现在是绝对文件引用。
    1. 启动 Terminal.app
    2. 转到您安装 Cordova 的位置(参见第 1 步),在 bin 子目录中
    3. 运行下面的脚本,其中第一个参数是您的项目 .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,然后运行向导直到完成。

  1. 下载并解压 Cordova 2.1.0 源代码到您硬盘上的一个永久目录位置,例如 ~/Documents/Cordova-2.1.0

  2. 如果 Xcode 正在运行,请退出 Xcode。

  3. 使用 Terminal.app,导航到你上面下载的源代码所在的目录。

  4. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  5. 将新项目中的 www/cordova-2.1.0.js 文件复制到 www 目录,并删除 www/cordova-2.0.0.js 文件。

  6. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的 cordova-2.1.0.js 文件。

  7. 根据新项目中的 AppDelegate.m 文件更新(或替换,如果您从未更改过该文件)该文件
    • 已编辑 → application:didFinishLaunchingWithOptions
    • 已添加 → application:supportedInterfaceOrientationsForWindow
  8. 根据新项目中的 MainViewController.m 文件更新(或替换,如果您从未更改过该文件)该文件
    • 已添加 → viewWillAppear
  9. 将新项目中的 cordova 目录复制到您的项目根目录。在 2.1.0 中,这里有更新的脚本来支持包含空格的路径。

  10. 从您的项目中删除 VERSION 文件引用(不是 CordovaLib 中的那个)。

  11. 接下来,更新 CordovaLib 子项目的引用。从 Cordova 2.1.0 开始,我们在引用 CordovaLib 的位置时不再使用 CORDOVALIB Xcode 变量,该引用现在是绝对文件引用。
    1. 启动 Terminal.app
    2. 转到您安装 Cordova 的位置(参见第 1 步),在 bin 子目录中
    3. 运行下面的脚本,其中第一个参数是您的项目 .xcodeproj 文件的路径

       update_cordova_subproject path/to/your/project/xcodeproj
      

将 1.9.0 项目升级到 2.0.0

  1. 安装 Cordova 2.0.0。

  2. 创建一个新项目,如iOS Shell 工具指南中所述。 你需要这个新项目中的资源。

  3. 将新项目中的 www/cordova-2.0.0.js 文件复制到 www 目录,并删除 www/cordova-1.9.0.js 文件。

  4. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的 cordova-2.0.0.js 文件。

  5. 将新项目中的 cordova 目录复制到您的项目根目录(如果您想要项目命令行工具)。

  6. Cordova.plist 文件中的 Supporting Files 组下添加一个新条目到 Plugins 下。键为 Device,值为 CDVDevice

  7. 删除 Cordova.framework

  8. Supporting Files 组中删除 verify.sh

  9. 在项目导航器中选择项目图标,选择您的项目目标,然后选择构建设置选项卡。

  10. 搜索预处理器宏,然后删除所有 CORDOVA_FRAMEWORK=1 值。

  11. 找到安装在您的主文件夹的 Documents 子目录下的硬盘上的 CordovaLib 目录。

  12. 找到 CordovaLib 目录中的 CordovaLib.xcodeproj 文件,然后将该文件拖放到您的项目中。它应该显示为一个子项目。

  13. 构建您的项目,您应该会收到一些与 #import 指令相关的错误。

  14. 对于 #import 错误,将任何基于引号的导入更改为此样式

    #import "CDV.h"
    

    为这种基于括号的样式

    #import <Cordova/CDV.h>
    

    并删除任何 Cordova 导入周围的 #ifdef 包装器,它们不再需要(导入现在已统一)

  15. 再次构建您的项目,它应该没有任何 #import 错误。

  16. 在项目导航器中选择项目图标,选择您的项目目标,然后选择构建阶段选项卡。

  17. 展开目标依赖项阶段,然后选择 + 按钮。

  18. 选择 CordovaLib 目标,然后选择添加按钮。

  19. 展开第一个链接二进制文件与库阶段(它应该已经包含一堆框架),然后选择 + 按钮。

  20. 选择 libCordova.a 静态库,然后选择添加按钮。

  21. 删除运行脚本阶段。

  22. 在项目导航器中选择项目图标,选择您的项目目标,然后选择构建设置选项卡。

  23. 搜索其他链接器标志,并添加值 -force_load-Obj-C

  24. 展开 CordovaLib 子项目。

  25. 找到 VERSION 文件,将其拖到您的主项目中(我们想要创建指向它的链接,而不是副本)。

  26. 选择为添加的任何文件夹创建组单选按钮,然后选择完成按钮。

  27. 选择您在上一步中刚刚拖入的 VERSION 文件。

  28. 键入 Option-Command-1 组合键以显示文件检查器(或菜单项视图 → 实用工具 → 显示文件检查器)。

  29. 文件检查器中,在位置的下拉菜单中选择相对于 CORDOVALIB

  30. 将 Xcode 首选项 Xcode 首选项 → 位置 → 派生数据 → 高级… 设置为唯一,以便可以找到统一的标头。

  31. 在项目导航器中选择项目图标,选择您的目标,然后选择构建设置选项卡。

  32. 搜索标头搜索路径。对于该设置,追加这三个值,包括引号

    "$(TARGET_BUILD_DIR)/usr/local/lib/include"
    
    "$(OBJROOT)/UninstalledProducts/include"
    
    "$(BUILT_PRODUCTS_DIR)"
    
  33. 搜索其他链接器标志。对于该设置,追加此值

    -weak_framework CoreFoundation
    
  34. 构建您的项目,它应该编译并链接,没有任何问题

  35. 方案下拉列表中选择您的项目,然后选择 iPhone 5.1 模拟器

  36. 选择运行按钮。

注意:如果您的项目在模拟器中无法按预期工作,请注意 Xcode 控制台日志中的任何错误,以获取线索。

将 1.8.x 项目升级到 1.9.0

  1. 安装 Cordova 1.9.0。

  2. 创建一个新项目。您将需要这个新项目中的一些资产。

  3. 将新项目中的 www/cordova-1.9.0.js 文件复制到 www 目录,并删除 www/cordova-1.8.x.js 文件。

  4. 更新 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

  1. 安装 Cordova 1.8.0。

  2. 创建一个新项目。您将需要这个新项目中的一些资产。

  3. 将新项目中的 www/cordova-1.8.0.js 文件复制到 www 目录中,并删除 www/cordova-1.7.x.js 文件。

  4. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova-1.8.0.js 文件。

如果您打算使用 Capture API,则需要新的 iPad retina-display 资源

  1. 将新项目中的 Resources/Capture.bundle 项复制到您的项目目录中,覆盖您现有的 Resources/Capture.bundle 项。

  2. 在您的项目中,在 Xcode 的“项目导航器”中选择 Capture.bundle 项,键入 Delete 键,然后从出现的对话框中选择 移除引用

  3. 将上面步骤 1 中的新 Capture.bundle 拖到 Xcode 的“项目导航器”中,然后选择 为任何添加的文件夹创建组 单选按钮。

将 1.6.x 项目升级到 1.7.0

  1. 安装 Cordova 1.7.0。

  2. 创建一个新项目。您将需要这个新项目中的一些资产。

  3. 将新项目中的 www/cordova-1.7.0.js 文件复制到 www 目录中,并删除 www/cordova-1.6.0.js 文件。

  4. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova-1.7.0.js 文件。

将 1.5.0 项目升级到 1.6.x

  1. 安装 Cordova 1.6.1。

  2. 备份项目中的 AppDelegate.mAppDelegate.hMainViewController.mMainViewController.hCordova.plist

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将这些文件从新项目复制到您基于 1.5.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)

     AppDelegate.h
     AppDelegate.m
     MainViewController.h
     MainViewController.m
     Cordova.plist
    
  5. 将所有新的 MainViewControllerAppDelegate 文件添加到您的 Xcode 项目中。

  6. 将新项目中的 www/cordova-1.6.1.js 文件复制到 www 目录中,并删除 www/cordova-1.5.0.js 文件。

  7. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 cordova-1.6.1.js 文件。

  8. 将新的 Cordova.plist 文件添加到您的项目中。这是必要的,因为核心插件服务名称必须更改为与 Android 和 BlackBerry 中的名称匹配,以便使用统一的 Cordova JavaScript 文件 (cordova-js)。

  9. 将您备份的 Cordova.plist 中包含的任何设置、插件ExternalHosts 条目集成到新的 Cordova.plist 中。

  10. 将您备份的 AppDelegate.hAppDelegate.m 中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。AppDelegate.m 中的任何 UIWebViewDelegateCDVCommandDelegate 代码现在都需要放入 MainViewController.m 中(请参阅该文件中的注释掉的部分)。

  11. 将您备份的 MainViewController.hMainViewController.m 中包含的任何特定于项目的代码集成到新的 MainViewController 文件中。

  12. 单击“项目导航器”中的项目图标,选择您的项目,然后选择 构建设置 选项卡。

  13. 在搜索字段中输入 C/C++/Objective-C 编译器

  14. 选择 Apple LLVM Compiler 3.1 值。

将 1.4.x 项目升级到 1.5.0

  1. 安装 Cordova 1.5.0。

  2. 创建一个新项目并运行一次。您将需要这个新项目中的一些资源。

  3. 将新项目中的 www/cordova-1.5.0.js 文件复制到 www 目录中,并删除 www/phonegap-1.4.x.js 文件。

  4. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 Cordova cordova-1.5.0.js 文件。

  5. 在“项目导航器”中找到 PhoneGap.framework,选择它。

  6. 键入 Delete 键,并删除“项目导航器”中的 PhoneGap.framework 引用。

  7. 键入 Option-Command-A 组合键,这将下拉一个工作表以将文件添加到您的项目(添加文件…工作表)。确保已选择 为任何添加的文件夹创建组 单选按钮。

  8. 键入 Shift-Command-G 组合键,这将下拉另一个工作表,以便您转到某个文件夹(转到文件夹:工作表)。

  9. 转到文件夹: 工作表中输入 /Users/Shared/Cordova/Frameworks/Cordova.framework,然后按 前往 按钮。

  10. 添加文件… 工作表中的 添加 按钮。

  11. 在“项目导航器”中选择 Cordova.framework

  12. 键入 Option-Command-1 组合键以显示 文件检查器

  13. 文件检查器 中,选择 位置 下拉菜单的 绝对路径

  14. 键入 Option-Command-A 组合键,这将下拉一个工作表以将文件添加到您的项目(添加文件…工作表)。确保已选择 为任何添加的文件夹创建组 单选按钮。

  15. 键入 Shift-Command-G 组合键,这将下拉另一个工作表,以便您转到某个文件夹(转到文件夹:工作表)。

  16. 转到文件夹: 工作表中输入 ~/Documents/CordovaLib/Classes/deprecated,然后按 前往 按钮。

  17. 添加文件… 工作表中的 添加 按钮。

  18. AppDelegate.hAppDelegate.mMainViewController.h 文件中,将整个 #ifdef PHONEGAP_FRAMEWORK 块替换为

    #import "CDVDeprecated.h"
    
  19. 单击“项目导航器”中的 项目图标,选择您的目标,然后选择 构建设置 选项卡。

  20. 搜索 框架搜索路径

  21. 将现有值替换为 /Users/Shared/Cordova/Frameworks

  22. 搜索 预处理器宏

  23. 对于第一个(组合)值,将该值替换为 CORDOVA_FRAMEWORK=YES

  24. 选择 构建阶段 选项卡。

  25. 展开 运行脚本

  26. 将任何出现的 PhoneGap 替换为 Cordova

  27. 在“项目导航器”中找到 PhoneGap.plist 文件,然后单击文件名一次以进入名称编辑模式。

  28. PhoneGap.plist 重命名为 Cordova.plist

  29. 右键单击 Cordova.plist,然后选择 打开方式 → 源代码

  30. Option-Command-F,从“源代码”窗口左上角的下拉菜单中选择 替换

  31. 在“查找”字符串中输入 com.phonegap,在“替换”字符串中输入 org.apache.cordova,然后按 全部替换 按钮。

  32. 在“查找”字符串中输入 PG,在“替换”字符串中输入 CDV,然后按 全部替换 按钮。

  33. Command-B 进行构建。您仍然有一些可以在将来删除的弃用项(请参阅 CDVDeprecated.h。例如,将代码中使用 PG* 的类替换为 CDV*)。

将 1.4.0 项目升级到 1.4.1

  1. 安装 Cordova 1.4.1。

  2. 备份 MainViewController.m

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将新项目中的 MainViewController.m 文件复制到您基于 1.4.0 的项目目录中,替换旧文件(首先备份上面步骤 2 中的文件)。

  5. MainViewController.m 文件添加到您的 Xcode 项目中。

  6. 将您备份的 MainViewController.m 中包含的任何特定于项目的代码集成到新文件中。

  7. 更新 phonegap-1.4.0.js 文件是可选的,在 1.4.0 和 1.4.1 之间的 JavaScript 中没有任何更改。

将 1.3.0 项目升级到 1.4.0

  1. 安装 Cordova 1.4.0。

  2. 备份项目中的 AppDelegate.mAppDelegate.h

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将这些文件从新项目复制到您基于 1.3.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)

     AppDelegate.h
     AppDelegate.m
     MainViewController.h
     MainViewController.m
     MainViewController.xib
    
  5. 将所有 MainViewController 文件添加到您的 Xcode 项目中。

  6. 将新项目中的 www/phonegap-1.4.0.js 文件复制到 www 目录中,并删除 www/phonegap-1.3.0.js 文件。

  7. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 phonegap-1.4.0.js 文件。

  8. PhoneGap.plist 文件中的 Plugins 下添加一个新条目。键为 com.phonegap.battery,值为 PGBattery

  9. 将您备份的 AppDelegate.hAppDelegate.m 中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。

将 1.2.0 项目升级到 1.3.0

  1. 安装 Cordova 1.3.0。

  2. 备份项目中的 AppDelegate.mAppDelegate.h

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将这些文件从新项目复制到您基于 1.2.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)

     AppDelegate.h
     AppDelegate.m
     MainViewController.h
     MainViewController.m
     MainViewController.xib
    
  5. 将所有 MainViewController 文件添加到您的 Xcode 项目中。

  6. 将新项目中的 www/phonegap-1.3.0.js 文件复制到 www 目录中,并删除 www/phonegap-1.2.0.js 文件。

  7. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 phonegap-1.3.0.js 文件。

  8. PhoneGap.plist 文件中的 Plugins 下添加一个新条目。键为 com.phonegap.battery,值为 PGBattery

  9. 将您备份的 AppDelegate.hAppDelegate.m 中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。

将 1.1.0 项目升级到 1.2.0

  1. 安装 Cordova 1.2.0。

  2. 备份项目中的 AppDelegate.mAppDelegate.h

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将这些文件从新项目复制到您基于 1.1.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)

     AppDelegate.h
     AppDelegate.m
     MainViewController.h
     MainViewController.m
     MainViewController.xib
    
  5. 将所有 MainViewController 文件添加到您的 Xcode 项目中。

  6. 将新项目中的 www/phonegap-1.2.0.js 文件复制到 www 目录中,并删除 www/phonegap-1.1.0.js 文件。

  7. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 phonegap-1.2.0.js 文件。

  8. PhoneGap.plist 文件中的 Plugins 下添加一个新条目。键为 com.phonegap.battery,值为 PGBattery

  9. 将您备份的 AppDelegate.hAppDelegate.m 中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。

将 1.0.0 项目升级到 1.1.0

  1. 安装 Cordova 1.1.0。

  2. 备份项目中的 AppDelegate.mAppDelegate.h

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将这些文件从新项目复制到您基于 1.0.0 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)

     AppDelegate.h
     AppDelegate.m
     MainViewController.h
     MainViewController.m
     MainViewController.xib
    
  5. 将所有 MainViewController 文件添加到您的 Xcode 项目中。

  6. 将新项目中的 www/phonegap-1.1.0.js 文件复制到 www 目录中,并删除 www/phonegap-1.0.0.js 文件。

  7. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,以指向新的 phonegap-1.1.0.js 文件。

  8. PhoneGap.plist 文件中的 Plugins 下添加一个新条目。键为 com.phonegap.battery,值为 PGBattery

  9. 将您备份的 AppDelegate.hAppDelegate.m 中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。

将 0.9.6 项目升级到 1.0.0

  1. 安装 Cordova 1.0.0。

  2. 备份项目中的 AppDelegate.mAppDelegate.h

  3. 创建一个新项目。您将需要这个新项目中的一些资产。

  4. 将这些文件从新项目复制到您基于 0.9.6 的项目目录中,替换任何旧文件(首先备份上面步骤 2 中的文件)

     AppDelegate.h
     AppDelegate.m
     MainViewController.h
     MainViewController.m
     MainViewController.xib
    
  5. 将所有 MainViewController 文件添加到您的 Xcode 项目中。

  6. 将新项目中的 www/phonegap-1.0.0.js 文件复制到 www 目录中,并删除 www/phonegap-0.9.6.js 文件。

  7. 更新 www/index.html 文件(以及任何其他包含脚本引用的文件)中的 Cordova 脚本引用,使其指向新的 phonegap-1.0.0.js 文件。

  8. PhoneGap.plist 文件中的 Plugins 下添加一个新条目。键为 com.phonegap.battery,值为 PGBattery

  9. 将您备份的 AppDelegate.hAppDelegate.m 中包含的任何特定于项目的代码集成到新的 AppDelegate 文件中。