Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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
我可以在WatchKit应用程序中从iOS应用程序继承用户定义的环境变量吗?_Ios_Xcode_Watchkit_Xcode 6.2 - Fatal编程技术网

我可以在WatchKit应用程序中从iOS应用程序继承用户定义的环境变量吗?

我可以在WatchKit应用程序中从iOS应用程序继承用户定义的环境变量吗?,ios,xcode,watchkit,xcode-6.2,Ios,Xcode,Watchkit,Xcode 6.2,我有一个有多个目标的项目。每个目标都有一个名为$(BUNDLE\u ID)的用户定义的生成设置来设置该目标的BUNDLE ID-当然,此设置必须针对每个目标,而不是整个项目 现在,对于WatchKit应用程序,我需要有多个WatchKit目标(每个iOS应用程序目标两个),每个目标都使用$(父包\u ID),以便在多个目标之间共享Info.plist等 当前,$(父捆绑包\u ID)需要设置两次(一次在WatchKit应用程序目标中,一次在WatchKit扩展目标中)。我想做的是为WatchKi

我有一个有多个目标的项目。每个目标都有一个名为
$(BUNDLE\u ID)
的用户定义的生成设置来设置该目标的BUNDLE ID-当然,此设置必须针对每个目标,而不是整个项目

现在,对于WatchKit应用程序,我需要有多个WatchKit目标(每个iOS应用程序目标两个),每个目标都使用
$(父包\u ID)
,以便在多个目标之间共享Info.plist等


当前,
$(父捆绑包\u ID)
需要设置两次(一次在WatchKit应用程序目标中,一次在WatchKit扩展目标中)。我想做的是为WatchKit组件指定零次,并以某种方式从嵌入它的iOS应用程序目标的
$(BUNDLE\u ID)
继承/复制它。这可能吗?我如何在Xcode中设置它?

是的,可以做到。为了使所有目标都可以访问捆绑包标识符,您需要将该捆绑包标识符定义为项目设置中的用户定义键,并为其分配一个值

在项目设置中定义键“Bundle\u ID”后,键“Bundle\u ID”将反映到与该项目设置关联的所有目标中

您可以使用$(Bundle_ID)访问所有目标的plist中的这些密钥,如下图所示


我想你错过了问题的一部分,我提到我有多个目标,因此不能在项目构建设置中设置所有目标的
BUNDLE\u ID
(正如你所说,所有目标都继承了这些目标),并且必须在每个目标的生成设置中设置。您可以创建父捆绑包ID,并根据在项目设置中定义的父捆绑包ID派生目标捆绑包ID。我有8个iOSApps目标-它们当然都有不同的捆绑包ID,因为它们在应用商店中是不同的应用。因此,必须在每个目标中定义设置,而不是在项目中定义设置。。。因此,我希望8个WatchKit应用程序/扩展能够从嵌入它们的目标(即另一个目标,而不是项目)访问ID。您可以在项目设置中定义8个键,如“Bundle\u ID\u ProjectA”,此实现允许您在一个位置更改bundle id,并在您使用这些id的所有位置反映这些id。