临时分发失败
Posted
技术标签:
【中文标题】临时分发失败【英文标题】:Ad-hoc distribution fail 【发布时间】:2012-11-21 14:32:04 【问题描述】:我在一家大公司工作,我正在为 ios 5+ 开发一个 iOS 应用。分发应用程序的唯一方式是通过临时部署。
我拥有自己的服务器已经有一段时间了,由 o2switch(法国主机商)托管。在我开始开发时,我们使用它来部署应用程序以进行 beta 测试。它工作得很好。
随着应用程序进入最后阶段,该公司在 o2switch 购买了相同的(事实上,他们只有一个)计划(因为它在我的服务器上运行良好)。 “新”服务器工作正常,我们有 iOS 应用程序所需的文件,我们可以正确访问它们。
我的问题是,当我部署到公司的服务器时,安装不断崩溃!应用程序图标下方的栏是空的,几乎已满(很快),我收到一条错误消息,提示无法安装该应用程序。 (经典)
我有众所周知的崩溃日志:
unknown itunesstored[1657] <Notice>: MS:Notice: Installing: com.apple.itunesstored [itunesstored] (690.10)
unknown wifid[23] <Error>: WiFi:[375199765.346102]: Client itunesstored is background application
unknown securityd[1659] <Notice>: MS:Notice: Installing: (null) [securityd] (690.10)
unknown SpringBoard[62] <Warning>: could not save thumbnail for downloading icon: image=(null) path='/var/mobile/Library/SpringBoard/DownloadingIconImageCache/***********'
unknown sandboxd[1661] <Notice>: MS:Notice: Installing: (null) [sandboxd] (690.10)
unknown installd[1663] <Notice>: MS:Notice: Installing: (null) [installd] (690.10)
unknown SpringBoard[62] <Warning>: could not save thumbnail for downloading icon: image=(null) path='/var/mobile/Library/SpringBoard/DownloadingIconImageCache/***********'
unknown keybagd[1665] <Notice>: MS:Notice: Installing: (null) [keybagd] (690.10)
unknown securityd[1667] <Notice>: MS:Notice: Installing: (null) [securityd] (690.10)
unknown SpringBoard[62] <Warning>: Killing *********** for app installation
unknown installd[1663] <Error>: 2ffc1000 extract_package: Could not extract archive
unknown installd[1663] <Error>: 2ffc1000 stage_package: Could not extract /var/tmp/install_staging.I0rwBH/foo.zip to /var/tmp/install_staging.I0rwBH/foo_extracted
unknown com.apple.itunesstored[1657] <Notice>: MobileInstallationInstall: failed with -1
unknown installd[1663] <Error>: 2ffc1000 MobileInstallationInstall: Could not stage the package
unknown installd[1663] <Error>: 2ffc1000 handle_install: API failed
unknown installd[1663] <Error>: 2ffc1000 send_message: failed to send mach message of 71 bytes: 10000003
unknown installd[1663] <Error>: 2ffc1000 send_error: Could not send error response to client
我已经尝试了很多来消除此错误,但似乎没有任何效果。我已经阅读了关于这个问题的每一个答案,并尽我所能。我重新下载了配置文件,更新了内部版本号,检查了 ipa 的 url,还有很多其他的东西.. 没有任何效果。
我必须快速交付应用程序,所以我尝试了最后一件事:将它放在我的服务器上。它工作得很好。第一次尝试,没有问题(也许有一次,栏没有逐步加载而是保持灰色然后很快填充为蓝色,但这不是问题,我知道它下载了在线版本)。然后我重新尝试上传到新服务器,同样的问题。
顺便说一句,我测试过:iPhone4/iOS5、iPhone4S/iOS6、iPhone5/iOS6、iPad3/iOS6 和其他几个设备,超过 3G(3 个不同的提供商)和 Wifi,每次都遇到同样的问题强>。
所以,我的问题如下:
服务器是否/如何影响临时部署?
如果需要,我可以提供有关服务器配置的信息。请告诉我您需要什么信息。
O2switch 正在调查,但他们对 iOS ad-hoc 部署了解不多,所以他们真的不知道去哪里寻找、安装调用什么服务等等。
所以我(再次)向您求助,SO 的社区!有什么想法吗?
【问题讨论】:
我假设您正在使用空中分配?检查您是否授予了所有文件(plist 和 ipa)正确的权限(将它们与您的个人服务器中的进行比较) 感谢您的回答。我想我正在使用 OTA(不确定这到底适用于什么),我在 Xcode 中“构建和存档”,“为企业或临时分发保存”选择我的临时分发配置文件,然后“为企业保存分发”,给了我一个 plist 和一个 ipa。在两台服务器上,权限都设置为 644,所以我猜它不是来自这里。我暂时将它们设置为 777,我会尝试让您知道。再次感谢。 通过 OTA 我的意思是您使用以下格式的链接安装二进制文件:itms-services://?action=download-manifest*
是的,我就是这样做的。
试试能不能直接用http访问manifest:在手机Safari中输入http地址,看是否下载。对清单中提到的所有 http 地址执行相同操作(在我的例子中:.ipa 和两个图标)
【参考方案1】:
检查网络服务器中的 mime-type 配置。你需要:
application/xml
用于 .plist
文件,以及
application/octet-stream
用于 .ipa
文件。
【讨论】:
嗨!感谢您的回答,但它们都已经出现在 mime-type 配置中.. 我会接受你的回答,因为问题似乎已经消失了,在我手动添加了这些 mime 类型之后,即使 application/xml 和 application/octet -stream 已经出现在列表中.. 不知道这里发生了什么..【参考方案2】:您在将App.plist
文件移至新服务器之前是否对其进行了编辑?
资产 url 必须是绝对的,例如:<string>http://someurl.com/App-1.0.0.ipa</string>
。
【讨论】:
【参考方案3】:如果您完全确定服务器返回正确的 mime 类型,请检查:
lynx -mime_header http://www.serveraddress/App.plist | head -10
如果您确定您的 html 文件中的 .plist 文件的链接中没有空格或换行符。 如果您确定已将设备添加到配置文件 如果您已阅读:http://www.informit.com/articles/article.aspx?p=1829415&seqNum=16 我有所有文件:.plist、.html、.ipa 在同一个文件夹中
那么我不知道是什么问题,建议您从您的工作服务器分发它。
【讨论】:
是的,是的,是的,是的(不是真的有用,我已经知道如何分发 OTA..),是的.. 我无法通过我的服务器分发,如果其他人拿走了我的工作怎么办在 ?而且我不能给用户一个“非公司”地址来获取应用程序..以上是关于临时分发失败的主要内容,如果未能解决你的问题,请参考以下文章