iphone: how to build an IPA file from self-made app

I programmed a small app for iOS, and I used Mac OS X 10.6.6, Xcode 3.2.5 and iOS SDK 4.2, all running in a Virtual Box machine 4.0.

now I want the app to run on my iphone and to distribute it to some beta testers. because I'm not a registered apple developer and I don't want to pay $99 to apple, I need to find some other way.

the first thing I found on the net is the tutorial of alex whittemore:
alexwhittemore.com

I followed the instructions by creating a self sign root certificate,binary patching the Xcode program and adding some scripts to the build process. afterwards, I switched to from "debug" to "release" mode and from "simulator" to "device". the build-process ends with a warning-message:

Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)

but I still have a appname.app folder in the Release-iphoneos-folder, which I can transfer via ssh or scp in the /Applications/-folder of my jailbroken iphone. afterwards I call "uicache" on the iphone and the app is shown in springboard. I can also start the app and everything works fine.

now is the problem, that I want an IPA file of my app. as I read on the net, an IPA file is nothing more than the appname.app folder in a folder called "Payload", zipped together with two files called iTunesArtwork and iTunesMetadata.plist. I created the iTunesArtworks file out of an 512x512 jpeg image and the plist file from some preset I found on the net. afterwards, the appname.zip file has to be renamed to appname.ipa. I did this process manually and transfered the IPA file via scp to the download-folder of my installous-app on my iphone. then I started installous and tried to install my app - there comes the error message:

installation failed: invalid ipa

I did a search on the net for this error message and found something about updating my Appsync and Installous-installation. I updated both programs from the hackulo.us-repository, but this didn't help.

so I thought, that I did something wrong during the IPA-creation-process. I did some research and found out, that it is possible to drag and drop the appname.app-folder to itunes, which automatically makes an IPA file of it. then you can find the IPA file in some folder of iTunes. I copied this file to the download folder of installous on my iphone and tried to install this file again, but the same error message is shown.

my question:
how can I make a valid IPA file for installous, if I have a self-signed app? does installous check the signature?

maybe someone has a hint for me...

EDIT:

I found a solution for my problem.

because I wanted more information on the installous-error-message, I installed "syslog toggle" and "syslogd to /var/log/syslog" via cydia on my iphone to log detailed information to /var/log/syslog. then I tried to install the IPA file again and I got a message in the syslog from the installd daemon, that the IPA file has a minimum-iOS-version requirement of 4.2, while my iphone is running under iOS 4.0.

*installd[163]: 00503000 verify_bundle_metadata: The system version is lower than the minimum OS version*

interessingly there was no problem to install the app as system application by copying the appname.app-folder via ssh to /Applications/, but with the wrong minimum-iOS-version-parameter build in. so I rebuild my app with the right minimum-iOS-version for my iphone.

I tried to install again, but again I got an error message about an invalid IPA. this time the installd daemon tells me in the syslog of my iphone, that it couldn't install an system application:

*installd[193]: 00503000 preflight_application_install: Can't install System or Internal apps*

this problem was easy to solve, because I still had the app installed as system application in /Applications/. I just needed to delete the /Applications/appname.app folder and call "uicache" twice with the user "mobile" via ssh. then I startet installous again and tried to install my IPA file - et voila: IT WORKED!!

maybe I was able to help someone with a similar problem. it seems to be a good idea to install the syslog-apps via cydia to have a closer look for the error messages of installous, if some generic error message like "invalid ipa" appears.

ps: I was really irritated, that my question was closed by the moderator! just because someone thinks, that my question is "not generally applicable to the worldwide audience of the internet." it's soooo stupid to close questions! now you see: I got a solution and I posted it here.. maybe it will help someone in the future! you shouldn't make the same fault as wikipedia by over-controlling the user content.

Related Articles
  • My client asked me to get the review of the app on which I am working. So, I want to get the ipa file and mobile provision file from Xcode 4.2 to share my app to run in real device. I have a paid account of apple with me. Please tell me the procedure
  • I cannot build to make ipa file in xcode6(ios8). When I archiving the build the following error will come. I had done the search for the solution a lot. But i didn't get any solution for this problem.How can I build an ipa file using developer provis
  • The Developer I was working with quit halfway through the project and all I have is an .ipa file. The File installs correctly in all the test devices. I need some final changes to the app before I can publish it to the app store. My question is Is th
  • My question is the one indicated in the title, how can I serve a file from the internal storage directory using a content provider in Android application? Thanks for your time. I found a good solution at Android: Attaching files from internal cache t
  • I writing a cryptographic app that will generate a public private key pair for RSA. The private key needs to be saved on the device. In testing with a normal java application, the keys were generated and then saved to file with the following: public
  • I dont have a paid account at apple site. Therefore my client sent me development certificate after creating provisioning profile there. Now he asked me to load this certificate in xcode and generate an executable or ipa file to test the application
  • I'm new to git so this may be a silly question: How do I checkout just one file from a git repo? As mentioned in the other answers: you can use git archive (see Jared Forsyth's answer and Robert Knight's answer), since git1.7.9.5 (March 2012): git ar
  • I have added a file named "file1.txt" to git repo. After that I committed it, added a couple directories called dir1 and dir2, and committed them to git repo. Now the current repo has "file1.txt", dir1 and dir2. How can I delete "
  • I've wasted a day trying to export IPA file using development profiles. I'm a developer since 18 months now. And its not something that i don't know about exporting IPA. And i really hate Apple developers for changing the way we used to export a simp
You Might Also Like