I have an in-house iPhone app. Developed about a year and a half ago. Up until now, I'd ship it to users as an ZIP-archived app bundle, instructing them to unzip, add to iTunes library and sync.
Now, there's this fancy new IPA file format that simplifies this process considerably. Question - what are the prerequisites for its support? Does it require a specific version of iOS or iTunes? If yes, which version?
Preempting the questions - yes, we do support over-the-air installation. iTunes-based installation has to stay for the sake of remaining iOS 3.x users.
It shouldn't, as:
An IPA file is merely a ZIP file with a different extension
iTunes has been using IPA files for apps since the App Store first launched
Related
I am new IOS development, i want to distribute my iPad app (.ipa format file) over my website. So, others can download my iPad app (.ipa format file) from my website. So, Is it possible to download the iPad app (.ipa format file) over website by others?
You need to check the Box "Distribute to Enterprise" when you Archive your Application. When you do so, a plist File is generated. (Be Careful with the Informations you Provide, the URL has to be right). Place the ipa and plist to your server.
Then you can Link to the plist from an HTML File:
itms-services://?action=download-manifest&url=http://YOURSERVER/YOURAPP.plist
Thats how you do OTA (Over-The-Air Distribution)
This is only possible with an Enterprise Profile or an AdHoc Profile for dedicated Devices, thus for Testing Purposes.
You can also use TestFlight
You can use the http://www.diawi.com/ for uploading .ipa.
But make sure that only register device user can run the file on their devices.
Entrprise could be the solution, but Apple says that the ipa must be distributed only to company employees.
Is there any possible way to bundle multiple IPA's or individual iOS XCode projects so that the end result is a single iOS IPA, installable on an iPhone/iPad? I have a daemon app that is entirely separate from the main app that I would like to bundle if possible.
Here is information on doing this for MacOSX apps. Does anyone know anything about iOS apps?
Edits in response to questions:
It is a VOIP app, I guess not a true daemon
It is not intended for distribution on the app store
You can't have daemon apps on iPhone, only apps that allow certain things in multitasking (VOIP, location service, playing music, finishing data transfer)
Generally speaking DougW is right.
You cannot combine multiple application in one IPA. However, it's not because you can't put them in one IPA, but rather because iTunes and iOS will recognize only one application in such IPA.
IPA is just a zip archive with Payload directory which contains an app. You can manually create IPA with multiple apps in Payload directory, but iTunes will "see" only first (I believe alphabetically) in this IPA.
you cannot do this for iphone. Applications have one single executable and run in sandbox without privilege to run daemon or other services.
maybe you can do this in jailbroken devices, but i don't know.
To elaborate on what Nick said, no you cannot combine IPAs.
To achieve background execution for VOIP, location, etc, you do not create and bundle daemons or multiple applications. Instead you have to use the techniques described here, and are limited in what you can do.
My iPhone application has a fair amount of data that it needs to run, which I would like to store in the bundle as archives, and unpickle the data when the application starts up. Can I create these archives (which include instances of custom classes) on a Mac OS X system, and read them from the iPhone app?
If your question is: can you create archive files on the Mac, then ship them in your app's bundle, and have code on the iPhone access those bundled files, the answer is: sure, why not?
If your question is: can you have these archives live on the Mac, and have your iPhone app go find and download them when it first runs, the answer is: maybe, but it's much harder. And doesn't work too well for users whose devices aren't online when they try to run the app.
I found this previous question about Cocoa projects, but I wanted to know if it's the same for iPhone projects.
As far as I know, the same responses there apply to iPhone development as well. In my projects, the only files I keep under SVN's control are the source files, any resources (images, .XIBs, audio, etc.), and the .xcodeproj file.
It may be a good idea to version control provisioning profiles. Especially for an ad-hoc beta test profile, you'll need to update it every time you add a new beta tester, and having a history of that seems like a good idea.
Actually there is something I would say you should version control that you would normally not - the final application bundle and dsym file, both under build. However, you only need to archive these when you release either an ad-hoc or distribution build for the store - so I'd leave build in the ignore file, but have somewhere you can copy these files to check them in for a distribution and tag them along with the source.
You'll probably want to compress the app bundle before placing it in this save directory
You need these two files in order to be able to symbolicate crash logs sent to you by either beta testers, or users of the app from the app store. A meaningful stack trace of a crash is priceless!
If you're planning on updating the app over time in addition to project sources and media you may also want to put the following under version control:
Signing certificates for app (and/or mobileprovision files).
The final version of the binary app (zipped) submitted to Appstore.
Binary.dSYM file for each revision (for post-release crash symbolicating).
Screenshots/icons/text file of description for app as submitted to Appstore.
Before beta releases you may also want to put mobileprovision files as well as a snapshot of the device list from the Developer portal for that version just so you can go back in time and figure out who got what release. If you're really hardcore you can also keep emails submitted by beta testers so you can keep it all in one place and go back and double-check against bug reports.
Yes. I use the exact same .gitignore file for iPhone OS projects as I do for Mac OS projects.
I'm writing an iPhone app in simulator/debug mode at the moment. I'd like to know, after I build it, where does the binary go? I want to send this file to my friend to show him what I'm doing so far.
Also, how do I package apps into .dmg files? That seems to be the better format to send app to other people?
Have you joined the iPhone Developer Program?
If so you will need your friend's device ID to generate a provisioning profile.
I recommend that you read Publishing Applications for Testing for more details.
Your binary files will be on {Project Folder}/build/, there you will have one directory for each of the possible options: Release/Debug and iphoneos/iphoneSimulator.
To create the DMG read Creating a .DMG.
by default, the built results are located in {Project Folder}/build/Debug (or Release if you build in that config). You can use the hdiutil command-line tool to generate a DMG of your app - have a look at its man page which is quite comprehensive.