Detailed Explaination of IPA file and embedded.provisionprofile - ios

Its very confusing and found lots of question answers on stack-overflow. But still there is not 100% perfect solution for developer. So I want to ask question about .ipa file and embedded.provisionprofile for detailed answer of provisioning profile + Certificates + Signing Identities.
(1) How to find out .ipa file is for development or distribution??
I have extracted ipa file and found embedded.provisionprofile with UDIDs and lots more detail. But There seems very minor difference between Development and Distribution app.
(2) How many types of Certificates/Profile available?
Here I am very confuse with ad hoc method. There are 3 options when I archive project and click on distribute button Bellow is image
1st option I know. It tells to upload app to app store simple enough. Second options is confusing, there are again two type (Please correct me if I am wrong) of development, like send it to your client/friend to test on his/her device and add to TestFlight(I am not aware of this) So what is difference here??. Also third one is simple says make archive file of xcode project but what is use of that archive file??
(3) How to make easyier to understand provision profile and certificates and signing identities and keychain access exporint and all that its very confusing and sometimes it gives misleading error. Like this question.

first option is for uploading your app to AppStore
Second option:if you want to test your app in device so you have to go with this option, using this option you can generate IPA file. and this IPA will run only those device which devices UDID assigned to this IPA provisioning Profile
And i don't know about 3rd one.

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.

xcode 6 ota distribution fails

I had a small app I wanted a friend to test, he's far away, so back then, I used ota distribution, I followed a step by step explanation and it went good.
I upgraded my app to ios8 among other updates in it, and I want to do the same : put it in my website, I searched for information about this, but all I got was outdated tutorials / informations.
I suppose I did allmost everything correctly :
created an app id
had the udid of my friend and some others on apple's website.
made a distribution (or provisionning or whatever they're called) certificate using this app id and my list of udid.
downloaded it and put it in my keychain.
told xcode to sign with it on release
archived it
saved it for ad hoc distribution
so there I should only move the .plist .ipa to my site and point my tester to this site, but it doesn't work. First, organizer only outputs a .ipa file when it used to generate a .plist and a .ipa and it used to ask for two images. I read somewhere that xcode 6 only exports a ipa now, so I tried using my newly made ipa and put it on my site along with my old .plist and it failed with the following error message : "the applications can't be installed because [mysite]'s certificate is invalid." (translated from french), that would imply I didn't use the right certificate to sign my release, but I'm quite sure I did.
in conclusion, I'm really lost, and I think I should restart the whole process, so any pointers to an up to date step by step tutorial, or some quick explanation of what I'd be missing / doing wrong would be much appreciated.
Just to notice,
Remember your plist should be in an "https" server. If you donĀ“t have an https server with a valid certificate you could upload your plist to a dropbox public link (this works perfect).

Distribute in house iOS app to customers without distributing source code

We created a IOS app and want to distribute it to our customers. The problem is that we can't give them our source code and they can't give their private key to us. How can we distribute the iOS app to our customers? We now have three different customers.
Can we create an ipa without code signing, then give it to our customers and let them code sign the .ipa file?
Just give them the IPA. It's probably easier for it to be signed with your key than not at all - it doesn't matter if it is already signed. The IPA can be unzipped like a normal zip file and then re-signed with the codesign tool as shown in the answers to this question. They can then re-zip it to obtain a properly-signed IPA file.
You can use Testflight, for example. Or Ad-Hoc distribution.

Ad Hoc distribution for beta testing xcode 4.3

After following the great tutorials from http://www.raywenderlich.com/ on how to submit your app to the app store from square one I started planning my beta test program.
I'm not going to get into details of everything that wen well but of what I'm dealing with right now.
I've read many many posts on how to create provisioning profiles for ad hoc distribution of my app to beta testers. I've focused on those helping user get the app over the air (OTA) after a forum recommendation.
I also know now that TESTFLIGHT is out there but I can't use it this time.
Everything works well except the part where the application actually gets installed on my device. I keep getting the error "Unable to Download Application" after a few seconds of pressing "Install".
There are several possibilities and combinations of certificates, profiles, signatures, and here is where I think I'm doing something wrong. I'd like to show you what I have and what I've done and maybe your experienced eyes can spot my missing step or misconfiguration.
On the iOS Provisional Portal:
1) Ad Hoc distribution profile with a couple of devices:
2) After I download and install my certificates (I've create a couple of each for testing purposes):
3) On my xCode's project configuration:
4) When I generate the archive:
5) I upload everything to my server and then try to get the .ipa to install on my iPhone (which is one of the two devices included on the profile)
And finally I get this:
What could be wrong?
The only difference I can see is in the CodeSigning, ensure both lines under Adhoc point to your certificate.
Second thing to verify: You did not mention the plist that is created during the "Save for Enterprice". Did you upload that to your server, too? And does your link point to this plist? Check out this answer for the plist stuff: How to send the build to already provisioned remote person's iPhone
I've had this exact problem even where, like you (as far as I can tell), everything is done right.
What I discovered is that if you've EVER had the url to the plist file or the app file incorrect then your iPhone will always fail to install. There's some kind of cacheing going on where the phone fails to download the updated plist file if it's previously downloaded an incorrect one.
The fix I've used is to try a different phone (that hasn't cached a previous version), or to make a new version at a different URL. Sounds crazy, but it worked for me!
We have also faced with this problem couple of times and possible reasons might be;
Due to the screen shots, did you upload your files to exact location "http://www.becomingapps.com/en/ota/" location? When you give this URL during enterprise export.
Second possible reason we have seen is mismatched App Id's.
In case you haven't solved your problem, I think you can't use a wild card in your ad hoc profile. It should have the full ...com.becomingapps.dilemma signature.
You also have to upload both the icons, but I'm assuming you did that since your screenshot shows a custom icon.
It's worth the effort to get this working, my customers love it.

Code signing issue: Is any difference between this two screenshots?

What is the difference between these two screenshots?
and
update: When I uploaded my app on the appstore I got invalid binary. I am trying to find a solution.
Well, in the first one you're telling it that the default behavior is to not code sign, but the behavior on "Any iOS SDK" is to go ahead and code sign after all. In the second you're telling it to always code sign. However, since "Any iOS SDK" covers every compilation you're ever going to do on an iOS project, the former is effectively equivalent to the latter in practice.
You are asking the wrong question.
The Debug and Release Targets are not meant for App store submission. You want to create a Distribution Target, which is usually a clone of your Release Target, except with the Code Signing Identity changed to being your Distribution certificate and Distribution provision file instead of your Developer certificate and provision. You might also want to make sure to Validate your Distribution build before trying to upload it.
For submission to the App Store via iTunes Connect, you need to sign your app with a Distribution Certificate, not a Developer Certificate.
Follow Apple's step by step guide. It walks you through the whole process even with screenshots.

Resources