2015-03-02 157 views
58

我创建了一个iPhone应用程序,它还包含一个WatchKit扩展,我可以在模拟器中运行这个罚款,但是当试图部署到iPhone时,我得到了WatchKit扩展目标的配置问题:Watchkit扩展 - 没有找到匹配的配置文件

“构建设置(”XXXX“)中指定的配置文件的AppID为”XXXX“,与您的捆绑软件标识符”XXXX.watchkitextension“不匹配Xcode可以通过下载新的配置文件来解决此问题来自会员中心“。

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

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

感谢您的帮助

+0

我们需要等待更多一点。在正式发布日期前两周左右,Apple会给我们将应用程序上传到App Store的可能性。 – 2015-03-09 21:46:38

+0

看看我的答案在这里: http:// stackoverflow。com/a/30663352/3717931 希望这有助于。 – Jouhar 2015-06-05 09:51:50

回答

1

通常,当你得到的是错误的,因为你的软件包ID不匹配的应用程序ID,它是在提供。

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

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

104

您需要在开发者门户网站为您Watchkit应用和Watchkit推广正确的束标识符来创建两个新的AppIDs。软件包标识符必须延长主应用标识符,因此,如果您的应用程序是com.myapp应该com.myapp.watchkitextensioncom.myapp.watchkitapp

您还需要建立相关的供应型材为AppIDs,一个用于扩展和一个用于应用程序。
如果您在Watch应用中使用它们,请添加所需的附加组件(如钥匙串)。总而言之,您需要6个PP,3个用于开发,3个用于存档/存储。和Xcode 6.3的开发团队配置停止工作(for me

下一页转到的Xcode>首选项>帐户> YOUR_ACCOUNT>查看详细...,CTRL +单击配置文件之一,在Finder中打开。将所有配置文件移至废纸篓,然后刷新配置文件。

在您的目标中,确保您为主要应用目标,Watchkit扩展目标和Watchkit应用目标设置了正确的团队,还要确保将正确的Provisioning Profiles分配给主App目标和Watchkit扩展目标(Watchkit应用程序提供配置文件不能设置,但会自动分配编辑:对于Xcode 6.3,它必须设置为)。

要确保所有的罚款干净生成文件夹:在Xcode中保持命令,做产品>干净生成文件夹...

现在你已经准备好存档。

+5

我发现奇怪的是,Xcode为应用程序和watchkitextension创建配置文件,但它不会为watchkitapp获取分配的一般“XC *”配置文件。它也验证并上传到iTunes Connect。 – Rivera 2015-04-23 12:46:45

+1

当试图为扩展程序和应用程序创建新的应用程序ID时,我收到以下消息:“带有标识符'com.myapp.watchkitextension'的应用程序ID不可用,请输入其他字符串。我卡住了。需要创建新的应用ID和相关的配置文件,但ios开发中心不允许我。 – 2015-06-02 13:47:37

+0

@dogsgod,任何想法如何为扩展和应用程序创建应用程序ID? – 2015-06-02 14:25:05

2

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

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

我的设置步骤如下:WatchKit应用的

  1. 在Xcode中,打开 “目标”。
  2. 选择“Build Settings”选项卡。
  3. 在选项卡的下一行中,选择“全部”而不是“基本”。
  4. 您可以在“代码签名”部分找到“Provisioning Profile”行。
  5. 设置您的适当配置文件。

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

+0

“设置你的适当配置文件。”对同样的问题的其他答案建议使用“自动”,在我的情况下没有工作。选择特定的配置文件确实有效。 – nicc 2015-07-13 14:43:17

0

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

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

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

请进入会员中心/证书,标识&概况/供应概况/分配部分。找到您的应用程序的分发配置文件并选择它。正如你可以看到你的配置文件的状态是“无效的(就像我的情况)。然后这里是解决方案,然后点击编辑按钮,然后生成按钮,现在请对所有”无效“配置文件重复此操作。重新验证,现在您可以返回到您的XCode项目并更新Mac中的本地条款。转到:Xcode>首选项>帐户> YOUR_ACCOUNT>查看详细信息...,CTRL +单击其中一个配置文件并在Finder中打开。所有配置文件删除,然后刷新配置文件“。

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

一般来说,因为你添加的应用程序组到应用程序它的发生,但你以后未得到验证所有配置文件。

也许这将帮助别人。

0

我跟着Technical Q&A QA1814,并且解决了这一切对我来说。基本上你把所有设置为自动iOS Developer。设置团队非常重要:首先,进行更改,然后更改回您的团队,然后重新启动Xcode。

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

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

如果iOS应用具有束编号:[捆绑ID],所述WatchKit目标需要是:

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

我的情况我已经清除了其他用户建议的所有配置文件,然后我有从应用程序父级和扩展目标中的“构建设置”中删除“代码签名权利”,并在重建和归档后删除“代码签名权利”。

code signing entitlements from build Settings

+0

在为我工作2天后,xcode变得非常嘈杂,无法发布 – 2016-12-19 11:06:14

0

当你在Xcode更新您的证书,并再次编译你的程序,真机调试将是“您的构建设置指定供应配置文件有UUID‘XXX’,清晰,无以供应曲线Xcode可以通过从成员中心下载新的配置文件来解决此问题。“


  1. 关闭该项目,发现项目文件XXXX。 Xcodeproj,右键单击文件,选择“Show Package Contents”(显示包装内容)。将打开一个新的Finder。
  2. 在新打开的Finder中找到该项目。 Pbxproj,并打开,找到你所有包含错误'XXX'行的UUID,删除。
  3. 保存,重启项目,然后构建,就OK了。
相关问题