Ios 如果当前目标有可用的watch app版本,如何签入代码?
我正在一个视图中工作,在这个视图中,我应该对应用程序进行自定义,以确定是否存在该应用程序的手表版本 我知道我可以使用: [[WCSession defaultSession]isWatchAppInstalled] 但这不是我想要的,因为用户可以在Apple Watch中卸载应用程序,但iOS应用程序仍然可以安装手表版本 此外: [[WCSession defaultSession]isPaired]不是我的情况。事实上,isWatchAppInstalled是处理这种情况的正确方法 如文件所述: 用户可以选择只在Apple Watch上安装可用应用程序的子集。当用户的Apple Watch上安装了与当前iOS应用程序关联的Watch应用程序时,此属性的值为true;未安装时,此属性的值为falseIos 如果当前目标有可用的watch app版本,如何签入代码?,ios,objective-c,watchos,Ios,Objective C,Watchos,我正在一个视图中工作,在这个视图中,我应该对应用程序进行自定义,以确定是否存在该应用程序的手表版本 我知道我可以使用: [[WCSession defaultSession]isWatchAppInstalled] 但这不是我想要的,因为用户可以在Apple Watch中卸载应用程序,但iOS应用程序仍然可以安装手表版本 此外: [[WCSession defaultSession]isPaired]不是我的情况。事实上,isWatchAppInstalled是处理这种情况的正确方法 如文件所述
该属性不会查看捆绑包内是否有可用的Watch应用程序。只有在当前配对的Apple Watch上安装了Watch应用程序时,才会返回true。如果用户从Watch中删除Watch应用程序,它将返回false。在检查我正在处理的当前项目并测试创建两个新项目以检查捆绑包(一个包含Watch的项目和另一个不包含Watch的项目)后,我看到了它们之间的区别: 区别在于包含watch的项目有一个构建阶段,该阶段将watch应用嵌入到名为watch的子目录中 当显示内置查找器的包内容时,我们还可以看到Watch文件夹: 因此,每当iOS应用程序在代码中嵌入手表时,条件是:
+ (BOOL)isWatchAppEmbedded
{
NSString *watchPath = [NSString stringWithFormat:@"%@/%@", [NSBundle mainBundle].resourcePath, @"Watch"];
BOOL isDirectory = YES;
if ([[NSFileManager defaultManager] fileExistsAtPath:watchPath isDirectory:&isDirectory]) {
return YES;
}
return NO;
}