代码签名错误:找不到与应用程序标识符匹配的有效配置文件。

11

我已经为此问题奋斗了几天,现在快要撞墙自杀了,因为我无法对我的代码进行签名或提交申请。

我有一个应用程序已经被提交到应用商店并且通过了审核 (版本1.0.0)。我能够使用XCode 3.2.4 和iOS 4.1通过Application Loader发布第一个更新 (版本1.0.1)。现在我使用的是XCode 3.2.5和iOS 4.2,正在尝试通过XCode Organizer发布新的更新 (版本1.0.2)。

当我将Info.plist中的Bundle Identifier设置为“com.myCompany.myApp”并构建应用程序时,可以成功地针对AppStore Distribution provision构建应用程序。但是,当我尝试通过Organizer验证/提交构建时,会出现错误,指出“Bundle Identifier: com.myCompany.myApp与之前的Bundle Identifier ABC123XYZ1.com.myCompany.myApp不同”。显然,当我第一次通过iTunes Connect提交我的应用程序时,我使用了完整的(AppId).BundleIdentifer语法。我通过查看iTunes connect中的Bundle ID进行了验证。

因此,我逻辑上在Info.plist文件中添加了AppId前缀以符合原来的Bundle identifer。当我这样做并尝试再次构建时,会出现“Code Sign error: a valid provisioning profile matching the application's Identifier ... could not be found.”,构建失败。

我已经尝试了所有在互联网上关于这两个错误的解决方法,但都没有解决问题。我陷入了一个进退两难的境地。我无法使用带有AppID前缀的Bundle identifer构建应用程序,也无法在iTunesConnect中提交它。此外,当我使用Application Loader上传应用程序时,iTunesConnect出现错误。

如果有人能帮我摆脱这个代码签名和应用程序提交的地狱,我愿意献出我的第一个孩子!

4个回答

12
经过两个月等待iTunes团队的回复,但一直没有得到答复。我找到了一个解决办法来解决这个问题并上传了我的应用程序。关键是要使捆绑标识符与在iTunesConnect中注册的bundle id匹配。在这种情况下,iTunesConnect中的bundle id采用了1234567890.com.companyname.appname的形式。初次创建应用程序时,不知何故我将bundle seed id包括在内,而根据我的研究,这在创建iTunesConnect中的应用程序时不应该包括。
为了解决该问题,我在配置门户中创建了一个新的AppID,其形式为1234567890.1234567890.com.companyname.appname,然后基于这个新的AppID创建了一个新的分发移动提供者。我下载并安装了移动提供程序xCode Organizer。在我的xCode项目的信息.plist中,我设置了捆绑标识符为1234567890.com.companyname.appname。这使得xCode能够将移动提供者与信息.plist中指定的捆绑标识符匹配,并成功地使用与iTunesConnect中bundle id匹配的捆绑标识符构建和签名我的应用程序。在组织器中,我能够成功验证和上传应用程序。

我不得不处理相同的问题。非常感谢! - aiham
这个在Unity中帮了我很大的忙。我在字符串中包含了bundle ID,将其删除后才能识别到该提供程序。 - Ben Throop

1
在我的情况下,我必须先使用Cmd-B构建应用程序。
这将弹出一个钥匙串窗口访问请求,要求我“允许”(或“始终允许”)Xcode访问钥匙串。
只有在此之后,我才能实际运行程序并在我的iPhone上启动它。
显然,仅点击“运行”并不能解决问题。
(顺便提一下,记得首先使用“iPhone Developer: Your Name ()”密钥对应用程序进行签名。)

0

虽然你的bundle标识符已经改变,这听起来有些奇怪,但我想到了一个你可以尝试的方法。

创建一个新的配置文件,其标识符与你提交第一个版本应用程序时使用的标识符相匹配。


我创建了一个新的AppStore分发配置文件,并将其绑定到与原始配置文件创建时相同的App ID上。但是,我遇到了相同的问题。当info.plist中的Bundle Identifer包括App ID前缀时,XCode无法识别配置文件。我不能使用相同的bundle identifer创建新的App ID,因为这是不允许的。我也不想使用不同的bundle identifier创建新的App ID,因为我认为这会使应用程序与先前发布的版本脱钩。 - Mike Murphy
因为某种奇怪的原因,您在iTunes Connect中的bundle-id包含了app-Id,这是不应该的。如果是这样的话,我建议您联系支持部门,因为您不需要手动输入bundle-id,而是选择一个已经存在的app-id。(也许在我第一次提交应用之前情况有所不同) - st-h
没错。在iTunesConnect中的Bundle ID是“AppID.com.myCompany.myApp”。我猜当我第一次提交我的应用程序时,是在iOS 3.1.3的时代,iTunesConnect允许我包含AppID。所以我的唯一选择是联系苹果并看看他们是否可以更改它(我怀疑),或者在info.plist中的Bundle Identifier字段中输入“AppID.com.myCompany.myApp”,并让xCode识别我有一个有效的移动配置文件? - Mike Murphy
Mike,你联系了苹果吗?目前有进展吗? - st-h
我还没有收到苹果的回复。我通过iTunesConnect联系我们页面提交了两个请求,但没有得到回应。我目前有一个iOS开发者支持请求,并正在等待回复。 - Mike Murphy

0

我遇到了同样的问题,通过上面codeySmurf的建议,我能够重复使用相同的ID并且解决了这个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接