WatchOS应用程序未检测到配套iOS应用程序

3xiyfsfu  于 2023-03-24  发布在  iOS
关注(0)|答案(5)|浏览(283)

我正在制作一个独立的Apple Watch应用程序(但有一个配套的iPhone应用程序,这对手表应用程序的功能来说并不是必需的。)
如果安装了iPhone配套应用,应用会使用WatchConnectivity来同步设备之间的数据。我可以在iOS应用上调用session.updateApplicationContext(),并在Watch应用上接收session(didReceiveApplicationContext)。但另一种方式是不可能的。我总是得到7018的NSError代码,这意味着没有安装iOS配套应用。
我已经确保watchOS和iOS应用程序都安装在模拟器中(并在我的实际设备上进行了测试,iPhone 11和Watch系列5。)但从watchOS -〉iOS得到同样的失败结果。
我注意到watchOS 6.0+isCompanionAppInstalled有一个新的WCSession示例变量可用。当我在手表应用程序上激活WCSession后读取此变量时,它总是返回false。
还有什么我需要注意的吗?我在想也许我在所有不同的info. plist中做错了什么。但是我已经检查了很多次。
我的信息.plist文件:
在我的手表应用程序中:

WKWatchKitApp is YES
 WKCompanionAppBundleIdentifier is com.abc.myapp

在我的手表扩展中:

App can run independently of companion iPhone app is YES
  NSExtension
    WKAppBundleIdentifier is com.abc.myapp.watchkitapp
    NSExtensionPointIdentifier is com.apple.watchkit
  • iOS应用程序捆绑包标识符为com.abc.myapp
  • watchOS应用程序是com.abc.myapp.watchkitapp
  • watchOS应用程序扩展名是com.abc.myapp.watchkitapp.watchkitextension

还有什么我可能忽略的吗?
非常感谢您提供的任何帮助/见解。

wnrlj8wa

wnrlj8wa1#

好的。我找到了一种方法来消 debugging 误,让手表连接从手表到iPhone都能正常工作。
本来我希望watch app是独立的,所以在Xcode的watch扩展目标中,勾选了“支持不安装iOS App运行”的复选框。但是只要我取消勾选这个复选框,WCSession.isCompanionAppInstalled就返回true,错误消失。从watch同步到iPhone开始工作。
所以希望这不是故意的行为,很快就会被苹果修复。(我提交了一份错误报告。)但现在,我只是要离开独立的watchOS应用程序未经检查,因为我确实想要WatchConnectivity,以防iPhone应用程序被用户安装。
感谢您的阅读,祝您编程顺利。

798qvoo8

798qvoo82#

如果您在Info.plist中有“App is only available as a standalone watchOS app”,即使它是false也要删除它。只留下“App can run independently of companion iPhone app”。另外,不要忘记为Watch App设置“WKCompanionAppBundleIdentifier”(不是扩展)。至少它在真实的设备上对我来说可以使用这些参数。

hxzsmxv2

hxzsmxv23#

这似乎是一个bug,有时当我启动我的WatchOS应用程序时,它会一直得到WCSession.isCompanionAppInstalled = false,尽管iPhone上的配套应用程序正在运行,其他应用程序也能够与手机通信。
当我在手表上强制重启应用程序时,这似乎消失了(按侧边按钮,然后向左滑动应用程序并按下大红色按钮,然后再次启动应用程序)。重启后,一切似乎都很好。
到目前为止,这只发生在Testflight版本中,如果它发生在生产版本中,我将提交一个bug。

svmlkihl

svmlkihl4#

如果我取消选中“支持在不安装iOS应用程序的情况下运行”,我的iOS应用程序将无法在模拟器中启动。

xkftehaa

xkftehaa5#

我在Xcode 14.2中遇到了这个问题。解决方案:
1.将INFOPLIST_KEY_WKWatchOnly设置为NO
1.在watch os应用中添加WKCompanionAppBundleIdentifier键,并将值设置为iOS应用的绑定ID

相关问题