升级 iOS

本指南介绍如何修改 iOS 项目以从旧版本的 Cordova 升级。大多数这些说明适用于使用旧版命令行工具(早于 cordova CLI 工具)创建的项目。有关如何更新 CLI 版本的信息,请参阅 命令行界面

注意:您应该使用最新版本的 iOS SDK,该 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 提示您更新项目设置,请更新您的项目设置(在问题导航器中)。

  2. 构建设置选项卡的构建选项部分中,更新您的C/C++/Objective-C 编译器设置。选择默认编译器(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 正在运行,请退出。

  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 正在运行,请退出。

  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 正在运行,请退出。

  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. 更新项目的目标构建设置。在链接 → 其他链接器标志下,将"-Obj-C" 编辑为"-ObjC"

  11. 更新项目的目标构建设置。在链接 → 其他链接器标志下,将"-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 正在运行,请退出。

  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 文件,使其与新项目中的文件一致(请参阅 此差异)。

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

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

将 2.5.0 项目升级到 2.6.0

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

  2. 如果 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 文件,使其与新项目中的文件一致(请参阅 此差异)。

  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 正在运行,请退出。

  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 文件,使其与新项目中的文件一致(请参阅 此差异)。

  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 正在运行,请退出。

  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 正在运行,请退出。

  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\_xmlCordova.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 正在运行,请退出。

  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 Xcode 变量来引用 CordovaLib 所在的位置,引用现在是绝对文件引用。
    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 正在运行,请退出。

  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 Xcode 变量来引用 CordovaLib 所在的位置,引用现在是绝对文件引用。
    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 文件中的 Plugins 下添加一个新条目。键是 Device,值是 CDVDevice

  7. 删除 Cordova.framework

  8. 支持文件 组中删除 verify.sh

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

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

  11. 找到安装在硬盘驱动器上的 CordovaLib 目录,该目录位于主文件夹的 Documents 子目录下。

  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 视网膜显示屏** 资产

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

  2. 在您的项目中,将 Capture.bundle 项目选择到 Xcode 中的项目导航器中,键入 **Delete** 键,然后从出现的对话框中选择 **Remove Reference**。

  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 中的任何设置、插件外部主机 条目集成到新的 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 编译器 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,然后按 Go 按钮。

  10. 添加文件... 表格中的 添加 按钮。

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

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

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

  14. Option-Command-A 键组合,这将下拉一个用于将文件添加到项目的表格(添加文件... 表格)。确保选中 为任何添加的文件夹创建组 单选按钮。

  15. Shift-Command-G 键组合,这将下拉另一个用于转到文件夹的表格(转到文件夹: 表格)。

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

  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 文件中。