【发布时间】:2011-10-20 02:52:35
【问题描述】:
好的,过去几个月我一直在使用 MonoTouch 和 MonoDevelop 开发 iPhone 应用程序。在这段时间里,我已经能够将应用程序部署到我的手机以进行调试/测试,并且还能够编译 Adhoc 版本供我的雇主试用。这一切都很好......直到本周。
我发送的最新版本无法进入 iTunes 并失败并出现以下错误:
The app "Payload.ipa" could not be added to your iTunes library because it is not a valid app.
所以基本上你的通用“出了点问题,但我不会告诉你到底是什么”类型的错误。
我最初的调查似乎表明问题可能出在包含特殊字符的应用名称上,但由于我很长时间没有更改应用名称,所以这不是问题。我确实向 info.plist 添加了一个捆绑版本,但删除它并不能解决问题。
然后我查看了输出文件夹中的文件,发现现在包含 Settings.bundle(我添加了一个名为 Config.plist 的文件来存储应用程序使用的一些设置)。在 MonoDevelop 中,我按照我所遵循的指南的建议更改了选项,使其成为“内容”和“始终复制”。当在模拟器中或通过 MonoDevelop 在我的手机上运行应用程序时,这非常有效。但是当我将应用程序打包为 .ipa 文件时,iTunes 说该应用程序无效。如果我删除 Settings.bundle iTunes 会接受它。
我已阅读到设置“内容”时不需要“始终复制”选项,但即使选项设置为“不复制”,Settings.bundle 文件仍会出现在输出 (bin) 文件夹中。
我还认为也许我必须将名称更改为 Root.plist,因为这就是示例使用的内容,并且可能预期会是这样。但再次更改名称并没有什么不同。
所以我只是想知道是否有其他人遇到过这个问题以及您如何解决它?
【问题讨论】:
-
您是否尝试过使用TestFlightApp.com?我建议使用它在 iTunes 上进行 beta 测试。如果您的 AdHoc 构建在从 MonoDevelop 部署时可以在手机上运行,那么它应该在 iTunes 中以相同的方式运行。
-
我还没有尝试过TestFlight,但现在看看它。我不确定这将如何解决问题,因为之前只需将 .ipa 文件通过电子邮件发送给需要它的人并让他们通过 iTunes 同步就可以了。不过话虽如此,还是值得一试。
-
您是否在您的 iOS 配置门户中设置了这些手机?一个简单的方法是将每部手机插入您的 Mac,然后单击 XCode 管理器中的“用于开发”。另一种方法是让他们在手机上输入一个号码,但我相信 TestFlight 会为您自动完成该过程。
-
是的,所有这些都已经设置好并且一直在工作。我还以为配置文件可能已过期,但它仍然有效并且从内存中通常会给我一个不同的错误。我已经尝试了 TestFlight,它看起来绝对是测试部署的方式。如上所述(和下文) Settings.bundle 是导致问题的原因。从 Payload 文件夹中删除该文件使应用程序正常工作。
标签: iphone xamarin.ios itunes monodevelop