Jenkins and OS X Server on the same machine - ios

I'm working on a Java App and on an iOs App. I will like to make continuous integration on both projects.
I know that Jenkins can be use for CI on iOs projects, but I have to use OS X Server for the iOs app.
So I would like to know if someone has configured a mac with OS X Server using CI with XCode Bots, and Jenkins on the same mac ?
Is there some constraints to respect configuring OS X Server and Jenkins on the same machine?
thanks

I haven't tried setting it up on OS X Server but I did it successfully on Mavericks using this guide here:
http://www.brianjcoleman.com/tutorial-setting-up-a-jenkins-automated-build-server-for-ios/
I'd say to just give it a try and see what happens.

So I just install OSX Server, config XCode CI on it, and check if integration working on my project.
After I install Jenkins, set it up for my other project and it's running pretty good.
I just have to try building the two project at same time, but I don't think that make any problem knowing that Jetkins and XCode bots create new process for each build.

Related

Is it possible to setup Continuous Integration & Continuous Deployment for iOS app development?

I am looking for a way to setup Centralized Continuous Integration and Continuous Deployment for iOS app development. Just like how we do it for Maven or Gradle builds.
I found couple of articles which explains how to achieve this, but for all them are using Xcode to build the iOS application. The key here is Xcode will run only on MacOS.
I found Jenkins Xcode plugin, but it clearly tells,
Obviously, the build machine has to be an OSX machine with XCode
developer tools installed.
Even if we are making one of the developer's OSX machine as Jenkins agent, we can't guarantee that developer's OSX machine will be always connected to Jenkins master. What if somebody else want to build the app and the OSX machine running Jenkins agent is not available?
I found fastlane, but that also seems to automate some of the manual steps like taking screenshots, code signing, releasing the app. It has to be run on only the developers machine if I am not wrong.
What is the generic approach people use to achieve this?
For CI/CD you can use remote build server like AppCenter from Microsoft (https://appcenter.ms/) or other.
And, obviously, without mac machine to build app you can't build your own system CI/CD. Unfortunately, developer can't build app without Apple Machine.
It is main problem for iOS development.
In this case, android is better.

iOS continuous build server from svn

I need some tips regarding continuous integration for iOS application. My previous build system was with Jenkins.
Jenkins in a windows machine ssh to my Mac, build it and then upload to an internal server for testers.
http://i-phone-dev.blogspot.no/2013/07/jenkin-build-xcode-project-in-mac-slave.html
But I would like to update my build server and want to have a dedicated build server for continuous integration. My office have total windows system running with SVN server and other things.
First I will buy a machine, mac mini or mac pro.
I need suggestion on
Advantage of using Mac Mini Server and Mac Pro
I guess now there is no Mac Mini Server now. I see only Mac Mini in Apple website. Probably with Mac Mini I have to buy Mac OS X Server.
Do I really need OS X server. Or I can use OS X with Jenkins?
But it seems to me like, if I want to use XCode continuous integration then I need OS X Server.

Do i need a separate iMac for OSX Server on Mavericks

I am an iOS developer and I want to implement continuous integration in Xcode.
I have received following email from Apple
As an iOS developer, you can now take advantage of continuous integration in Xcode by creating bots with OS X Server for Mavericks that automate the process of building, analyzing, testing, and archiving your apps. As the bots do their work on the remote Mac, Xcode on your development machine displays the build and test reports. Bots can generate a regular release for your QA team, be configured to execute on every check-in, and even test your apps on connected iOS devices.
I have downloaded OSX Server for Mavericks and its like Application.
My Question is can I install OSX Server on my development iMAC machine and implement continuous integration? Or I have to have a separate iMac for OSX server???
I am running OS X 10.9 and the Server.app on my MacBook Pro Xcode development machine with no issues. I realize that your question is specific to an iMac, but I would not expect any issues.
I have a few Integration Bots configured and everything is working fine. The server is building, running test on real devices, and sending me pass/fail reports via email.
You can install OS X Server on the development iMAC. Configure the server and Xcode for Continuous integration.
Guide: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/
WWDC video:
http://devstreaming.apple.com/videos/wwdc/2014/415xx83xkyr55fj/415/415_hd_continuous_integration_with_xcode_6.mov?dl=1

Running iOS app on the simulator using Jenkins

I'm setting up my CI server with Jenkins. I can successfully build the app but now I need a way to run it in the simulator. How can I do it?
Have you checked out WaxSim? It's a command-line app to run the simulator. I've heard various noises about it not working on Mac OSX 10.8 but they may have fixed this now.
https://github.com/square/waxsim
ios-sim (https://github.com/phonegap/ios-sim) works fine. Just be sure to build the debug version of the app otherwise it will go in background after the being deployed.

Is OSX essential to run xCodeBuild, or could it run on a unix/linux box

I've not been able to find a definitive answer to this so far, does XCodeBuild have to run on OS X in order to build iOS apps, or could it run on unix/linux?
The intention is to get it set up with Jenkins for continuous integration.
At work we run all continuous integration on Mac servers despite being a Linux-only office. There is no availability of the Xcode tools on Linux. Even then the best support for those tools is only of the latest version of Mac OS.

Resources