5

我正在尝试通过 itms-services 协议为没有 CYDIA 的越狱设备分发未签名的 .ipa。我浏览了有关如何为 cydia 创建未签名应用程序的指南:http ://www.alexwhittemore.com/developing-jailbroken-iphone-ios-401/ ,除了“共享”选项外,我设法使它工作。组织者。它说:错误:代码设计检查失败......但也许这不是这里的问题。

获取我的应用程序的 .app 文件夹并将其压缩为 .ipa 扩展名,没有签名工作,但是当我将我的应用程序上传到我的服务器并尝试通过 itms-services 协议下载它时,设备上的进度条几乎是结束,下载失败......

有人有这方面的经验吗?

4

2 回答 2

3

很抱歉重新唤醒一个古老的线程,但以防万一将来有人有这个问题:

itms-services 协议向两台服务器发出请求:oscp.apple.com和另一台服务器(您可以在 Apple 的网站上找到更多信息)。服务器检查 Apple 是否为签名证书生成了公钥,以及它们是否已被撤销。

通常,没有办法绕过这一点,但 iPhone 检查的是“坏”响应。如果它检测到一个,它会拒绝该应用程序。但是,如果它根本没有收到响应,那么它不会拒绝该应用程序。

因此,您在这里要做的可能是创建一个自定义 DNS 服务器,它将两台 Apple 服务器列为另外两台服务器。然后,创建一个移动配置文件,将 iPhone 的默认 DNS 服务器更改为您的服务器。然后应用程序应正确安装。

于 2012-09-16T01:08:48.183 回答
1

我的问题与您完全相同:我正在寻找一种无需通过 Cydia 即可为越狱的 iPhone 分发 iOS 应用程序的方法。

当我确实提供有效的配置文件时,itms-services 有效。没有配置文件,它不起作用。

但是给你一个注意事项 Alexei:未签名的应用程序无法在 iPhone 上运行,即使它是越狱的。您至少需要一个自签名应用程序。越狱消除了对 Apple 批准的开发人员签名的需要,它根本没有消除对签名的需要。您可以在越狱设备上使用“ldid -S”对代码进行自签名。在http://dl.dropbox.com/u/3157793/ldid上还有一个 Mac OS X 的 ldid 版本

请根据您的进度继续更新此线程 - 我也会这样做。

[编辑]

可以生成自签名证书并从 Xcode 使用它。然后可以使用安装该应用程序scp -r命令安装应用程序。

然后我手动创建了一个 IPA 文件,并通过带有 itms-services URL 的 Web 服务器提供它。安装失败,出现“此时无法安装”App

查看控制台时,它说:

Mar 14 17:31:32 unknown installd[4276] <Error>: developer cert trust result = 5 Mar 14 17:31:32 unknown installd[4276] <Error>: 00485000 verify_signer_identity: Could not copy validate signature: -402620392 Mar 14 17:31:32 unknown installd[4276] <Error>: 00485000 preflight_application_install: Could not verify executable at /var/tmp/install_staging.AnmaAp/foo_extracted/Payload/App.app Mar 14 17:31:32 unknown com.apple.itunesstored[4272] <Notice>: MobileInstallationInstall: failed with -1 Mar 14 17:31:32 unknown installd[4276] <Error>: 00485000 install_application: Could not prefligh

原因是/usr/libexec/installd程序在安装应用程序时正在检查有效签名。这可以使用http://hackulo.us/wiki/AppSynchttp://jamesisbored.com/iphone/bootleg等工具进行修补和禁用)但我不会这样做有两个原因:

  • 首先,它为 iPhone 上的任何安装打开了大门
  • 其次,因为您的用户在每次 iOS 更新后都必须再次这样做(并且不能保证将来版本的补丁的可用性)

所以,这给我留下了两个选择:A/放弃这个想法 B/开发我自己的 MISValidateSignatureAndCopyInfo 绕过代码,并在安装我的应用程序所需的时间内临时使用它。

于 2012-03-14T08:45:59.610 回答