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.
Related
I finished working on one iPhone app, and my client wants to port it over to iPad.
Now I created another storyboard for the iPad UI in the same project, and have the iPad UI working and sharing some code with the iPhone code.
The project has one target, with devices supported as universal.
My question is: My client expects that I present him with two apps, one for iPhone and one for iPad, will this configuration work?
When I submit this to the app store, will it know to split it into two apps, or should I just create a separate project for iPad all together?
Thanks.
With your current configuration it will upload to the app store as one app, but for users logging in it will display the correct app depending on the device they use on the app store when they search for it.
So depending on if your clients wants two separate APK files or if they want two apps on the apps store:
If the client is requesting two separate apps you will have to split the project, unless there is an easier way that I am not aware of.
You can also explain to the client that with the current configuration the app will have a little plus icon on the app store to indicate that it is a universal app and will work on both devices, which will be determined by the device they use to download and open the app.
If they want to sell the app, again as far as my current knowledge allows, you will need two separate apps as you can not set different prices for it in the current configuration, this statement is under correction. Unless your client wants to sell both iPad and iPhone apps for the same price then you wont have an issue.
Hope this helps
No, it will not, because it's the same bundle ID, so in this case, in the App Store you'll have one universal application.
If you want to have two applications, you should create a new Xcode project that supports iPad only.
What you can do is to create different target, one for iphone and the other is for ipad. You can follow the answer on this question, it is quite good. Because you have 2 different target, you can have different bundle identifiers, specify different AppDelegate, but all the other code could be shared
I have an iPhone app that I'm distributing to testers. I followed these instructions:
https://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/YourFirstAppStoreSubmission/TestYourApponManyDevicesandiOSVersions/TestYourApponManyDevicesandiOSVersions.html
And they work except for one of my testers, who does not use iTunes to synchronize his apps. He has many apps already on his phone and doesn't want to synch to iTunes because it sounds like it will delete them. So...Is there any other way to get a testing app onto an iPhone besides synchronizing with iTunes?
Simply distribute it using OTA ("Over The Air" distribution).
When you Archive your application using Xcode (menu Product -> Archive, I hope that's what you do already to keep debugging symbols so that you can symbolicate crash logs when testers send some back to you!), once you click on "Distribute", select the "OTA Distribution" option and follow the steps.
Don't forget to check the "Distribute for Enterprise" checkbox in the appropriate step and fill the requested informations (Product Name, URL of the IPA when you will upload it on your server, etc).
Once your .ipa and the associated .plist is created, upload them both on a web server, and make a link to "itms-services://?action=download-manifest&url=<the_url_to_your_plist_file_here>".
When the users will open this link from their iPhone, it will prompt to install the application on their device directly, without the need to plug their device to any computer.
There are many tutorials on the net about this, simply google about iPhone OTA distribution.
I strongly recommend TestFlight. It's free and it's easy and they manage all that server side work.
Since your user is afraid of the iTunes Sync Process (for good reason), why not recommending him to use the iPhone Configuration Ultility.
That tool does not do a complete sync but only transmits the app you specified to.
It is free, easy to use and very reliable. Well, sometimes it has its hickups on Windoze systems but that seems to be a normal experience for users of that OS.
I know that app binaries are encrypted and signed during the build process when packaging up for the app store, but I'm wondering how safe the data in the bundle is? For example, have there been cases of people being able to read strings (or worse encryption keys..) out of iPhone apps?
I'm looking into making a game with a prize - and it's going to be a bit pointless if the winner was able to crack the game and win the prize without even playing the game.
Any advice would be helpful, thanks.
You should consider any app insecure, an App Store distributed app is total insecure as Apple protects iOS data, but jailbreak is a common and easy task, so anyone can search inside your app.
I suggest you to don't store any valuable data on an iOS app.
iPhone apps have been successfully reverse engineered, so yes, there are examples which show that the encryption of app bundles (and hence their content) is not bulletproof.
See this link for one such example.
Images, text files and sound data are stored in a completely "unsafe" manner inside an iOS app bundle (unless you include your own encryption).
All one needs to do is to unzip the .ipa file.
We are currently developing an app for a client in the US, we are based in the UK. We need to "proof" the app as we make changes with our client i.e. get them to check the updates before we go any further.
The issue we're having is that transferring an IPA file to our client has been advised by their legal team as illegal. Is there any other way (simply) to allow our client to view this app regularly as we update it?
Cheers
IANAL, however, their legal team is wrong. When I click Build and Archive, and then Share by Email, the generated email file contains an ipa. This is an Apple-sanctioned method of doing ad-hoc sharing of iPhone apps.
What is probably confusing them is that if you're pirating apps, you use ipa files as well. However, saying that sharing ipa files is illegal is like saying sharing .exe files is illegal. Sometimes, yes. In this case: no, so long as the devices that are running it have been properly provisioned.
I've developed a generic iPhone app, intended for customization via a myapp.cfg file. I've successfully deployed the app to my adhoc testers via iTunes. My question is, how do I update their myapp.cfg file via iTunes. In other words, if they edit the .cfg file on their Windows PC or Macbook, how do they get it into the apps bundle in the iPhone?
You'll need to provide your own mechanism to download the config file into the application's Documents area; as app bundles are effectively sealed by the code signing process there's no way to modify the bundle post facto. As you have no interface to iTunes you need to provide your own mechanism - you might choose to do something like OmniFocus which uses Bonjour to discover the computer from which it retrieves its sync settings.
Looking at it another way; why use a config file at all? Other iPhone applications use a settings bundle and the standard application preferences as recommended by Apple, why do something different? There's always a chance that you'll confuse the user.