我为iOS编写了一个小应用程序,我使用的是Mac OS X 10.6.6,Xcode 3.2.5和iOS SDK 4.2,它们都运行在Virtual Box机器4.0中。
现在我希望该应用程序在我的iphone上运行并将其分发给一些beta测试人员。因为我不是注册的苹果开发者,而且我不想向苹果支付99美元,我还需要找到其他方法。
我在网上找到的第一件事就是alex whittemore的教程: alexwhittemore.com
我按照说明创建了自签名根证书,二进制修补Xcode程序并在构建过程中添加了一些脚本。之后,我切换到“调试”到“释放”模式,从“模拟器”切换到“设备”。构建过程以警告消息结束:
应用程序验证码验证失败。签名无效,或者未使用Apple提交的证书签名。 (-19011)
但我仍然在Release-iphoneos文件夹中有一个appname.app文件夹,我可以通过ssh或scp在我的越狱iphone的/ Applications / -folder中传输。之后我在iphone上调用“uicache”,应用程序显示在跳板中。我也可以启动应用程序,一切正常。
现在是问题,我想要一个我的应用程序的IPA文件。正如我在网上看到的,IPA文件只不过是名为“Payload”的文件夹中的appname.app文件夹,与两个名为iTunesArtwork和iTunesMetadata.plist的文件一起压缩。我用512x512 jpeg图像创建了iTunesArtworks文件,并在网上找到了一些预设的plist文件。之后,必须将appname.zip文件重命名为appname.ipa。我手动完成了这个过程,并通过scp将IPA文件传输到我的iphone上的installous-app的download-folder。然后我开始安装并尝试安装我的应用程序 - 出现错误消息:
安装失败:ipa无效
我在网上搜索了此错误消息,并发现了有关更新我的Appsync和Installous-installation的信息。我从hackulo.us-repository更新了这两个程序,但这没有帮助。
所以我想,在IPA创建过程中我做错了什么。我做了一些研究,发现可以将appname.app-folder拖放到itunes,后者会自动生成一个IPA文件。然后你可以在iTunes的某个文件夹中找到IPA文件。我将此文件复制到我的iphone上的installous下载文件夹,并尝试再次安装此文件,但显示相同的错误消息。
我的问题: 如果我有自签名应用程序,如何为installous创建有效的IPA文件?安装检查签名吗?
也许有人暗示我......
编辑:
我找到了解决问题的方法。
因为我想了解有关installous-error-message的更多信息,我在iphone上通过cydia安装了“syslog toggle”和“syslogd to / var / log / syslog”,以便将详细信息记录到/ var / log / syslog。然后我尝试再次安装IPA文件,我在installd守护进程的syslog中收到一条消息,IPA文件的最低iOS版本要求为4.2,而我的iphone在iOS 4.0下运行。
* installd [163]:00503000 verify_bundle_metadata:系统版本低于最低操作系统版本*
通过将appname.app-folder通过ssh复制到/ Applications /来安装应用程序作为系统应用程序是没有问题的,但是使用了错误的最小iOS版本参数构建。所以我重建我的应用程序适用于我iphone的最低iOS版本。
我尝试再次安装,但我再次收到有关无效IPA的错误消息。这次installd守护进程告诉我在我的iphone的syslog中,它无法安装系统应用程序:
* installd [193]:00503000 preflight_application_install:无法安装系统或内部应用程序*
这个问题很容易解决,因为我仍然将应用程序作为系统应用程序安装在/ Applications /中。我只需要删除/Applications/appname.app文件夹并通过ssh用户“mobile”两次调用“uicache”。然后我再次尝试安装并试图安装我的IPA文件 - 瞧瞧:IT WORKED !!
也许我能帮助有类似问题的人。如果出现诸如“invalid ipa”之类的一般性错误消息,那么通过cydia安装syslog-apps似乎是一个好主意,以便仔细查看installous的错误消息。
ps:我真的很恼火,我的问题被主持人关闭了!仅仅因为有人认为,我的问题“通常不适用于全球互联网用户”。关闭问题太愚蠢了!现在你看到了:我得到了一个解决方案,我在这里发布了..也许它将来会有所帮助!你不应该通过过度控制用户内容而与维基百科犯同样的错误。