博客 RSS订阅

Cordova iOS 4.0.0
2015年12月08日

我们很高兴地宣布 Cordova iOS 4.0.0 已发布。

这是一个主要版本,并且已弃用的 API 已被移除。某些第三方插件可能需要更新才能兼容。此版本为可插拔的 webview 添加了一流的支持——即我们现在支持 WKWebView ——一个为 iOS 捆绑的现代 WebView!

该平台现在支持用于启动画面和图标的资源目录 —— 当你在 config.xml 中使用 <splash><icon> 标签时,这一切对你来说都是透明的。

ios-sim 现在已与平台捆绑在一起,你不再需要单独安装它。但是对于 ios-deploy,你需要更新到最新版本。

最低部署目标已更新为 iOS 8.0。这意味着此平台版本仅在 iOS 8 及更高版本的设备上进行了测试,并且仅支持这些 iOS 版本。

[email protected] 将是下一个版本的 cordova 中的默认 iOS 版本。如果你等不及了,可以立即尝试一下

cd my_project
cordova platform update [email protected]
# To install the WKWebView engine (optional):
cordova plugin add cordova-plugin-wkwebview-engine

我们正在将 cordova-plugin-wkwebview-engine 插件发布到 npm。如果你决定在我们发布此插件之前更新到 [email protected],请暂时通过 git 安装该插件。

cordova plugin add https://github.com/apache/cordova-plugin-wkwebview-engine.git#1.0.0

请注意,与默认的 UIWebView 相比,cordova-plugin-wkwebview-engine 插件有一些限制,请参阅 README 获取更多详细信息。

除了 <access> 标签之外,还支持新的 <allow-intent><allow-navigation> 标签,文档 在此处。请注意,对于 cordova-ios-4.0.0,你不需要安装 cordova-plugin-whitelist

cordova 会将 <access><allow-navigation> 标签转换为 iOS 9 中新增的适当的 应用传输安全 (ATS) 指令。<access><allow-navigation> 标签还 支持两个新属性minimum-tls-versionrequires-forward-secrecy

要升级

npm install -g cordova
cd my_project
cordova platform update [email protected]

要显式添加它

cordova platform add [email protected]

iOS 平台的新特性

  • CB-10136 - cordova prepare 中的错误(平台 API)
  • CB-10048 - 将 <access> 标签覆盖为 ATS 指令 CB-10057 - 删除 <access> 标签不会删除 ATS 条目
  • CB-10106 - 添加了桥接代理
  • CB-9827 - 修复了版本文件以使其可被 require
  • CB-9827 - 为 iOS 实现和公开 PlatformApi
  • CB-10106 - iOS 桥接需要考虑桥接变化
  • CB-10072 - 在 build.xcconfig 中添加 SWIFT\_OBJC\_BRIDGING_HEADER 值,并从 pbxproj 中删除
  • CB-10004 - 将 CDVSystemSchemes 插件名称重命名为更合适的名称
  • CB-10001 CB-10003 处理 <allow-navigation><allow-intent>
  • CB-10025 - CDVWhiteList 无法解析方案后没有双斜杠的 URI
  • CB-9972 - 删除 iOS 白名单
  • CB-9883 CB-9948 更新 cordova.js
  • CB-9948 - 从 exec.js 中删除已弃用的命令格式
  • CB-9883 - 删除未使用的 iOS 桥接
  • CB-9836 - 添加 .gitattributes 以防止存储库中出现 CRLF 行尾
  • CB-9787 - [CDVStartPageTest testParametersInStartPage] 单元测试失败
  • CB-9917 - 修复:.gitattributes 中的顺序很重要
  • CB-9917 - 失败:cordova platform add https://github.com/apache/cordova-ios.git#tagOrBranch
  • CB-9870 - 更新了 hello world 模板
  • CB-9609 - Cordova run opts 未能传递到真机上的 ios-deploy
  • CB-9893 - 使用更多升级示例更新 API 更改文档
  • CB-9638 - cordova-ios 中缺少 Cordova/NSData+Base64.h - 更新了 API 更改文档
  • CB-9836 添加 .gitattributes 以防止存储库中出现 CRLF 行尾
  • CB-9685 - 修复了在 iOS9 上长按 webview 时弹出放大镜的问题。
  • CB-9800 - 修复了贡献链接。
  • 将捆绑的 ios-sim 更新到 5.0.3
  • CB-9500 - 为 iOS 构建添加了 no sign 参数
  • CB-9787 - [CDVStartPageTest testParametersInStartPage] 单元测试失败(改进的修复)
  • CB-9754 - 图标和启动图像警告
  • CB-9719 - 将 allow_non_modular_includes 设置为 yes
  • CB-9685 - 修复了在 iOS9 上长按 webview 时弹出放大镜的问题
  • CB-9552 - 更新链接平台会删除原始文件
  • CB-6992 - 如果显示名称包含 Unicode 字符,则无法部署应用程序
  • CB-9726 - 将最低部署目标更新为 iOS 8.0
  • CB-9679 - iOS 9 的资源规则问题
  • CB-9721 - 在 build.xcconfig 中将 ENABLE_BITCODE 设置为 NO
  • CB-9698 - 在 ios copy-www-build-step.js 中添加 rsync 错误处理
  • CB-9671 - 从 travis.yml 中删除 ios-sim 的安装
  • CB-9693 - 修复项目名称中带有空格的 www 复制
  • CB-9690 - 无法将 iPad 应用提交到适用于 iOS 9 的 App Store
  • CB-9328 - 将 ios-sim 用作 node 模块,而不是 CLI 实用程序
  • CB-9558 - 将 blob: 添加到 CDVUIWebViewDelegate::shouldLoadRequest 使用的 allowedSchemes(关闭 #163)
  • CB-9558 - Blob 方案不会在 iframe 中加载
  • CB-9667 - 在 cordova-ios 4.x 中创建测试失败(与 CB-8789 pull request 相关,该请求没有测试名称中带有空格的项目)
  • CB-9650 - 更新 cordova-ios 中的 API 兼容性文档,以进行 AppDelegate.m 模板更改
  • CB-9638 - cordova-ios 4.x 中缺少 Cordova/NSData+Base64.h
  • CB-8789 - 支持应用图标和启动画面的资源目录
  • CB-8789 - 资源目录支持
  • CB-9642 - 将 CDVAvailability.h 中的 3.9.0、3.9.1、3.9.2 版本更新集成到主分支中
  • CB-9261 - Xcode 模板中的本地化中断
  • CB-9656 - 在 Xcode 7.1 beta 版中存档时,Xcode 找不到 CDVViewController.h
  • CB-9254 - 用于 cordova-ios 4.0.0-devupdate_cordova_subproject 命令导致构建错误
  • CB-9636 - 仅当要加载的 URL 通过引擎的 canLoadRequest 筛选器时,才加载 WebView 引擎
  • CB-9610 - 修复 Xcode 7cordova-ios 中的警告
  • CB-9613 - 当 URL 中没有主机名时,CDVWhitelist::matches 崩溃
  • CB-9485 - 使用 NSURLabsoluteString 方法
  • CB-8365 - 向 CDVPluginResult 添加 NSIntegerNSUInteger 工厂方法
  • CB-9266 - 用于 iOScordova run 看不到未运行的模拟器
  • CB-9462 - iOS 3.9.0 中断 npm link 模块
  • CB-9453 - 更新到 [email protected] 未构建
  • CB-9273 - 未找到复制 www 构建阶段节点
  • CB-9266 - 在此期间将目标默认值更改为 iPhone-5
  • CB-8197 - 将 ios 平台脚本切换到 nodejs
  • CB-9203 - iOS 单元测试应使用 tmp 而不是相同文件夹
  • CB-8468 - 如果断点命中从本机调用的 JavaScript 回调,应用程序会冻结
  • CB-8812 - 将系统方案处理程序移至其自己的插件 (CDVSystemSchemes)
  • CB-8812 - 协议处理程序在第二次触发时引发错误
  • CB-9050 - cordova run --list 不显示您有一个过时的 ios-sim
  • CB-8730 - 无法部署到设备
  • CB-8788 - 从默认的 iOS Cordova 构建中删除 armv7s 以与 Xcode 6 对齐
  • CB-9046 - cordova run ios --emulator --target "iPhone-5, 7.1" (带有运行时的目标)不起作用
  • CB-8906 - cordova run ios --target 不起作用
  • ios-sim 版本增至 4.0.0
  • ios-deploy 版本增至 1.7.0
  • xcodebuild 版本增至 6.0.0
  • CB-8895 - 将 CDVStartPageTests::testParametersInStartPage 更改为异步测试
  • CB-8047 - WKWebView iOS8 wkwebview / 本地 webserver 插件方向问题
  • CB-8838 - 将 commandQueue 推送到 non-WK_WEBVIEW_BINDING 分支。(关闭 #136)
  • CB-8868 - ios 4.0.x 无法归档
  • CB-7767 - 删除 NSData+Base64 文件,更新单元测试。
  • CB-8710 - cordova-ios jasmine 测试不会清理构建产物,测试只能运行一次
  • CB-7767 - 删除 NSData+Base64 的用法
  • CB-8709 - 删除 CDVViewController.m 中过时的 CDVLocalStorage 修复(以及样式修复)
  • CB-8270 - 更新 Objective-C 单元测试以进行 JSON 序列化。还清理了单元测试工作区。
  • CB-8690 - 导出的头文件不在 Public 部分,而是在 Project 中。已移动。
  • CB-8690 - 将文件分组到 CordovaLib/Classes 中的文件夹中
  • CB-8697 - 删除默认模板中过时的 merges 文件夹引用
  • CB-5520 - 删除模板中指定的所有框架。依赖隐式 Clang 模块加载。
  • CB-5520 - 从 .pbxproj 中删除大多数构建设置到 .xcconfig
  • CB-5520 - 在默认模板(IDE 使用)中添加 cordova/build*.xcconfig 支持
  • CB-8678 - config.xml 中启动插件名称的大小写不匹配
  • CB-7428 - 添加桥接头文件。确保所有部署目标为 7.0 将 swift 运行时添加到搜索路径(关闭 #133)
  • CB-7826 - 添加 CDVPlugin 支持以从插件资源包中获取项目
  • CB-8640 - 为 coho 发布工具模板化 CDVAvailability.h
  • CB-8678 - 应通过配置而不是代码添加包含的核心插件
  • CB-8643 - 删除 iOS 6 支持,最低 iOS 7
  • CB-8677 - 删除条件 IsAtLeastIosVersion 代码(以及样式修复)
  • CDVAvailability.h 中将版本更新至 4.0.0
  • CB-8556 - 将 handleOpenURL 功能删除到插件中
  • CB-8474 - 从 CDVAppDelegate 中删除本地/远程推送通知代理
  • CB-8464 - 删除 AppDelegate 中的非 ARC 代码
  • CB-8473 - 从模板中删除 AppDelegate 代码(包括 uncrustify 样式修复)
  • CB-8664 - 将 CDVPlugin 初始化程序设为私有
  • CB-7753 - 删除 CDVAvailabiltyDeprecated.h 中的 CDV_IsIPadCDV_IsIPhone5
  • CB-7000 - 删除过时的 CDVPluginCDVPluginResult 方法
  • CDVViewControllerCDVPlugin 中将 webView 属性设为动态(来自 CDVWebViewEngineProtocol 引用)。为了向后兼容的原因,将 scrollView 类别添加到 UIView
  • CB-8032 - 为块定义添加 typedef
  • CB-8032 - 在 CDVCommandDelegate 中添加新属性 (urlTransformer),以及样式修复。
  • CB-6884 - 支持 iOS 8 WKWebView 下的新 Cordova 桥接(修复拼写错误)
  • CB-7184 - 在 UIWebViewWKWebView 中实现对 mediaPlaybackAllowsAirPlay 的支持
  • CB-7047 - 支持 WKWebViewconfig.xml 首选项
  • CB-7182 - 在 iOS 8 项目中运行 mobile-spec 但使用 UIWebView 会导致异常
  • CB-7047 - 支持 WKWebViewconfig.xml 首选项
  • CB-7182 - 在 iOS 8 项目中运行 mobile-spec 但使用 UIWebView 会导致异常
  • 更清晰地拆分为公共和私有头文件。删除大多数已弃用的符号。