iOS App distribution - Archiving an .ipa file - ios

I have an .ipa file which is signed with an Enterprise Certificate and using an inHouse distribution profile. I do not have the original source code with me. When I went through the distribution article in Dev center, I understood that it has to be archived for distribution purpose. I do not know how to archive an .ipa file. Could you please assist me in this? I'm new to this iOS development world.

I am going to assume everything was built and signed properly, with the proper provisioning profiles and distribution certificates.
You need the myApp.ipa and the myApp.plist generated by XCode, there may be others ways, but generating these via Xcode is the easiest. Once you have both of these files, upload them to your server (e.g. public_html/app/myApp.ipa and public_html/app/myApp.plist).
Your users navigate to your download page via Safari. On this page you include a link like the following:
Install the app
It is pointing to the myApp.plist. This must have (among other things) an item like the following (not sure about the exact format at the moment, but it is easy to spot if you open the .plist file in text editor):
<key>url</key>
<string>http://mydomain.com/app/myApp.ipa</string>
This URL is also usually added during the archive in XCode, but it can be easliy edited. It points to the .ipa (which really a zip file containg the executable and other resources like images).
When users tap "Install the app" in Safari, it will read the plist file, and if everything was successful up to this point, will prompt the user to install the application.

Related

There's been an error parsing your app's provisioning profile. Ensure you are uploading a validly signed IPA and try again

I have a problem while trying to upload my application to firebase. This is how this error looks like:
And actually I have no idea why it happens. Could it be because of development certificates? Or could it be because of packages versions?
I have done everything according to Firebase SDK instructions, but it still doesn't work. Also, the problem is, that I just can't find any info about this error in internet. So, what is the reason of this? And how can I fix that?
PS. By the way, about .ipa file. I create it in this way.
Copy Runner.app to desktop.
Create Payload folder.
Paste Runner.app in this folder, compress it, and change .zip to .ipa
Go to your Apple Developer Profile and make sure you have an active Apple Developer subscription (your $100 (or your local currency) fee is paid), and you have the correct certificates, and signing installed onto your device, and you have a correct bundle ID linked to each of said certificates, etc. If you made any corrections, create a new .ipa file, and retry the upload process.
There is an option in Xcode under Signing & Capabilities to have Xcode manage your provisioning profile.

Is that safe to share .xcarchive?

I`m somehow amateur in Xcode and this matter is so important for me.
My Friend use his developer id to publish my app and he ask me to give him .xcarchive instead *.ipa file
As I read in stackoverflow topics .xcarchive have the same content of ipa and there is no concern about lose and steal source code.
But when I check my xcarchive and use show content option I see most of project files like images and sources in application folder , also some of my code are in *.nib files
Is that normal ? and if I extract ipa if I get the same result ?
Is there any security or tips in Xcode that better to active before archive project ?
It is normal. In order to publish your app, your friend really needs the xcarchive, because they need to export an IPA file with the appropriate provisioning profile and signed with their code signing identity. Although it's possible to replace the provisioning profile in an IPA file and re-sign it again, it's a daunting task you don't want any of your friends to do. If you trust your friend with publishing your app, you should trust them and share the xcarchive.
When you compare the contents of xcarchive and IPA files, you can see xcarchive contains a dSYMs folder with dSYM files used to desymbolicate your crash logs -- the developer needs that to know in what file and at what line number the application crashed.

How to distribute an enterprise iOS app?

It's an in-house iOS app for a small company. The company has iOS developer enterprise program. I am hoping that it is possible to distribute the app using their corporate website which has an SSL certificate i.e. without using an MDM server.
I am able to export an .ipa file for Enterprise Deployment. Thanks.
You can do it through their server in a few easy steps.
You need to first create an html page which the users can navigate to. This page will hold a button or link which will open a manifest plist with instructions to install the ipa file.
HTML:
itms-services://?action=download-manifest&url="The url where the manifest.plist can be found"
This means that you not only need to generate a .ipa but also a .plist which will be the manifest. You can search how to generate manifest for iOS. One thing to keep in mind, the path to the .ipa referenced in the .plist will need to be its path on the server for example:
https://myserver.com/myapp/app.ipa
For this example we can assume that the myapp/ directory holds the .ipa, .plist and .html file for the app.
Assuming all provisioning profiles are set correctly, the user should then be able to download the app.

how to get .mobileprovision file and .app file

I am new to the iphone development.
And i am using Hackintosh and i do not have any user ID of apple.
Now my clients need two file( .mobileprovision file and .app file) for creating ad hoc distribution.
Now is it possible to create .mobileprovision file and .app file from my hackintosh?
Is it mandatory of real mac and apple User ID for creating these two file ?
Edit: These links are old and now point to an archive, but unfortunately the images aren't archived. The information is likely outdated and no longer relevant.
In order to provision an app you will have to be part of the iPhone developer program. Once you do that, these instructions (minus the part about building for corona) will help you. You can also build with Xcode 4. I don't know if any of this can be done with a Hackintosh.

creating ipa for distribution to client

I wanted to know what is the use to create an ipa and distribute it to client for testing when we can easily zip the built app and distribute the zipped .app file.
What is the benefit of creating the .ipa?
Is it that creating the ipa do not need the mobile provisioning profile?
Please clarify my doubt.
I would tell you an advantage from my experience. When you deliver a zipped .app file to a client, if he is using iTunes on Windows machine, he would be tempted to open it(as .app looks like a folder in Windows). That would actually render the app unusable. However IPA file can't be opened in any way. So it is safe to distribute IPA without considering whether it is going to be deployed on a Mac or a Windows PC.
Although middaparka's answer has been marked as correct, the link in his answer is now deprecated. The updated reference is App Distribution Guide
The ipa file is in fact the installable.
I'd recommend reading the iOS Development Guide (see the "Distributing Applications" section in particular), as this explains everything in detail.
The reason why I use the .ipa over .app is because you can have your clients install your adhoc build straight from the iDevice over mobile safari without having to go through iTunes.
This comes in VERY handy. However, it does take some research to do because it is a wee bit tedious. Basically you have to have a html page incorporating a link to a manifest.plist that has a link to the .ipa file.
http://jeffreysambells.com/posts/2010/06/22/ios-wireless-app-distribution/
Use the Build and Archive command in Build menu. Then you can save it to disk as an ipa archive.
You don't need to send the mobile provisionning profile with the .ipa so it's easier to install for your client. And it's easier to build it (Product->Archive in Xcode than share than give the .ipa name).
I don't understand why Apple gives the technic for the .app in the iOs provisionning portal.

Resources