Ardillas,
Hello, there! In short, no, there are no concise examples or documentation on how to do this; you will surely have to do as I have, and spend many hours of piecing together bits of information that are dug up in man pages & online articles (most times with out-dated steps).
My experimentation thus far with automation of iOS builds from command line relies on CMake [1] that you might find some use in looking at (see also: CMakeLists.txt & dist dir). I am assuming XCode generated project files via CMake, though, in my use case. At any rate, using CMake conveniently resolves the issue of creating the app bundle for me, along with the code signing and so forth, ultimately leaving me with the sole task of compiling the software with xcodebuild (see dist/cmake.sh & dist/xcode.sh). (Admittedly, I do not wish to replace XCode entirely, mostly for reasons that Rick Mann has mentioned).
You should be able to manually code sign the generated app bundle with the following command:
codesign -s ‘Developer Distribution Name’ ./bundle.app
As far as generating an app bundle, although I rely on CMake its XCode generated project files to do the majority of the work for me, you might well get away with a simple script that creates the directory hierarchy, a copy of the app binary generated with the compiler (xcodebuild & clang in my case…), resource files, and appropriate Info.plist file you make for the project. (This process definitely works with OS X binaries… and maybe it will for iOS binaries, too?) I’ve had success with installing the resulting app bundle via iPhone Simulator with [2].
Although I am not aware of a direct means of uploading the app to the iOS device, you may consider using a service like TestFlight [3] and helper scripts like the ones in my repo [4] and [5]. (The archival of the app bundle is for TestFlight…) In short, this allows one to build the iOS app & then upload to TestFlight’s servers, where you can then quickly access the app installation from your iOS device via the web. Admittedly, this may be a bit too tedious / slow for continuous building & testing of an app, but perhaps you can improve upon this!
- https://github.com/i8degrees/hello-sdl2-ios-cmake/
- https://github.com/i8degrees/hello-sdl2-ios-cmake/blob/master/dist/iphone.sh
- https://www.testflightapp.com/
- https://github.com/i8degrees/hello-sdl2-ios-cmake/blob/master/dist/testflightapp.sh
- https://github.com/i8degrees/hello-sdl2-ios-cmake/blob/master/dist/archive.sh
I’d be happy to try answering any questions that you may have, if you find this information of any use! I’m hoping / assuming you are comfortable w/ basic CMake usage…
Cheers,
Jeffrey Carpenter
<@Jeffrey_Carpenter>On 2014/07/ 04, at 16:21, Ardillas del Monte wrote:
Hi,
My build environment is highly automatized (with a Make-derived custom environment), so that I build all executables for all my target platforms (and even their installers) by just issuing a “make” invocation. When using a Mac, by invoking “make”, I cross-compile for Win32, for Win64, get a Win32 and Win64 installer (with all app icons properly set, etc…), and at the same time I build it for several OSX versions (and several architectures), getting the complete OSX app bundles, DMGs, etc…
This is very convenient for me, because I just concentrate on writing the multiplatform code and doing the graphical design for icons, splash logos, etc… I don’t need to waste time starting a graphical IDE, setting up a project, defining its resources, etc, etc, and repeating that task all over again for each target platform.
Now I’m adding Android and iOS as another target platforms, and I wish to integrate them with such a convenient build system, so that when running on a Mac I also get Android and iOS app bundles. My main worry now is iOS, because its development is very tied to the Xcode IDE.
I know you can build SDL for iOS from the command-line, by using “iosbuild.sh”. However, that builds the library only, so I don’t see how to build complete apps.
Now I found this (very) useful blog post about building iOS apps from the command-line:
http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art024
But unfortunately it doesn’t build the app bundle, just the executable.
Is it possible to also generate the app bundle from the command line, and even code-sign the app with my Developer membership ID?
And, last, if it would be possible to upload the app to iOS devices from the command line, that would be awesome because I would integrate app upload on my build system, but I understand I might need to start Xcode for this last step.
If you know of any document or web page explaining everything I need, please tell!!
ardi
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org