Compiling for iOS/OSX on a Linux box 4/x

Summary of previous episodes

We have a python script which can compile an iOS project and bring the result to tester using OTA (Over The Air) distribution.
We saw that thre keychain’s password is used as a clea parameter. With a ps command it could be retreive.
A solution could be to use a configuration with very restrictive access right (600).
Continue reading ‘Compiling for iOS/OSX on a Linux box 4/x’ »

Et maintenant quelque chose de complétement différent

J’ai soumis à Apple ma dernière application iPhone et Apple a accepté de la mettre sur l’AppStore.

Il s’agit de PilStock, une application des gestion théorique d’un stock de médicaments.

Vous trouverez tous les détails sur le site dédié à l’application : pilstock.foucry.net

L'icone de PilStock

L’icone de PilStock

Compiling for iOS/OSX from a Linux Box 1/x

This article is a translation of the original post in french.

Ok, the title is not exactly what we will discuss. But would you read it if I was honest?

I use my LinuxBox to write iOS code, however I still need a Mac to compile it. We will use the Command Line Interface (CLI) as much as possible.

We are going to do “continuous integration”. At each commit step done on our LinuxBox, the Mac will checkout, compile and send the result.
The result will be available for testers using the OTA (Over The Air) distribution (for iOS Applications).
Continue reading ‘Compiling for iOS/OSX from a Linux Box 1/x’ »

Compiling for iOS/OSX from a LinuxBox 3/x

This article is a translation for the original post in french.

Summary of previous episodes

We saw how to install Java, Jenkins and made a first Jenkins workflow in order to compile an OSX application.

A workflow for an iOS simulator application

This time we will compile an iOS application to be run on the iPhone Simulator. On a Linux Box with a command line this step is not very interesting (we don’t have the iPhone Simulator on a Linux Box). But this workflow will help us to reach our goal, compile an iOS project for an iDevice and install it through OTA (Over The Air).
Continue reading ‘Compiling for iOS/OSX from a LinuxBox 3/x’ »

Compiling for iOS/OSX from a LinuxBox 2/x

This article is a translation of the original post in french.

Previous episodes summary

In our first episode we saw how to install Java, Jenkins and compile without big trouble. In the last episode we played with the keychain et we saw that is not possible to compile for iOS with Jenkins even with a shell script.

Who is the culprit ?

After in-depth searching, it seems that the culprit is the keychain. Compiling for an iDevice, requests the code to be signed with the developer certificate. The developer certificate is in the keychain. Unlocking and activating the keychain does not help, the Jenkins workflow is still looking for the system keychain. One bad solution seems to put everything in the system keychain. But once again it fails! So, what can we do?

We could give up … or insist … or have another idea. I chose the third solution and decided to write a python script who will do everything for me.
Continue reading ‘Compiling for iOS/OSX from a LinuxBox 2/x’ »

Compiler pour iOS/OSX depuis Linux 4/x

Résumé des épisodes précédents

Nous avons un script python qui permet de compiler un projet iOS et de mettre à disposition l’application ainsi compilée pour une distribution OTA (Over The Air).

Nous avons aussi remarqué que le mot de passe de la keychain était passé en paramètre et qu’en faisant une commande ps il est possible de récupérer ce mot de passe.

Une solution envisageable est l’utilisation d’un fichier de configuration. Celui-ci aurait des droits d’accès très restreint (600).

Continue reading ‘Compiler pour iOS/OSX depuis Linux 4/x’ »

GitHub, ssh et les clefs

Aujourd’hui j’ai décidé de déposer le script xcodebuild-wrapper.py dans GitHub afin de le partager avec la communauté.

Les échanges avec GitHub se font en passant par SSH afin de chiffrer les communication est assurer un minimum de sécurité.

Dans la mise en place du compte GitHub explique comment créer une paire de clefs RSA, comme mettre la clef publique sur dans les paramètres du compte GitHub.

Tout cela est très bien, mais me pose (et peux vous poser) un problème. J’ai déjà des paires de clefs SSH dans mon $HOME/.ssh. Comment faire pour avoir une clef spécifique et utiliser celle là au moment des push/pull ?

Continue reading ‘GitHub, ssh et les clefs’ »