iOS7 和 Apple Watch
Posted
技术标签:
【中文标题】iOS7 和 Apple Watch【英文标题】:iOS7 and Apple Watch 【发布时间】:2014-12-16 17:00:25 【问题描述】:我有一个最低 ios 目标为 iOS7 的应用。
我正在考虑为 Apple Watch 添加一些额外功能。如果应用程序在 iOS 8 上运行,是否有任何选项可以将 iOS7 保持为最低目标并仍然添加对 Apple Watch 的支持?类似于 iOS8 的扩展/小部件。
提前致谢
【问题讨论】:
【参考方案1】:您可以将部署目标设置为 iOS7.x 并确保针对 iOS8.2 SDK 构建。您需要在构建设置中将框架设置为 optional
(弱链接)并执行运行时检查以确保您不会在 iOS7.x 设备上尝试对它们进行任何操作。
在未链接框架的应用中,可选框架将解析为nil
。
【讨论】:
Transis 寻求帮助。只是一个疑问,我如何验证进口? 验证导入是什么意思? 例如,我有一个类只兼容iOS8。因此,当应用程序运行时,我会验证该类是否存在“if ([Example class])”。应该添加导入(#import Example.h),当我在iOS7中运行时它不会给我一个错误,因为该类不可用? 它仍然可以编译,因为您将针对 8.x SDK 进行构建,但是当应用程序在您的最低部署目标上运行时,任何属于框架一部分但未链接的类将只是被认为是 nil,并且在 Objective-c 中向 nil 发送消息是完全有效的。在很多情况下,您甚至不需要添加 if ([Example class]),因为无论如何它都会解析为 nil。只要确保您不向不响应它们的对象发送任何选择器,例如当一个新的 API 添加到 iOS7 和 8 中的现有框架时。希望这会有所帮助。 问题是嵌入式库(用于watchApp)不能弱链接。所以它不会工作。有什么解决办法吗?【参考方案2】:是的,如果需要的类可用,可以通过弱链接 WatchKit 并执行运行时检查来实现。在Raywenderlich 上查看。
【讨论】:
不管是 WatchKit 还是其他新的 API。弱链接 + 运行时检查将允许 OP 实现 WatchKit API,同时保持 iOS7 作为基础版本。 @Andrew 我是正确的,你是对的。我认为respondsToSelector
会失败。好电话。【参考方案3】:
就我而言,我唯一要做的就是使用 Objective-C 创建扩展(某些 iOS 版本不允许使用 Swift)并将扩展应用程序目标版本降级为 8.2 而不是 8.3。
【讨论】:
以上是关于iOS7 和 Apple Watch的主要内容,如果未能解决你的问题,请参考以下文章
Apple App Store 在 iOS 7 中未显示正确的图标