我们很高兴地宣布 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-version
和 requires-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-dev
的update_cordova_subproject
命令导致构建错误 - CB-9636 - 仅当要加载的 URL 通过引擎的
canLoadRequest
筛选器时,才加载WebView
引擎 - CB-9610 - 修复
Xcode 7
下cordova-ios
中的警告 - CB-9613 - 当 URL 中没有主机名时,
CDVWhitelist::matches
崩溃 - CB-9485 - 使用
NSURL
的absoluteString
方法 - CB-8365 - 向
CDVPluginResult
添加NSInteger
、NSUInteger
工厂方法 - CB-9266 - 用于 iOS 的
cordova 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.0ios-deploy
版本增至 1.7.0xcodebuild
版本增至 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_IsIPad
和CDV_IsIPhone5
宏 - CB-7000 - 删除过时的
CDVPlugin
和CDVPluginResult
方法 - 在
CDVViewController
和CDVPlugin
中将 webView 属性设为动态(来自CDVWebViewEngineProtocol
引用)。为了向后兼容的原因,将 scrollView 类别添加到UIView
。 - CB-8032 - 为块定义添加
typedef
。 - CB-8032 - 在
CDVCommandDelegate
中添加新属性 (urlTransformer
),以及样式修复。 - CB-6884 - 支持 iOS 8
WKWebView
下的新 Cordova 桥接(修复拼写错误) - CB-7184 - 在
UIWebView
和WKWebView
中实现对mediaPlaybackAllowsAirPlay
的支持 - CB-7047 - 支持
WKWebView
的config.xml
首选项 - CB-7182 - 在 iOS 8 项目中运行 mobile-spec 但使用
UIWebView
会导致异常 - CB-7047 - 支持
WKWebView
的config.xml
首选项 - CB-7182 - 在 iOS 8 项目中运行
mobile-spec
但使用UIWebView
会导致异常 - 更清晰地拆分为公共和私有头文件。删除大多数已弃用的符号。