Tag: watch os 2

WatchConnectivity如何在多个WKInterfaceControllers间共享会话?

我有一种情况,我需要在多个WKInterfaceControllers中共享WCSession。 单例方法不起作用,一旦你设置委托给一个类,其他类中的所有委托都将失效。 场景:接口A基于数据内容发送和接收数据,呈现接口B.点击接口B,将请求并接收附加数据。 你将如何分享A和B之间的WCSession?

来自Apple Watch的openSystem API电话?

当我观看WWDC 2015会议video“WatchOS 2 for watchOS 2” (13:29)时,我发现可以用openSystem API直接在Apple Watch上拨打电话。 我如何在Swift中使用这个API?

实现核心数据watchOS 2.0

我是WatchKit的新手,我试图将Core Data添加到我的WatchKit扩展中。 到目前为止,我已经在WatchKit扩展中创build了一个Data Model,但是我坚持实现Core Data的其余部分。 是创build核心数据模型和初始化与iOS相同的核心数据堆栈的过程,还是我应该注意到的任何差异? 另外,我是否在ExtensionDelgate.swift初始化核心数据堆栈,还是应该在其他地方初始化它?

打开父应用程序(WatchOS 2.x +)

我试图从父应用程序获取更新,但是当Apple Watch发送请求时,我不想将父应用程序放到前台。 我最终希望将父应用程序置于后台状态,让它运行所需的方法并将其发送回手表。 具体来说,有没有办法打开父应用程序,并让它暂时驻留在WatchOS 2.0 +的后台状态? 我已经看过这个: [WKInterfaceController openParentApplication:[NSDictionary new] reply:nil]; 但是,这显然无法启动Watch OS 2.0。 (家长应用)应用委托: @interface InterfaceController() <WCSessionDelegate> @property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceLabel *networkConnectionLabel; @end @implementation InterfaceController – (void)awakeWithContext:(id)context { [super awakeWithContext: context]; } – (void) willActivate { [super willActivate]; [self startSessionToParentDevice]; } – (void) startSessionToParentDevice { if ([WCSession isSupported]) { [[WCSession defaultSession] setDelegate: self]; […]

WatchOS 2应用程序无法在装有dyld_fatal_error的设备上启动,而我的Framework Library未加载:未find图像

我刚刚遵循苹果转换指南将我的ObjectiveC应用程序升级到WatchOS 2 https://developer.apple.com/library/watchos/documentation/General/Conceptual/AppleWatch2TransitionGuide/ConfiguretheXcodeProject.html 在“iOS应用程序和watchOS应用程序之间共享代码”一节中,描述了如何将现有的iOS框架复制到WatchOS使用的WatchOS框架目标中,如下所示。 “如果你已经有一个与你的iOS应用程序共享框架的watchOS 1应用程序,请复制你的iOS框架目标并修改它以支持watchOS 2。 复制和configuration您的watchOS 2的框架目标 打开Xcode的项目编辑器窗格。 (窗格通常是closures的。) 按住Control键单击目标以使用“重复”命令显示上下文菜单。 更改目标的名称,以便以后可以轻松识别。 在“生成设置”中,更改以下值: 将支持的平台设置更改为watchOS。 将Base SDK设置更改为最新的watchOS。 更改产品名称设置,使其与您的iOS框架的名称相匹配。 你希望两个框架都用相同的名字来构build。 将框架添加到WatchKit扩展的链接框架列表中。“ 我已经按照这些步骤克隆了我的框架,其中iOS框架被称为MyFramework,现在新的WatchOS框架被称为MyFrameworkWatch。 但是如上所述,产品名称被设置为MyFramework而不是MyFrameworkWatch。 我认为这个命名的转变是我可以从我的框架使用包括 #import <MyFramework/SharedUtils.h> 而不是想必不得不改变它 #import <MyFrameworkWatch/SharedUtils.h> 我不介意后者,但我会承认它更好的保持框架名称相同。 在经过了最初的自动转换之后,我设法让我的应用程序在模拟器上工作得非常好,但是现在切换到设备,我无法启动它。 在设备上启动我的应用程序导致它旋转几秒钟,然后就崩溃了。 启动一下就会导致它无限期地旋转。 试图运行它从Xcode和运行应用程序导致应用程序最终启动和旋转,旋转可以无限期地持续有时,但最终它通过,我得到的实际错误报告如下 dyld_fatal_error – dyld: Library not loaded: @rpath/MyFramework.framework/MyFramework referenced from WatchKit Extension Reason: image not found 所以这是我的Watch App Extension尝试链接到Watch框架,并且这样做是为了查找MyFramework名称,而不是MyFrameworkWatch名称。 我不知道这个名字的冲突是否使它感到困惑? 当我尝试find在Xcode中的Products文件夹下引用的框架时,我可以看到两个框架 MyFramework MyFramework […]

Watchkit新会话不起作用

我有两个视图控制器在我的手表扩展名。每当我打电话 [[WCSession defaultSession] sendMessage:applicationData replyHandler:^(NSDictionary *reply) {} 我只得到第一个视图控制器的响应,并在我的第二个视图控制器的错误 Error Domain=WCErrorDomain Code=7011 "Message reply failed." UserInfo={NSUnderlyingError=0x79f1f100 {Error Domain=WCErrorDomain Code=7010 "Payload contains unsupported type." UserInfo={NSLocalizedRecoverySuggestion=Only pass valid types., NSLocalizedDescription=Payload contains unsupported type.}}, NSLocalizedDescription=Message reply failed.} WCSession是在应用程序和手表extension.Anybuild议?

与Watch Connectivity的updateApplicationContext共享访问令牌是否安全?

applicationContext是否被encryption? 还是只是存储为一个未encryption的plist文件? 因为如果是后者,我不应该使用它来传输访问令牌。

添加Parse.com 1.11.0到watchOS 2

在parsingSDK更新到1.11.0它说它支持watchOS和tvOS。 我想知道如何使用Cocoapods将框架添加到我的watchOS应用程序中。 该pod文件包含pod 'Parse' ,我已经运行pod update然后pod install但是当我添加一个桥接头到watchOS 2扩展它说没有find文件。 你知道我应该做什么吗? 谢谢

强制重装watchOS 2复杂function

我有问题让复杂function工作。 如果我能够可靠地刷新它们将是有帮助的。 因此,我将强制按下菜单button连接到以下方法 @IBAction func updateComplication() { let complicationServer = CLKComplicationServer.sharedInstance() for complication in complicationServer.activeComplications { complicationServer.reloadTimelineForComplication(complication) } } 不幸的是,这导致应用程序崩溃。 与一个fatal error: unexpectedly found nil while unwrapping an Optional value 。 我明白,调用reloadTimelineForComplication(complication)是预算,但这不能成为问题,因为它从一开始就不工作。 我目前正在使用watchOS2 + Xcode 7 GM 我很感激任何想法,使应用程序正在运行时刷新并发症?

从一个类传递数据到WatchOS 2(连通性)

我希望在这里有人可能会有一些关于Watch OS 2连接的想法,可以指向正确的方向。 简单地说,我试图将一组数据(从一个名为FileData的自定义类)传递到我的WatchKit扩展。 当我运行WatchKit应用程序时,我可以看到WCSession正在被激活,但数据集似乎永远不会传递给Watch(尽pipe如果我将数据更改为一个string并传递一些简单的“你好”,它可以工作正确); TableViewController.swift(iOS端) … func sendToWatch(files: [FileData]) { let session = WCSession.defaultSession() let applicationData = ["myFiles":[FileData](files)] session.sendMessage(applicationData, replyHandler: { reply in print("Got reply: \(reply)") }, errorHandler: { error in print("error: \(error)") }) } … InterfaceController.swift(WatchKit扩展) … func session(session: WCSession, didReceiveMessage message: [String : AnyObject]) { let files = message["myFiles"] as! [FileData] print("Got […]