OTA, GIT en Hudson

Door vistu op donderdag 29 maart 2012 22:44 - Reacties (9)
Categorie: -, Views: 3.439

Waar ik - als beginnend iOS developer - een aantal jaar geleden continue tegenaan liep was het beheren van mijn code. Geregeld gebeurde het dat nadat een bepaalde versie live staat er verder wordt gewerkt aan de volgende major release. Op het moment dat er in de huidige versie dan bugfixes moeten worden gedaan zat ik - zonder source control - al snel in de shit. Hoe terug te komen naar precies die versie die nu online staat?
Ongetwijfeld gegniffel van de - zichzelf respecterende - developer, maar voor mij destijds nieuw. Uiteindelijk aan de slag gegaan met git, en man, wat werkt dat fijn.
Over hoe git werkt zijn genoeg tuts te vinden - nog los van het feit dat ik zeker geen git ninja ben - dus daar zal ik verder niet al teveel over uitweiden.

Nadat dit eerste 'probleem' was opgelost bleek het een crimť om je testers van updates te kunnen voorzien. De gebruikelijke strategie is het compileren van je code om vervolgens een ipa (iPhone Application Archive) en provisioning profile naar je testers te versturen, de testers op hun beurt dienen dan weer deze files iTunes in te slepen om vervolgens de app over te zetten naar de iPhone.
Dit kan gelukkig een stuk eenvoudiger; door je code te compileren en vervolgens op te slaan voor 'Enterprise or Ad-Hoc Deployment' is het mogelijk een pakketje aan te maken dat de gebruiker vanaf zijn iDevice kan installeren. Dit is zelfs mogelijk door in Safari naar een link te surfen. Voila, OTA (Over The Air) distributie van iOS apps!

De echte stap voorwaarts was het moment waarop deze twee technieken gecombineerd werden met Hudson. Hudson is een build server waarmee het mogelijk is om automatisch code te compileren. Na het committen van code begint de build server keurig aan een build om deze vervolgens te uploaden en klaar te zetten voor de testers om mee te spelen; de build server kan zelfs een mailtje naar je testers versturen met een changelog en download link.

In een volgende posting zal ik proberen iets technischer te werk te gaan en ook aan te geven hoe je zelf een dergelijk systeem kunt opbouwen. Het kan wat gepriegel zijn in het begin, maar blijkt zeker op lange termijn voor ons een hoop tijd en ergernis te besparen. Nu alleen nog de build server Unit Tests laten uitvoeren ;)

Volgende: OSSCraft 04-'12 OSSCraft
Volgende: Caelinoti, een vliegende start 03-'12 Caelinoti, een vliegende start

Reacties


Door Tweakers user X-DraGoN, vrijdag 30 maart 2012 07:41

Over hoe git werkt zijn genoeg tuts te vinden - nog los van het feit dat ik zeker geen git ninja ben - dus daar zal ik verder niet al teveel over uitweiden.
uitwijden... :?

Door Tweakers user Blokker_1999, vrijdag 30 maart 2012 07:45

zelfs zonder versioneringssysteem lijkt het mij toch evident dat je bij het maken van een release even een archief aanmaakt met de broncode van die specifieke release. Uiteindelijk doet men dat in versioneringssystemen net zo. Eens een release klaar is maak je er een branch van.

Door Tweakers user vistu, vrijdag 30 maart 2012 07:50

X-DraGoN schreef op vrijdag 30 maart 2012 @ 07:41:
Over hoe git werkt zijn genoeg tuts te vinden - nog los van het feit dat ik zeker geen git ninja ben - dus daar zal ik verder niet al teveel over uitweiden.
uitwijden... :?
Het is toch echt uitweiden.
zelfs zonder versioneringssysteem lijkt het mij toch evident dat je bij het maken van een release even een archief aanmaakt met de broncode van die specifieke release. Uiteindelijk doet men dat in versioneringssystemen net zo. Eens een release klaar is maak je er een branch van.
Is het ook ja, misschien niet het beste voorbeeld, maar ik wilde eigenlijk aangeven hoe groot de impact zou kunnen zijn. Majors gingen inderdaad in een zipje de mail op. Bij het refactoren van code was het soms lastiger, ook dan kan je zipjes maken, maar je begrijpt dat een simpele commit een stuk prettiger werkt.

Door Tweakers user thaan, vrijdag 30 maart 2012 08:30

Kijk eens naar testflightapp.com, dat gebruikt een ontwikkelaar waar ik voor test om (zeer) gemakkelijk testversies te kunnen distribueren.

Door Tweakers user vistu, vrijdag 30 maart 2012 09:14

thaan schreef op vrijdag 30 maart 2012 @ 08:30:
Kijk eens naar testflightapp.com, dat gebruikt een ontwikkelaar waar ik voor test om (zeer) gemakkelijk testversies te kunnen distribueren.
Ken het van naam, verder nooit meegespeeld. Later vandaag eens naar kijken, alhoewel het natuurlijk ook zijn charme heeft zelf je omgeving opgezet te hebben :).

Door Tweakers user farmertjes, vrijdag 30 maart 2012 09:52

Met testflight zou je zelfs je crash reports kunnen uitlezen (hoe vaak ze voorkomen en wat er dan crashed). Gratis, doch worden alle gegevens wel doorverkocht.

Door Tweakers user riezebosch, vrijdag 30 maart 2012 21:48

Heb toevallig mijn studenten opdracht gegeven een VCS met een build server en een issue tracker te combineren :) Had zelf een demo gedaan in TFS omdat ik daarin thuis ben.

Door Tweakers user vistu, vrijdag 30 maart 2012 21:49

riezebosch schreef op vrijdag 30 maart 2012 @ 21:48:
Heb toevallig mijn studenten opdracht gegeven een VCS met een build server en een issue tracker te combineren :) Had zelf een demo gedaan in TFS omdat ik daarin thuis ben.
Aah leuk, mogen ze blij mee zijn, lijkt me een waardevolle les. Juist omdat het je zo veel werk uit handen kan nemen als je je erin besluit te verdiepen.

Door Tweakers user YopY, vrijdag 30 maart 2012 22:01

Testflight is idd een goeie, zeker als je een wat grotere groep van testers hebt. En het is gewoon gratis; ze verdienen de kost aan een API die je in je app kunt bouwen waarbij gebruiksstatistieken e.d. verzameld worden.

Reageren is niet meer mogelijk