You know how (technical) bloggers sometimes say that their blog is their personal memory dump? Sometimes you¬†go searching for the solution to an issue and find the answer on your own blog! I bet this blog post is going to be one of those posts ūüôā

Previously I wrote about issues when installing Java on Yosemite during a Jenkins install. I was installing Jenkins because I’m setting up a CI environment for our Xamarin.iOS app. The purpose of this CI environment is to build our Xamarin.iOS app, run the Xamarin.UITests on our Xamarin Test Cloud instance and upload the build to TestFlight for our internal QA and developers to play with.

I bought a nice Mac Mini for this purpose with OS X Yosemite installed. I started out with the Using Jenkins with Xamarin guide on the Xamarin website. This guide mentions a number of prerequisites, but I will try to be as complete as possible in describing the steps to get a Jenkins CI running with Xamarin.iOS, Xamarin Test Cloud and TestFlight.

Continue reading

Today I was setting up a new CI¬†server for our Xamarin builds on a brand new Mac Mini running OS X Yosemite. It was a clean machine so I started from scratch using the instructions from the Xamarin guide:¬†Using Jenkins with Xamarin –¬†Configuring Jenkins to Power a Xamarin Continuous Integration on OS X.

Now, after you see this dialog it should open Safari and launch the Jenkins administration web interface.

jenkinsdialog

However, you will be greeted by this dialog instead

yosemite-jre

Continue reading

Lately I’ve been diving into¬†Xamarin test cloud (which is awesome BTW) using Xamarin.UITest, the c# frontend to Calabash.

Since I’m having some issues deploying our Xamarin.iOS app on a simulator, see¬†http://forums.xamarin.com/discussion/9748/ios-simulator-application-terminated-when-testing-on-older-ios-versions, I tried to get the UI Tests running on an actual device.

It took some digging, but I got it to work using this code:

IApp app = ConfigureApp
                .iOS
                .EnableLocalScreenshots()
                .InstalledApp("com.example.yourappbundleid")
                .DeviceIp("192.168.1.1")
                .StartApp();

As a comparison, the way to run the tests on a simulator is like this:

IApp app = ConfigureApp
                .iOS
                .EnableLocalScreenshots()
                .DeviceIdentifier("E67C54DA-17B2-4EBC-AA08-FBF3FB571243") // iPhone 6, 8.1
                .AppBundle(PathToIPA)
                .StartApp();