iPhone分发错误

5

我是iPhone Distribution的新手。我创建了Apple ID U765UXW88D.com.edwincs.*,并在分发选项卡中创建了证书文件 MobileHealthGuide

我的Xcode版本为3.2.4。使用应用程序加载器上传应用程序时,出现以下错误:

应用程序未通过代码签名验证。签名无效或未使用苹果提交证书进行签名。

我的项目名称也是 MobileHealthGuide。我已尝试取消证书和证书文件,但仍然出现错误。

我该如何解决这个问题?


以下的解决方案有没有对你起作用? - Ajay Sharma
不好意思,我现在还无法解决这个问题。 - thinzar
尝试从钥匙串中删除所有证书和密钥,并使用此链接获取新的证书:http://mobiforge.com/developing/story/deploying-iphone-apps-real-devices。无论如何,这将解决您的问题。 - Ajay Sharma
7个回答

1
请确保在项目目标中添加了正确的代码签名。enter image description here

我在 Code Signing Identity 下看不到 Release 选项。我是在 debug 模式下进行的。我的 IDE 和你的不一样。 - thinzar
不使用Xcode吗?告诉我你用于iPhone开发的新IDE是什么 :) - Guru
https://dev59.com/bXE85IYBdhLWcg3wOw7r - Guru
@thinzar,有时候在钥匙串中旧的分发配置文件和新的预配配置文件可能会导致这个问题...我也在Xcode 3.2中遇到了同样的问题。最好的解决方案是更新您的Xcode到4及以上版本,或者删除您钥匙串中的旧分发证书并下载新的证书进行安装。 - Guru
前往钥匙串访问应用程序,在您的Mac系统下,在证书和密钥选项卡下找到您的苹果分发证书并将其删除。下载新的证书并通过双击安装。 - Guru
显示剩余3条评论

1

好的,以下是详细的分发步骤:

您需要在钥匙串访问中请求开发和分发证书,并将其上传到developer.apple.com(您是开发人员会员计划的一部分吗?)

创建一个应用程序ID(在配置文件中)

创建一个分发证书-确保此证书和第2步遵循您的Bundle ID

下载配置文件并将其拖到Xcode中

进入Xcode项目,在目标或项目构建设置中将您的代码签名选项设置为分发证书(必须与您的Bundle ID以及当然您的分发和开发证书相匹配)-可能会有一个推荐或自动配置文件,只需选择与您的身份和应用程序配置文件以及Bundle ID相匹配的配置文件

现在进入编辑方案->然后从调试更改为发布

然后进入项目,然后目标,然后构建设置,并键入“代码签名”,将选项更改为您的分发配置文件

设置为iOS设备(或根本不设置)

转到产品->构建为->构建档案

在侧面向下滚动(您的类选项卡等),找到应该命名为(AppName.app)的产品,并在Finder中显示它。

在iTunes Connect上创建一个应用程序

压缩 .app 文件并将其加载到应用程序加载器中

发送它!

提示:

  1. 确保您正在使用正确的 Bundle ID
  2. 尝试清理
  3. 确保您的证书没有过期

这里是一个扩展列表,列出了可能发生此问题的原因:


@thinzar 这样有帮忙到吗? - MCKapur
不,你和我不是同一个IDE。因此,我没有编辑方案和构建存档的功能。 - thinzar

1

我也遇到了同样的问题。它显示我的钥匙串中有一个重复的证书注册。删除其中一个(我删除了系统钥匙链中的一个)解决了这个问题。

以下是帮助我解决问题的步骤:

  1. 打开“钥匙串访问”应用程序
  2. 选择“登录”钥匙链,并在底部窗格中选择“证书”
  3. 切换到“系统”钥匙链,查看是否在两个链中都注册了证书。
  4. 删除其中一个
  5. 重新构建应用程序
  6. 您可能需要检查分发构建属性中选择了哪个代码签名配置文件。

好的,然后确保清除构建并从应用程序中删除“构建”文件夹。 如果这对您不起作用,则还有一个替代方法:

验证以下创建分发证书的步骤,并在您错过任何步骤时执行。

  1. 在钥匙串中生成证书签名请求。
  2. 使用该请求在门户网站上创建或撤销分发证书。然后下载并安装它,并验证名称下的密钥。
  3. 在预配门户中注册设备。
  4. 然后在门户中创建或修改分发配置文件。之后下载并安装它,并在组织者中验证它是否有效,因为没有警告。
  5. 确保在Xcode中选择适当的构建设置。

现在这肯定会解决你的问题。


同意,的确看起来你试图用一张未从你的证书配置门户网站中下载的证书来签署应用程序。你可能会受益于升级到Xcode 4.5,尽管有时会变得更糟,但大多数更新都是更好的。 对于我的大多数分发问题,我会参考这个FAQ http://help.testflightapp.com/customer/portal/topics/224359-developer-faqs/articles,它提供的文档比苹果提供的要好得多。 - RandomSort

0
失败的分发签名验证最常见的原因是应用程序使用开发者配置文件而不是分发配置文件进行签名,或者应用程序使用错误的构建配置进行构建。为了考虑这种潜在的原因,请根据以下建议检查您的设置:
The Release build configuration must be assigned to your Archive task. To ensure this, select the "Scheme" pop-up menu in the upper-left corner of the Xcode Toolbar, and choose "Edit Scheme". Select the "Archive" task and make sure the Build Configuration is "Release".

To check that your app is signed with the correct distribution profile, use the steps in section How do I check which certificate was used to sign my app? and ensure the Authority is "iPhone Distribution". If it is not, continue to next bulleted items to correct the responsible configuration.

Ensure that the appropriate distribution provisioning profile that you created for this application on the iOS Portal site is assigned to the Release build configuration. To ensure that use the steps in section Assigning Provisioning Profiles to Build Configurations.

Next, ensure that you are choosing the correct distribution provisioning profile when distributing your app on the Xcode Organizer > Archives tab. To do that, use the sections linked below depending on your distribution method and take special note you're selecting the correct profile on the "Identity" field (Xcode 4-4.2) or "Code Signing Identity" field (Xcode 4.3+) after clicking Submit/Share/Validate or Distribute on the Xcode Organizer > Archives tab.

https://developer.apple.com/legacy/library/technotes/tn2250/_index.html#//apple_ref/doc/uid/DTS40009933-CH1-TNTAG32


0

签名验证失败可能有许多不同的原因。请参阅苹果在TN2250中列出的常见原因列表。


0

升级你的xCode!你正在使用一个非常老的版本。

可能你已经尝试过了,但是去https://developer.apple.com/然后进入iOS provisional portal,那里有很多工具可以帮助你。

如果你没有使用inApp购买、推送通知、iCloud等功能,你可以跳过App ID,只设置一个通用证书,类似于U765UXW88D.*,这样你就不需要为新应用程序每次都进行此过程。

确保你创建了分发证书,并在xCode上签名以进行发布/分发。

在xCode本身上,确保你定义的bundle ID与iTunes connect上相同。

祝你好运。


0

我也遇到了类似的问题。在一个项目中,使用我的分发配置文件,它可以完美地构建到设备上。

但在另一个项目中,当使用相同的分发配置文件时,应用程序启动,加载闪屏界面,处理第一页,然后退出,而不会在Xcode或自己的日志中抛出错误。

当我将代码签名更改为通用开发配置文件时,该应用程序可以在所需的设备上正常启动。

我已重新下载证书、分发配置文件,并删除了旧的文件。

这怎么可能呢?如何解决这个问题?


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