Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Watchkit应用程序包含在两个不同的目标中_Ios_Xcode_Watchkit - Fatal编程技术网

Ios Watchkit应用程序包含在两个不同的目标中

Ios Watchkit应用程序包含在两个不同的目标中,ios,xcode,watchkit,Ios,Xcode,Watchkit,我正在尝试将watchkit应用程序集成到现有应用程序中。由于我们有用于测试的企业版和公共应用程序,因此有两个不同的应用程序目标: com.mycompany.productname com.mycompany.internal.productname 我已在我们的内部目标上成功构建了watchkit应用程序,但我无法将相同的watchkit应用程序链接到应用程序目标。这是我收到的错误: Embedded binary's bundle identifier is not prefixed w

我正在尝试将watchkit应用程序集成到现有应用程序中。由于我们有用于测试的企业版和公共应用程序,因此有两个不同的应用程序目标:

com.mycompany.productname
com.mycompany.internal.productname
我已在我们的内部目标上成功构建了watchkit应用程序,但我无法将相同的watchkit应用程序链接到应用程序目标。这是我收到的错误:

Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier

我知道这是因为WatchKit扩展应该有一个以应用程序目标的捆绑包标识符为前缀的捆绑包标识符,但不幸的是,这两个目标的捆绑包标识符不同,因此我的WatchKit扩展不能将它们都作为前缀。有任何解决此问题的建议吗?

您可以将另一个WatchKit应用程序目标添加到项目中,并将其嵌入到其他构建目标中

Xcode将创建一个新的故事板、Info.plist和一些视图控制器,但您可以删除所有这些新创建的文件

然后,复制原始WatchKit应用程序的Info.plist,重命名它,并将第二个WatchKit应用程序指向此副本

这两个WatchKit应用程序现在将使用相同的文件(故事板等),并且您将能够使用不同的捆绑标识和配置文件,因为它们都有自己的Info.plist


如果你想让我用截图来解释我自己,请告诉我

您可以将另一个WatchKit应用程序目标添加到项目中,并将其嵌入到其他构建目标中

Xcode将创建一个新的故事板、Info.plist和一些视图控制器,但您可以删除所有这些新创建的文件

然后,复制原始WatchKit应用程序的Info.plist,重命名它,并将第二个WatchKit应用程序指向此副本

这两个WatchKit应用程序现在将使用相同的文件(故事板等),并且您将能够使用不同的捆绑标识和配置文件,因为它们都有自己的Info.plist


如果你想让我用截图来解释我自己,请告诉我

我不确定我是否完全理解。你为什么不能按照错误说的去做呢?让watch扩展名和父应用程序具有相同的前缀。在我们的项目中,我们有一个单独的方案设置,我们可以在其中切换,为我们处理这些bundleID更改。由于该应用程序有两个不同的目标,一个用于企业测试,另一个用于生产,因此它使用两个不同的bundle标识符。因此,watchapp只能匹配其中一个。我正在寻找一种方法,使我们能够为任何一个目标构建,而不必根据构建的目标切换watchapp项目的捆绑标识。我很确定你不能这样做。bundleID、内部版本号和版本号必须全部匹配。不过,watch分机将在bundleID中具有“extension”。如果您希望避免连续切换,甚至在同一台设备上运行两个应用程序,此链接将为您提供如何使用schemes实现这一点的想法。我不确定我是否完全理解。你为什么不能按照错误说的去做呢?让watch扩展名和父应用程序具有相同的前缀。在我们的项目中,我们有一个单独的方案设置,我们可以在其中切换,为我们处理这些bundleID更改。由于该应用程序有两个不同的目标,一个用于企业测试,另一个用于生产,因此它使用两个不同的bundle标识符。因此,watchapp只能匹配其中一个。我正在寻找一种方法,使我们能够为任何一个目标构建,而不必根据构建的目标切换watchapp项目的捆绑标识。我很确定你不能这样做。bundleID、内部版本号和版本号必须全部匹配。不过,watch分机将在bundleID中具有“extension”。如果您希望避免连续切换,甚至在同一台设备上运行两个应用程序,此链接将为您提供如何使用schemes实现这一点的想法。我不确定我是否完全理解。你为什么不能按照错误说的去做呢?让watch扩展名和父应用程序具有相同的前缀。在我们的项目中,我们有一个单独的方案设置,我们可以在其中切换,为我们处理这些bundleID更改。由于该应用程序有两个不同的目标,一个用于企业测试,另一个用于生产,因此它使用两个不同的bundle标识符。因此,watchapp只能匹配其中一个。我正在寻找一种方法,使我们能够为任何一个目标构建,而不必根据构建的目标切换watchapp项目的捆绑标识。我很确定你不能这样做。bundleID、内部版本号和版本号必须全部匹配。不过,watch分机将在bundleID中具有“extension”。如果您希望避免连续切换,甚至在同一台设备上运行两个应用程序,此链接将为您提供如何使用schemes实现这一点的想法。这是唯一明智的解决方案吗?同样的问题——2018年。这是唯一的解决办法。此外,我想问,如果我需要将watchkit从一个目标移动到另一个目标,该怎么办?我是否也应该制定另一个目标?这是唯一明智的解决方案吗?同样的问题——2018年。这是唯一的解决办法。此外,我想问,如果我需要将watchkit从一个目标移动到另一个目标,该怎么办?我是否也应该制定另一个目标?这是唯一明智的解决方案吗?同样的问题——2018年。这是唯一的解决办法。此外,我想问,如果我需要将watchkit从一个目标移动到另一个目标,该怎么办?我也应该创建另一个目标吗?