4

当我尝试上传我的应用程序时,我在应用程序上传器中收到此错误“应用程序代码验证失败。签名无效,包含不允许的权利,或者它没有使用 iPhone 分发证书签名。”。

如果我打开 MonoDevelop,属性并选择“iPhone 捆绑签名”,然后我会看到一个“Provisioning profile”,但如果我单击另一个主题(例如崩溃报告)并返回“Provisioning profile”,那么它会突然显示“Unknown”和一个向导。

我如何告诉 MonoDevelop 使用正确的配置文件?

我删除了一些旧的配置文件(在 Organizer 中),但它们仍然显示在 MonoDevelop 中。

4

4 回答 4

7

不幸的是,由 Apple 签名系统创建的“供应地狱”在 MonoDevelop 中变得更糟。

没有配置管理器,无法设置和关联所有配置文件和特定单点触控应用程序的密钥。MonoDevelop 缺少自动创建或指导用户创建、下载或备份正确配置文件、密钥和 appID 的向导。

了解配置文件或密钥是否错误、过期、与 appId 不兼容或被拒绝的最佳方法是在 XCode Organizer 中手动检查所有这些(您可以在 XCode“Window”菜单中找到它)。

进入 Organizer 后,您需要点击左侧的 LIBRARY -> Provisioning Profiles 部分,然后点击 Refresh 按钮将您的配置文件与苹果服务器同步(如果您有这些配置文件或您在另一台开发计算机上)并且您必须只安装选定的配置文件,单击“导入”按钮并手动选择文件)。

然后您需要附加您的 ios 设备,当它出现在 DEVICE->your_iPhone_or_Ipad 名称中时。您需要将所需的配置文件从 LIBRARY->Provisioning Profile 拖放到 DEVICE->your_iPhone_or_Ipad_name->Provisioning Profiles ...

无论如何,很多事情都可能出错,尤其是将旧配置文件与支持 iCloud 或其他一些高级应用程序功能的新配置文件混合使用。无法知道捆绑包 ID 是否有效,是否允许授权,是否启用了配置文件或 appID 以使用 iCloud、通知、IAP 等,或者它是否已注册用于 Developer、AdHoc 或 Distribution ,以及它兼容的产品 ID 字符串。你需要经历试验和错误。即使是为受信任的远程测试人员启用的应用程序的临时版本的简单创建也是一条漫长而危险的道路。MonoDevelop 中没有用户和测试人员配置文件管理器,您需要记住每次与谁相关的内容。

如果您在不同的开发人员机器上,您还需要在本地 KeyChain 中安装注册的开发人员密钥(我建议在某处备份这些密钥:如果您丢失了这些密钥,您将无法在未来!!)。

让我们希望 Xamarin 尽快添加配置文件和密钥管理器。

于 2012-08-14T08:58:59.793 回答
5

@Emanuale 提到了很多,但他在很多这些方面都走了很长的路。

有一种更简单的方法可以处理所有事情。以下是干脆利落的做法:

  • 登录到Web 上的供应门户
  • 为您的公司创建一个 App ID 作为“com.yourcompanyname.*”
  • 为这个应用 ID 创建一个供应配置文件,用于开发和分发
  • (我还建议删除您不需要的任何配置文件)
  • 打开 XCode->My Organizer,然后按右下角的刷新按钮(您将看到您在线上的所有个人资料)
  • 从 MonoDevelop 将您的应用程序部署到设备(确保您的捆绑包 ID 是 com.yourcompanyname.yourappname)

这是解决此问题的最简单方法。无需弄乱 MonoDevelop 中的配置文件设置,默认值应该可以工作。

唯一的问题是您是否需要支持推送通知。com.yourcompanyname.* 配置文件不起作用,在这种情况下,您必须针对每个应用程序创建一个配置文件。

于 2012-08-14T17:14:21.077 回答
1

乔纳森胡椒的好答案!只是一个 2c,现在XCode->My OganizerPreferences->Accounts

于 2014-12-05T00:32:29.907 回答
0

如果接受的响应没有帮助,您还应该确保您的签名身份与您正在使用的配置文件匹配,并且它具有私钥。如果您安装了多个签名证书,则可以打开这些证书,并且您将无法分辨出与 Xamarin Studio 的区别。看

https://stackoverflow.com/a/37856762/660194

于 2016-06-16T10:40:48.700 回答