标签: watchos

非公共图书馆SockPuppetGizmo

我收到一封电子邮件,我最近提交给Apple的iOS/Watch OS应用程序的二进制文件无效,原因如下:

该应用程序链接到PlugIns/iPrayed.appex/iPrayed WatchKit App.app/_WatchKitStub/WK中的非公共库:/System/Library/PrivateFrameworks/SockPuppetGizmo.framework/SockPuppetGizmo

我之前提交过这个版本没有任何问题,只对几行代码进行了一些更改,而没有添加任何内容.有什么想法这是关于什么的?

xcode ios apple-watch watchos

50
推荐指数
2
解决办法
3407
查看次数

Xcode 13:构建因“iPhone 正忙:让 Apple Watch 准备好开发”而挂起

问题:构建挂起,显示“iPhone 正忙:让 Apple Watch 做好开发准备”

更多事实:

  • iOS 14.8
  • iPhone 8
  • watchOS 7.6.2
  • Xcode 13
  • Apple Watch Series 3 + 蜂窝网络(42 毫米)

有谁知道这个问题的解决方案?

很多开发者都面临着同样的问题:

xcode watchos

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

在Swift中检测可用的API iOS与watchOS

#available 在区分watchOS和iOS时似乎不起作用.

以下是iOS和watchOS之间共享的代码示例:

lazy var session: WCSession = {
    let session = WCSession.defaultSession()
    session.delegate = self
    return session
}()
Run Code Online (Sandbox Code Playgroud)

...

if #available(iOS 9.0, *) {
    guard session.paired else { throw WatchBridgeError.NotPaired } // paired is not available
    guard session.watchAppInstalled else { throw WatchBridgeError.NoWatchApp } // watchAppInstalled is not available
}

guard session.reachable else { throw WatchBridgeError.NoConnection }
Run Code Online (Sandbox Code Playgroud)

似乎它只是默认为WatchOS,并且#available编译器不会考虑它.

我是否滥用此API或是否有其他方法可以区分iOS和WatchOS之间的代码?

更新:似乎我误用了BPCorp提到的API

使用Tali的上述代码解决方案:

    #if os(iOS)
        guard session.paired else { throw WatchBridgeError.NotPaired }
        guard session.watchAppInstalled else { throw WatchBridgeError.NoWatchApp }
    #endif …
Run Code Online (Sandbox Code Playgroud)

ios watchos swift2 watchos-2

33
推荐指数
2
解决办法
3281
查看次数

将核心数据与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
查看次数

类型“()”不能符合“View”

我正在努力在视图中输出随机字符串。

由于错误:

类型 '()' 不能符合 'View

我了解到 View 不是写下函数本身的合适位置。

我应该怎么做才能输出itemX.randomElement()itemY.randomElement()

struct SummaryView: View {
    var avgValue = 1.5
    var roundedKarvonenValue: Double
    var itemX = ["A", "B", "C", "D", "E", "F", "G", "H"]
    var itemY = ["I", "J", "K", "L", "M", "N", "O", "P"]

    var body: some View {
        ScrollView {
            VStack(alignment: .leading) {
                if workoutManager.averageHeartRate < roundedKarvonenValue {
                    print(itemX.randomElement()!)
                } else {
                    print(itemY.randomElement()!)
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

view swift watchos swiftui

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

观看os 2.0 beta:获取心跳率

使用Watch OS 2.0开发人员应该被允许访问心跳传感器....我很想玩它并为我的想法构建一个简单的原型,但我无法找到关于任何地方的信息或文档此功能.

谁能指出我如何处理这项任务?任何链接或信息将不胜感激

ios apple-watch watchkit watchos

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

Xcode 7支持手表OS1和OS2

我一直在摆弄Xcode 7,我知道它只支持Swift 2,并且没有办法在Xcode 7中支持Swift 1.0或1.2.这很好.

现在来看看WatchOS,我可以在Xcode 7中分别为WatchOS1和WatchOS2分别设置两个目标,以便我可以同时支持吗?

我正在查看监视目标和iOS应用目标的构建设置中的部署目标设置,但我只能在列表中看到WatchOS2

  1. 我可以在Xcode 7中分别为WatchOS1和WatchOS2支持两个目标吗?如果是这样,我应该在某个地方安装WatchOS1 SDK?或者这完全不可能,如果不是为什么?

  2. 如果可以支持两个目标,那么我如何防止两个目标的源重复,因为两个操作系统在体系结构方面存在显着差异.

  3. 另外自从推出WatchConnectivity框架以来,iOS对应应用程序也会有一些变化,如何为两个目标维护呢?

我很困惑,我需要迅速做出决定,任何帮助表示赞赏.

ios watchos xcode7 watchos-2

20
推荐指数
1
解决办法
8257
查看次数

SwiftUI 在变量更改时调用函数

我正在尝试将 watchOS 应用程序的视图转换为 Swift UI。我想将 watchKit 中的音量控制移植到带有自定义控件的 SwiftUI。在下图中,您可以看到视图的当前状态。

音量控制会根据当前状态更改铃声的进度,volume并且volume在我转动数码表冠时也会更改。如果没有 SwiftUI,就可以在旋转表冠时调用一个函数。这已经改变了,系统只允许我绑定一个变量。

我想知道的是绑定一个变量并在该变量的每次更改时调用一个函数。因为正常的 Digital Crown 行为不能满足我的需求。

一件事有效,但远非完美是:

.digitalCrownRotation($crownAccumulator, from: -100.0, through: 100.0, by: 1, sensitivity: .low, isContinuous: true, isHapticFeedbackEnabled: true)
.onReceive(Just(self.crownAccumulator), perform: self.crownChanged(crownAccumulator:))
Run Code Online (Sandbox Code Playgroud)

OnReceive 将在每次旋转表冠时调用,但也会在视图的每一次其他更新时调用。

所以我想要的是这样的管道:

皇冠旋转?crownAccumulator变化 ?名为 async 的函数?功能更新volume

过去我会使用 didSet 来完成此操作,但这不再可用

这里是它的代码:


    @ObservedObject var group: Group
    @State var animateSongTitle: Bool = false

    @State var songTitle: String = "Very long song title that should be scrolled"
    @State var artist: String = "Artist name"


    @State …
Run Code Online (Sandbox Code Playgroud)

swift watchos swiftui

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

WatchOS在WKInterfaceTable中滚动到下一行

Apple自己的Activity应用程序有一个有趣的功能,我尝试在我自己的手表应用程序中重新实现:活动应用程序中的每个页面都是可滚动的,基本上有2个垂直页面.第一页是圆圈,第二页显示更多信息.

但是这些页面在使用数字表冠时通常不会向上和向下滚动 - 它们会拍摄.所以你不能在页面之间滚动.Apple似乎使用了WKInterfaceTable两行但我没有找到任何文档如何实现捕捉行为.

他们是如何做到的呢?

scroll watchkit wkinterfacetable watchos watchos-2

15
推荐指数
1
解决办法
488
查看次数

类型 '()' 不能符合 'View';只有 struct/enum/class 类型才能符合协议;使用 SwiftUI 调用函数

我有一个带有此堆栈的名为 MyWatchView 的 Swift UI 结构。

        VStack (alignment: .center)
        {
            HStack
            {
                Toggle(isOn: $play)
                {
                    Text("")


                }
                .padding(.trailing, 30.0)
                .hueRotation(Angle.degrees(45))
                if play
                {
                    MyWatchView.self.playSound()
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

它还有@State private var play = false; 一个函数 playSound 是这样的:

static private func playSound()
{
    WKInterfaceDevice.current().play(.failure)
}
Run Code Online (Sandbox Code Playgroud)

我收到类型“()”不能符合“视图”的错误;只有结构/枚举/类类型可以符合协议我认为这可能是我不理解结构在 Swift 中工作的方式。我正在尝试使用计时器来触发播放声音功能。这是我在我的 iOS 故事板应用程序中的视图控制器类中的代码timer = Timer.scheduledTimer(timeInterval: interval, target: click class, selector: #selector(clickClass.repeatSound), userInfo: clickClass, repeats: switchView.isOn)

struct ios watchos swiftui

15
推荐指数
1
解决办法
3万
查看次数