标签: watchkit

无法在Apple Watch上安装WatchKit应用程序

我有一个在模拟器中运行良好的WatchKit应用程序.但是当我尝试在实际设备上运行它时,它永远不会完成安装,并且从不提供任何错误消息或反馈.

iOS应用程序安装并运行正常.我在iPhone上调出Apple Watch应用程序并列出应用程序并显示正确的图标.选择此项,"在Apple Watch上显示应用程序"开关打开.它下面写着"安装......".它就在那里.

我还可以在Apple Watch上看到应用程序图标.选择它只是显示旋转滚轮指示器,就好像它正在尝试加载一样.

根据我在这里,Apple开发者论坛和网络上发现的其他建议我尝试过的事情:

  • 验证所有应用包ID都正确且匹配.

  • 已验证部署目标是iOS 8.2.

  • 验证了WatchKit App在模拟器中运行.

  • 已验证我的配置文件包含Apple Watch的UDID.

  • 已验证我的Apple Watch在设备中显示为"配对监视".

  • 从我的手机删除了应用程序,然后重新启动我的手机,手表和Macbook,然后重新安装.

以上都不是.有什么建议?

谢谢!

托马斯艾尔斯沃思

ios watchkit

34
推荐指数
2
解决办法
1万
查看次数

从WatchKit中的模态视图传回数据

当模态呈现或推送接口控制器时,我们可以指定context参数以将一些数据传递给新控制器,如下所示.

// Push
[self pushControllerWithName:@"MyController" context:[NSDictionary dictionaryWithObjectsAndKeys:someObject, @"someKey", ..., nil]]; 

// Modal
[self presentControllerWithName:@"MyController" context:[NSDictionary dictionaryWithObjectsAndKeys:someObject, @"someKey", ..., nil]]; 
Run Code Online (Sandbox Code Playgroud)

我的问题是,我们怎么能这样做呢?

假设我们以模态方式呈现一个控制器,以便用户从列表中选择一个项目,然后我们返回主控制器,我们如何获取已被选中的项目?

ios apple-watch watchkit

30
推荐指数
2
解决办法
1万
查看次数

Apple Watch的WatchKit中是否有ActivityIndi​​cator?

Apple Watch的WatchKit中是否有ActivityIndi​​cator(或类似的东西)?您如何向用户提供有关更持久的背景活动的反馈?

uiactivityindicatorview watchkit

30
推荐指数
4
解决办法
2万
查看次数

Apple Watchkit模拟器问题:SPErrorInvalidBundleNoGizmoBinaryMessage

当我打开现有的Watchkit应用程序(Xcode 6.2)时,它会正确编译,启动模拟器(iPhone + Watch),然后是有意义的错误:

启动'xxx Watchkit Extension'SPErrorInValidBundleNoGizmoBinaryMessage时出错

所有模拟器都有这个问题(iPhone 5/5S/6/6 + - 38mm/42mm)

任何想法可以是什么问题?

由于某种原因,应用程序似乎不想在模拟器上运行,即使它曾经使用过.与其他Watchkit示例应用程序一样,同一项目中包含的iPhone应用程序也可以运行.

ios xcode6 watchkit

29
推荐指数
5
解决办法
1万
查看次数

何时何地获取Watch Complication的数据

在对并发症进行了几天的处理之后,我有信心对于以规定间隔发生的更新的更新过程进行以下说明:

  • 系统调用 requestedUpdateDidBegin()
    • 您可以在此处确定数据是否已更改.如果没有,您的应用程序不必做任何事情.如果您的数据已更改,则需要调用以下任一项:
      • reloadTimelineForComplication 如果您需要重置所有数据.
      • extendTimelineForComplication 如果您只需要在并发症时间轴的末尾添加新项目.
    • 注意:系统实际上可能会调用,requestedUpdateBudgetExhausted()而不是requestedUpdateDidBegin()如果您在当天花费了太多的并发症时间预算.这就是这个问题的原因.
  • 如果您打电话reloadTimelineForComplication,系统将调用getCurrentTimelineEntryForComplication(以及获取阵列的未来和过去变体,具体取决于您的时间旅行设置)
  • 这是猜想,因为我还没有测试它,但我相信如果你打电话extendTimelineForComplication说只会getTimelineEntriesForComplication(... afterDate date: NSDate ...)被调用.
  • 然后系统将调用,getNextRequestedUpdateDateWithHandler以便您指定复杂性需要新更新的时间.

Apple的文档非常明确,您不应该经常询问更新,或者在复杂化代码中进行太多处理,否则您将耗尽时间预算,并且您的并发症将停止更新.所以,我的问题是:你在何时何地进行更新?

对于上下文,我的方案是一个URL,其返回数据每小时最多更改两次.

放置URL获取代码最明显的地方是func requestedUpdateDidBegin()获取数据,存储它,如果没有变化,只需返回.如果有更改,则延长或重新加载时间线.

但是,URL提取可能会很昂贵.备择方案:

  • 将代码放在手机应用程序上并使用a发送WCSession,但如果用户关闭该应用程序,则更新将不再发生.
  • 使用推送更新,但这不是一个Web应用程序,所以我没有地方发送它们.
  • 显然,当用户与监视应用程序交互时,我将更新所有数据,但现在这意味着它只在用户使用应用程序时才会更新,从而无需复杂化.

还有其他地方吗?我可以在手表应用程序中使用不属于复杂功能的周期性功能吗?获取并发症更新数据的正确位置在哪里?

ios watchkit clockkit watchos-2 apple-watch-complication

29
推荐指数
1
解决办法
6674
查看次数

将数据传递到Apple Watch应用程序

我正在尝试将数据从我的应用程序传递到Apple Watch应用程序中.基本上,我使用的方法与我用于创建今天小部件的方法相同,因此我通过NSUserDefaults传递数据.

问题是,当我运行我的应用程序时,数据不会像我预期的那样更新Watch应用程序中的标签.

这是我的......

override init(context: AnyObject?) {
    // Initialize variables here.
    super.init(context: context)

    // Configure interface objects here.
    NSLog("%@ init", self)

    var defaults = NSUserDefaults(suiteName: "group.AffordIt")
    var totalBudgetCalculation = ""
    if (defaults!.stringForKey("totalBudgetWidget") != nil) {
            println("Worked")
        totalBudgetCalculation = defaults!.stringForKey("totalBudgetWidget")!
        initialBudgetLabel.setText("Initial: \(totalBudgetCalculation)")
    }

    var currentBudgetCalculation = ""
    if (defaults!.stringForKey("currentBudgetWidget") != nil) {
        currentBudgetCalculation = defaults!.stringForKey("currentBudgetWidget")!
        currentBudgetLabel.setText("Current: \(currentBudgetCalculation)")
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试将此代码放入其中willActivate(),但这似乎没有任何区别.

谁知道我哪里错了?

nsuserdefaults ios swift apple-watch watchkit

28
推荐指数
4
解决办法
2万
查看次数

WatchKit:无法找到接口控制器类

我尝试将一个接口控制器添加到故事板,将其Custom Class设置为WKInterfaceController子类,在模拟器中启动应用程序并导航到指定的接口控制器.

当我这样做时,我收到以下错误:

WatchKit错误 - 无法找到接口控制器类'TestController'来实例化

如果我尝试与控制器交互(例如尝试启动其按钮的操作),我会收到以下错误:

  • ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID的clientIdentifier :( null)未找到
  • ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] clientControllerID的clientIdentifier:找不到7120004

我尝试按照此答案的建议设置模块名称,但这仍然给我以下错误:

  • WatchKit错误 - 无法找到接口控制器类'_TtC29myWatchApp_WatchKit_App19TestController'来实例化
  • ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID的clientIdentifier :( null)未找到
  • ***********ERROR - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID的clientIdentifier:找不到6E20004

storyboard ios watchkit

28
推荐指数
4
解决办法
2万
查看次数

将核心数据与watchOS 2.0一起使用

我使用WatchKit 1.0创建了一个iOS/Apple Watch应用程序,它使用共享组容器和自定义框架来访问同一个Core Data存储.现在,在watchOS 2.0的过渡指南中,Apple说:

如果您现有的Watch应用程序和iOS应用程序使用共享组容器或iCloud交换数据,则必须更改watchOS 2中交换数据的方式.由于WatchKit扩展现在可在Apple Watch上运行,因此扩展必须与iOS交换数据app无线.您可以使用NSURLSession对象或使用Watch Connectivity框架来执行此操作,该框架支持iOS应用程序和WatchKit扩展之间的双向通信.

但是,这如何与Core Data一起使用?我是否需要维护两个单独的存储,一个位于手表上的Documents文件夹中,另一个位于手机上,并使用Watch Connectivity框架同步更改?我看到watchOS 2.0可以访问Core Data框架(它位于可用技术列表中)......但是我不确定当商店位于手机上时它会有多大帮助.任何帮助/指导表示赞赏!

ios watchkit watchos watchos-2

28
推荐指数
2
解决办法
6688
查看次数

使用空的 LLDB 目标会导致从远程设备读取内存缓慢

我正在使用 Xcode 12,但收到如下警告:

警告:在路径 '/Users/ABC/Library/Developer/Xcode/DerivedData/demowatchapp-blfzfuqxehfteaaofqpdlfuurtdr/Build/Products/Debug-watchsimulator/watchapp.app' 处创建 LLDB 目标时出错 - 使用空的 LLDB 目标会导致内存读取缓慢从远程设备。

我已经检查过 xcode 6 中有解决方案可以将架构更改为 arm64。我也在构建设置中检查了它,它被称为标准架构。我已经读过它,因为新的 xode 苹果本身使它成为标准架构,即 arm64、armv7。所以现在不确定是什么问题。我还检查了我的 iOS 应用程序、手表应用程序和扩展程序是否都具有相同的架构。

在此处输入图片说明

我还检查了以下对我不起作用的链接: Xcode - 创建 LLDB 目标时出错

ios lldb swift watchkit xcode12

28
推荐指数
1
解决办法
5293
查看次数

适用于Force Touch/Digital Crown的WatchKit API?

我对Apple Watch引入的新用户交互可能性感到非常兴奋,其中包括Force Touch和Digital Crown.

但是,我在WatchKit API中找不到它们.有没有办法接收Force Touch/Digital Crown的活动?是否可以为事件提供自定义处理程序?

user-interaction ios apple-watch watchkit

26
推荐指数
4
解决办法
8452
查看次数