Is that safe to share .xcarchive? - ios

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.

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.

iOS App distribution - Archiving an .ipa file

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.

ios - what is the difference between archiving your application and creating a binary?

I have started the steps to submit my app to the apple store, andI have made a keychain security file, and did an archive of the code base.
But as I understand it, I have to make a binary file of the code base which is just a zip file, and upload it to iTunes Connect, is that correct?
What was the point of archiving the codebase? Did that not create the binary? And how do I sign the binary correctly so that it can be submitted to the apple store?
Thanks!!
You're using a number of terms here, but not using all of them correctly.
"Code base" usually refers to the entire collection of files that are part of the application. The most important of those are the source code files, but most people would also include such things as XML files, strings files, images, your project file, and other resources. An "archive of the code base" sounds like your put all these in a zip file for safe keeping. I understand you to mean that you used Xcode's 'Archive' command, but this does several things:
compiles the program into an application bundle (the app bundle is a directory that includes the executable "binary" file, but also contains the other resources that the app needs)
signs the bundle with your private key and distribution provision
zips the application
saves the archive along with the debug symbols file in Xcode's organizer so that you can later symbolicate any crash logs you receive
optionally submits the application to iTunesConnect for review, save the app, or mail the app to someone
"creating a binary" really just means creating some sort of binary (i.e. non-text) file, but it's often understood that the binary file in question is executable. So yes, using Xcode's 'Archive' command will "create a binary", but it goes several steps further in ensuring that the 'binary' is stored in the right format for submitting to iTunesConnect or distributing to users.
Creating an archive also saves the .dsym files which you need to symbolicate crash reports.
See this article for more about archiving: http://developer.apple.com/library/ios/#qa/qa1764/_index.html
You can use Xcode to submit your binary to iTunes connect. Also, binaries are already signed with the provisioning/distribution profile.
In order to sign the binary correctly, you need to create a distribution profile with the app id you have assigned to your application. You compile your app and make an archive. You can go to Xcode's organizer to submit your application to the app store.

Problems creating an ipa file

I want to create an ipa file but I get the following error message. Maybee someone knows what's going on here? Or just a hint where the error might be.
Sometimes it may happen that Xcode Archiver fails to generate ipa file. Then here is the another option.
Build the application.
After successful build go to "Products" folder in your project navigator.
Right click on it and go to "Show in Finder".
Copy the .app file.
Create a new folder at some other location lets say on Desktop with name "Payload".
Paste that .app file in Payload folder.
Zip the Payload folder.
Rename that zipped folder with .ipa
Thats it.
Reverse procedure is used to retrieve the app file from an ipa file.
Hope this answer helps.
Check to make sure you have changed your Code Signing Identity to a Distribution profile, rather than your Developer profile cert. You need to explicitly create a Distribution cert in the provisioning areas of the Apple Developer website.
Here are two links that are pretty helpful, first and second.

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.

Resources