What is the exact build process of an ios app in XCode? - ios

I am making an iOS app and I wanted to know what the build process is exactly. I don't mean want something like, it compiles, then it links and then its done. I want to know exactly what each step does like android has build steps viz. resource manager, pre-compiler, java builder, package builder, How are these steps taken care of in IOS. Secondly, what is the importance of .app file which is created with xcodebuild command to eventually create .ipa file.

Here are some links that might help:
Joshua Davies walks through building a simple Hello World app outside of Xcode:
http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art024
A .ipa file is just a zip archive with a predefined structure. The iPhone wiki describes it well:
http://theiphonewiki.com/wiki/IPA_File_Format

Related

Adding and using an executable file in iOS at runtime

Suppose, I have some external executable file(call it a .swift file) that are not linked with the xcode project at compile time. That means, I did not have any of those files in my project tree when built the project.
For an example, lets say I have a file called exc.swift. This file was not included while I built the project.
Is there any way that I can execute that executable (the exc.swift) file at runtime?
In android there is a way by using DexClassLoader class. That class is responsible for executing code not installed as part of an application.
The documentation for that class is here.
Is there an iOS equivalent version of this? or in any way is this achievable?
If you are hoping to distribute the app that you are writing, then this is an absolute no-no. The app store review guidelines clearly state "Apps that install or launch other executable code will be rejected" so no app that exhibits this functionality will ever get onto the app store. You may be able to find or devise some kind of hack or workaround to get this kind of thing to work, but it will only ever be for your own amusement.

What are an iOS app's Compiled/Build Files?

I am delivering an iOS app for a client and they are asking for the compiled/build files for the app and not the source code or an exported .ipa. I am wondering what compiled/build files are.
Is it just the .app that is created in /products whenever I build my app or something else that I need to do? I believe they are after these files so they can sign the app with their own production provisioning profile and to create a .ipa themselves.
What is an iOS app's compiled/build files and if it is just the .app how it differs from an exported .ipa?
Although vague, it's also possible they're looking for an Xcode Archive. This includes the compiled .app file as well as symbol information. You can build an archive to seed an application for testing or to validate and submit an application to iTunes Connect. If they want to submit or distribute the app without the source code, this is how you would do it.
"Building" is a fairly general term, and it can refer to anything that is needed to go from editable source material (source code, scripts, raw data files, etc.) to a shippable software product. Building can (and usually does) involve several steps, such as pre-processing, compiling, linking, converting data files, running automated tests, packaging, etc.
"Compiling" is more specific, and almost invariably refers to a process that takes source code as its input, and outputs something runnable, typically machine code for either a physical or virtual machine, or source code in a different language.
I bet they are wanting the .app. Unfortunately, since they are being relatively vague with their request, I think you should confirm this with them. I wouldn't feel uncomfortable asking, because their terminology is not some universally accepted way of refering to some method of building iOS applications. Or, if you can find out what they plan to do with the compiled binary, that might help understand what they need.
FYI, here's a brief description of the difference between a .app or .ipa.

Xamarin Forms IPA generation on Jenkins

I'm having some trouble to generate an IPA for my Xamarin Forms iOS project on Jenkins. I follow the documentation (http://developer.xamarin.com/guides/cross-platform/ci/jenkins_walkthrough/) and post a question on the xamarin forums for my problem, but it's really difficult to have an answer there so i'll try here.
I'm able to build the application with mdtool but there isn't any IPA file in my project after the end of Jenkins' job.
I see some discussion on the forum that tell to use the archive method instead of the build for mdtool. But that didn't change anything either.
I also try to use xcrun to create the IPA file after the application build, but i have that kind of error :
error: Unable to copy application 'iOS/bin/iPhone/Release/Application.iOS.app/' into '/var/folders/v2/gnnclzrd2g98zqc89qn204km00007h/T/VXEBXe7WNV/Payload'
There's not a lot of explanation on how the IPA is generated on the documentation so i'd like to have a clarification on that.
Is anyone manage to create an IPA in Jenkins for their iOS Xamarin Forms project ?
If so how do you do it ? I could give you more information about the Jenkins' job i use, ... if necessary.
Regards
I just find an answer after hours of search and it's kinda dumb.
xcrun give me an that error because my app path had a / in the end (like explained in that post Xcrun PackageApplication, failed unable to copy application).
But then i had another error :
error: Unable to create 'iOS/bin/iPhone/Release/volunteer.ipa'
The output option of xcrun need to be an absolute path not a relative one inside the project.
By using an absolute one, the IPA is generated :)

IOS Broadcast Framework

Can someone point me in the right direction to find the tools to be able to build a really simple broadcasting app on ios.
I am looking to mimic what has been done here.
Been googling around for a while now and can't really find anything to get me started.
Found this:
http://olobonsoft.com/products
Can anyone help or tried to do something similar?
Never try but I know this project (for cine.io) on Github, check source code of project, probably will be not different that what you're looking for.
Example app : https://github.com/cine-io/cineio-broadcast-ios-example-app
Sample iOS application to demonstrate broadcasting and playback using
the cine.io Broadcast iOS SDK.
How to Use
Clone the repository. Create a cineio-settings.plist file based on the
SAMPLE-cineio- settings.plist file. You'll need to create a (free)
account at cine.io. Change into the Example directory: cd Example
Install the necessary CocoaPods: pod install Build and run the project
as you usually would, making sure to use the .xcworkspace file and not
the .xcproject file when building using xcodebuild or when opening
with Xcode.
project : https://github.com/cine-io/cineio-broadcast-ios

Command line tool to analyze a .app or .ipa file

In a script I'm writing, I want a way to be able to analyze a .ipa or .app file to determine some of its internals, such as which SDK it was built with. Is there a command line tool that allows you to do this? If so, what other information can you get from it?
Have a look at this: https://github.com/apperian/iOS-checkIPA (it's a tool named iOS IPA Validator, originally by G. Gold, maintained by James Seibel)
It helped me.
This also looks interested: https://github.com/sjmulder/ipa

Resources