Difference between ipa and xcarchive? - ios

What is the difference between an IPA file and an .xcarchive?
Which one do I have to create to upload an app using Xcode's Application Loader?

Difference between IPA and .xcarchive:
IPA is a zipped up Payload folder which has YourApp.app bundle. .app contains all your application resources like images, plist files, compressed nibs and the executable, CodeSigning resources,etc.
xcarchive contains your app and dsym files. .DSYM is required to desymbolicate your crash logs. Right click on saved .xcarchive and select show package contents to see what it contains.

First comes .xcarchive, which can be used to create an .ipa and sent to App Store Connect.
TLDR: .xcarchive is intermediary step for you, and an .ipa can be used for uploads to the App Store.
.xcarchive:
xc is a hint that its for Xcode, not users. (e.g. other files for Xcode: .xcodeproj, .xcworkspace)
.ipa: iOS Packaged App
After generating your .xcarchive and you can find it in Windows > Organizer > Archives, you can click Distribute app > App Store Connect > Export , which creates this, which you would upload to App Store Connect:
To investigate whats in the .ipa, you can rename the .ipa file into a .zip and extract it. You'll find the following directory structure:

Related

Trying to share an iOS .app file but it crashes as soon as it starts. Also I see a blocked symbol on my .app file

I am compressing this file to .zip and uploading it to https://www.diawi.com/ and sharing the link which is generated.
What am I doing wrong?
I'm quite sure you need to archive it first (Top menu go to Product > Archive) and then export (Distribute -> Ad Hoc) the zip from that archive. Use the zip you get and upload that to diawi.

Difference between appName.app and appName.app.dsYM file of iOS

Can anyone explain to me what is the difference between appName.app and appName.app.dsYM file and which file submit on the AppStore?
As I am checking it in my finder both file has a different size so I am confused which one will be used by Apple?
Thank you.
.app file is an iOS application and .dSYM is debug symbol file which is used to trace the crash log and used to convert the crash log to human readable form.
You need to submit .ipa file to App Store.
For that you need to do following....
Select "Generic iOS Device"
Change the app version or build number, if required
Go to Product -> Archive
Once successfully archived you will see the organiser window. You will see the Archive list.
You need to select the archive that you have just done.(by default it will be selected)
If you want upload iOS app directly via XCODE then select Distribute App -> App Store Connect-> Upload. and follow the instruction. The app will be uploaded on App Store connect.
If you want to manually upload app (like using Transporter App, etc.) the you need to select Distribute App -> App Store Connect-> Export option. The .ipa file will be exported after successful validation pass. That .ipa file you need to upload to App Store Connect.

How to get the dSYM file from the ipa file available on App Store

There is a way to get a dSYM file from the ipa file that is available in App Store?
I've lost my archives that had that dSYM particularly.
Can I do that? I need the dSYM to upload to Crittercism.
Thanks in advance.
Assuming you still have access to the app in iTunes Connect, it's now possible to download the dSYM from iTunes Connect, too. Login, go to My Apps, select your app, then tap on the Activity tab at the top. Tap on the relevant build, and, assuming the app was submitted with symbols in the first place, you should see the option to "Download dSYM."
The file you get is called dSYMs (without an extension) but it is in fact a zip file. Add the .zip extension, unzip, and you'll find your dSYM(s) inside.
(I needed to do this this week since Crashlytics was complaining about a missing dSYM: https://stackoverflow.com/a/35374388/2397068.)
Unfortunately, the dSYM is included within the app archive but not within the .ipa file, so it is not possible to get it from downloading the app from the App Store.
This is for security reasons too- having the dSYM within the .ipa file would mean anyone could download it, potentially making it easier to hack/crack/reverse engineer your app.

.app file not getting dragged into Itunes folder

I want to generate the .ipa file for App download. I am executing code in xcode 4.5.2 and after build success, dragging the .app file to itunes folder. But, the drag itself is not happening. My device has IOS 5.1.Do i need to upgrade my device OS to IOS6 or any other reaon is the cause. Can anybody tell me, why this is happening?
For the method to generate .ipa file from .app file
see my answer to this question:
iOS App loader - what file type should be uploaded
As far as I know, you cannot drag an .app file to iTunes. You can drag an .ipa file however.
To create the .ipa file in Xcode:
Run Product / Archive. If successful, it switches to the Organizer window.
Click "Distribute...", select "Save for Enterprise or Ad-Hoc Deployment" and continue the wizard until you're asked to save the .ipa file.
The saved .ipa file can then be dragged to iTunes and synchronized to your device.
For uploading the app to the Apple' App Store, you don't need to explicitly create an .ipa file. You can be directly upload from the Organizer windows using the same "Distribute..." button.

iOS App loader - what file type should be uploaded

I have always been uploading iOS apps to appstore from XCode Organizer. That is pretty simple process. And we do not see any IPA or APP file is created. Now my client is trying himself to upload the app using app loader and is continuously asking for an IPA file. Now I have some specific questions -
Does app loader exist now-a-days ? Is it a different program out of XCode?
If it does, what file it takes from me to upload to appstore? An IPA?
How do I create the file for appstore? Note that I have the distribution certificate and appstore provisioning files installed and set in my release configuration. And I am sure if I have tried with XCode it would upload already. But, client not allowing me to do that. He will do it using app loader.
Special Notes -
1. Please do not give me links to an apple documentation, they do not talk about file type and how to create that. They always say "binary". Their doc titles does not reflect the content.
2. Please do not show me the Ad Hoc build process, that is not what I am asking.
3. Please only reply if you have used app loader before.
Application Loader is present in the Utilties folder.
For XCode 4.5 go to
XCode -> Right Click and select Show Package Contents
then go to Contents -> Applications -> Application Loader.
When you just do a build from Xcode, you get .app file.
To create .ipa from it follow below process:
On "/" create a folder named Payload
Copy your .app and .mobileprovision files in this folder.
Open terminal, go to / and run following command
zip -9 -y -r appName.ipa Payload/
This will create file "appName.ipa" on /
Yes and Yes.
As far as I know, it takes a compressed .app file.
In Xcode go to Products and select "show in finder". Then compress the file with a right click. The result should be uploaded with application loader. The result is located in the Library directory. Depending on your settings this can be hidden from application loader. Therefore you should copy the compressed file to a directory which is accessible from any program (like the desktop).

Resources