Watchkit扩展 – 找不到匹配的configuration文件

我创build了一个iPhone应用程序,其中还包括一个WatchKit扩展,我可以在模拟器中运行这个罚款,但是当试图部署到iPhone时,我得到一个WatchKit扩展目标的供应问题:

“您的版本设置(”XXXX“)中指定的configuration文件的AppID为”XXXX“,与您的捆绑包标识符”XXXX.watchkitextension“不符。Xcode可以通过从成员中心下载新的configuration文件来解决此问题。 “

Xcode会自动创build带有后缀.watchkitextension和.watchkitapp的WatchKit目标,但这似乎会导致使用configuration文件并部署到iPhone时出现的问题。

如果我删除了watchkit目标,它运行良好,但这显然不是一个解决scheme。

谢谢你的帮助

您需要在Developer Portal中为您的Watchkit应用程序和Watchkit扩展名创build两个新的AppID。 包标识符必须扩展主应用标识符,所以如果你的应用是com.myapp它应该是com.myapp.watchkitextensioncom.myapp.watchkitapp

您还需要为AppID创build相关的Provisioning Profiles ,一个用于扩展,另一个用于应用程序。
如果您在Watch应用程序中使用它们,请添加所需的附加组件(如钥匙串)。

总而言之,您需要6个PP,3个用于开发,3个用于存档/存储。 随着Xcode 6.3开发团队的供应停止工作( 对我来说 )

下一步转到Xcode>首选项>帐户> YOUR_ACCOUNT>查看详细信息… ,CTRL +单击其中一个configuration文件,然后在Finder中打开。 将所有configuration文件移至垃圾箱,然后刷新configuration文件。

在您的目标中,确保您为主App目标,Watchkit扩展目标和Watchkit App目标设置了正确的Team,还要确保将正确的Provisioning Profiles分配给主App目标和Watchkit扩展目标(Watchkit app Provisioningconfiguration文件不能设置,但会自动分配编辑:使用Xcode 6.3,它可以被设置 )。

确保一切都很好,干净的生成文件夹:在Xcode保持命令,并执行Product> Clean build folders …

现在您已经准备好归档了。

我的情况我已经按照其他用户的build议清理了我所有的供应configuration文件,然后我不得不从“应用程序父级和扩展目标”中的“构build设置”中删除“代码签名权利”,并且在重build和归档之后,一切正常。

代码从构建设置签署权利

我做了3个App ID(用于容器应用程序,watchkit扩展和watchkit应用程序)属于3个供应configuration文件。 (我打算使用AppGroup,因此我的应用程序无法共享一个App ID。)为容器应用程序和watchkit扩展设置2个configuration文件,我的应用程序的存档无法通过Xcode的validation过程。

在我的情况下,关键是要设置WATCHKIT APP的configuration文件。 设置它,它通过validation过程,并成功提交应用程序。

我的设置过程如下:

  1. 在Xcode中,打开WatchKit App的“TARGET”。
  2. select“构build设置”选项卡。
  3. 在选项卡的下一行中,select“全部”而不是“基本”。
  4. 您可以在“代码签名”部分find“供应configuration文件”行。
  5. 设置你的适当的configuration文件。

有一段时间,我相信第三方应用程序开发人员不能在Xcode中设置WatchKit应用程序的configuration文件。 注意到我们可以设置它,现在的答案很清楚。

通常当你得到这个错误,因为你的包ID不符合规定的应用程序ID。

对于手表扩展程序,如果要在扩展程序和应用程序之间共享数据或文件,则需要在developer.apple.com门户上将应用程序服务App Group添加到与您的应用程序关联的应用程序标识符标识

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/DesigningaWatchKitApp.html

在我的情况下,问题是不同于其他人。 我尝试了一切,但没有解决我的问题。 让我解释我的情况,然后解释我如何解决它。 首先它将Today Extension添加到我的项目中。 我为我的应用程序扩展创build了不同的包ID。 例如,如果我的应用程序的包ID com.company.appname,我为我的扩展创build类似这样的“com.company.appname.TodayExtension”。 我正在使用XCode V6.3.2(6D2105)和XCode自动(在您的构build设置(“AppName”)中指定的供应configuration文件的AppID为“BundleID”,与您的包标识符“BundleID2”不匹配。通过从会员中心下载新的供应configuration文件解决此问题…当然,我点击“修复问题”button)为今天的扩展创build供应configuration文件。

之后,我在应用程序中添加了“应用程序组”,并继续编写了一段时间。 但是,当我尝试发送我的应用程序到AppStore(产品/存档/提交到AppStore),我得到这个错误,说:“没有有效的configuration文件允许指定的权利:beta-reports-active,com.apple.security 。应用基”。

你必须知道,“应用程序组”可能是你的关键点…

请到成员中心/证书,标识符和configuration文件/configuration文件/配送部分。 find您的应用程序的分发configuration文件并select它。 正如你可以看到,你的个人资料的状态是“无效的(就像在我的情况下)。然后这里的解决scheme,点击编辑button,然后生成button现在请重复此操作为所有”无效“configuration文件。重新validation,现在您可以返回到您的XCode项目并更新Mac中的本地条款了:Xcode>首选项>帐户> YOUR_ACCOUNT>查看详细信息…,CTRL +单击其中一个configuration文件,然后在Finder中打开。所有configuration文件垃圾桶,然后刷新configuration文件“。

现在产品/清洁和(希望在最后一次)产品/档案和提交到AppStore。

一般来说,这是因为您将应用程序组添加到您的应用程序中,但是之后您没有validation所有configuration文件。

也许这会帮助别人。

我遵循技术问答QA1814 ,为我解决了这一切。 基本上你把所有东西都设置为自动iOS开发者 。 设置团队非常重要:首先,请执行更改,然后再更改回您的团队,然后重新启动Xcode。

我的情况是,我已经为“正常”的iOS应用程序设置了configuration文件和证书。 我已经成功地发布了应用程序。 现在我需要在我的现有应用程序中添加一个新的WatchKit目标后才能使用它。 我收到了很多错误,比如“没有匹配configuration文件”等等。经过几个小时的麻烦,我在QA1814文章中跟踪了这些路线,瞧! – Xcode解决了我的一切。 无需在会员中心更改/解决/更新任何内容

同样重要的是正确使用Bundle ID。 WatchKit应用程序和WatchKit扩展必须使用与iOS应用程序目标相同的包ID前缀。

如果iOS应用程序具有捆绑ID: [捆绑ID] ,则WatchKit目标需要为:

  • WatchKit应用程序: [Bundle ID] .watchkit
  • WatchKit扩展: [Bundle ID] .watchkit.extension

当你在Xcode中更新你的证书并重新编译你的程序时,真正的机器debugging将是“你的内部版本设置指定一个configuration文件有UUID'XXX',清除,没有findconfiguration文件.Xcode可以解决这个问题通过从会员中心下载新的configuration文件“。


  1. closures该项目,find项目文件XXXX。 Xcodeproj,右键单击文件,select“Show Package Contents”(显示包装内容)。将打开一个新的Finder。
  2. 在新打开的Finder中find该项目。 Pbxproj,并打开,find你所有包含错误'XXX'行的UUID,删除。
  3. 保存,重启项目,然后build立,就OK了。