我几天来一直在与这个问题作斗争,并且即将击败我的脑袋,让自己脱离了我的代码签名/应用程序提交的痛苦。
我有一个已经提交到应用程序商店的应用程序并且没有接受任何问题(版本1.0.0)。我能够通过Application Loader使用XCode 3.2.4和iOS 4.1发布第一次更新(版本1.0.1),并进行一些试验。现在我在XCode 3.2.5和iOS 4.2上,并尝试通过XCode Organizer发布更新(版本1.0.2)。
当我将info.plist中的Bundle Identifier设置为“com.myCompany.myApp”时,我可以成功构建针对AppStore Distribution配置的应用程序。但是当我尝试通过Organizer验证/提交构建时,我得到并且错误声明“Bundle Identifier:com.myCompany.myApp与先前的bundle标识符ABC123XYZ1.com.myCompany.myApp不同”。显然,当我第一次通过iTunes连接提交我的应用程序时,我使用了完整的( AppId )。 BundleIdentifer 语法。我通过查看iTunes连接中的Bundle ID验证了这一点。
所以,从逻辑上讲,我在AppId前缀中添加了Info.plist文件中的包标识符。当我这样做并尝试再次构建时,我收到“代码签名错误:无法找到与应用程序的标识符匹配的有效配置文件...”。并且构建失败。
我已经尝试了所有关于这两个错误的互联网上的所有内容,但没有解决问题。我陷入困境22。我无法在捆绑标识符中使用AppID前缀构建应用程序,如果没有它,我无法将其提交给iTunesConnect。此外,尝试使用Application Loader上传应用程序时会发生iTunesConnect错误。
我准备将我的第一个孩子提供给任何可以帮助我摆脱此代码签名/应用提交地狱的人!
答案 0 :(得分:12)
所以在等待了2个月的iTunes团队的答案后,我已经想出了解决这个问题的方法,并让我的应用程序上传。关键是使包标识符与在iTunesConnect中注册的包ID匹配。在这种情况下,iTunesConnect中的软件包ID为1234567890.com.companyname.appname。在我第一次创建应用程序的时候,我已经包含了捆绑种子ID,当我在iTunesConnect中创建应用程序时,该种子ID不应包括在我的研究中。
要解决此问题,我在配置门户中以1234567890.1234567890.com.companyname.appname的形式创建了一个新的App ID,然后基于此新AppID创建了新的分发移动设备。我在xCode Organizer中下载并安装了移动设备。在我的xCode项目的info.plist中,我将包标识符设置为1234567890.com.companyname.appname。这允许xCode将移动配置与info.plist中的指定包标识符进行匹配,并使用与iTunesConnect中的包ID匹配的包标识符成功构建和签署我的应用程序。在组织者中,我能够成功验证并上传应用程序。
答案 1 :(得分:1)
就我而言,我必须先用Cmd-B构建应用程序。
这会弹出一个钥匙串窗口访问,要求我“允许”(或“始终允许”)Xcode访问钥匙串。
只有这样我才能真正运行程序在我的iPhone上启动它。
显然,只击中跑步并没有成功。
(顺便说一下,记得先用“iPhone开发者:你的名字()”键签名你的应用程序。
答案 2 :(得分:0)
即使你的包标识符发生了变化也很奇怪,有一件事我想起你可以试试。
创建新的配置文件,其标识符与您用于提交应用的第一个版本的标识符匹配。
答案 3 :(得分:0)
我遇到了同样的问题,并且根据上面的codeySmurf的建议,我能够重用相同的ID并删除了该错误。