IPA is technically a small install package of iOS platform.
You can create it in XCode by creating an archive (Product/Archive menu point) and if the build is ready pressing the Distribution button on the right side of the appearing Organizer window. In the new appearing window just select Save for Enterprise or Ad-Hoc Deployment, sign with the proper Code Signing Identity and save to a folder.
You can send it to anybody who can install the app (of course the device should be in the profile).
Usually this just works, but sometimes it doesn’t because the Save for Enterprise... options is simply missing. This can happen if you use referenced libraries in your project.
To enable that option you have to take care of some settings.
First, set all related projects Skip Install build option to Yes.
Second, you have to turn all Public headers to Project header.
The reason is that the build will create an app and also puts the other projects and public headers beside the project. So there will be an app with a lot of other files which is doesn’t seem a proper iOS app so XCode won’t let you create an install form it.
I don’t understand however why the build copies the public headers of a sub-project to the build folder of the app if the files doesn’t appear in the Copy headers section in the Build phases, but this just happen.