AdHoc-Distribution via IPA-Format

Christian Kruse

Unter OS X und iPhone OS in Ordnern abgespeichert werden, die nach dem Schema Applikationsname.app benannt sind. Dass das Ordner sind, wird vor dem Nutzer allerdings versteckt, sie werden im Finder und den Datei-Dialogen nur als Applikation dargestellt.

Prinzipiell keine schlechte Sache, wenn man allerdings z. B. eine iPhone-Applikation via AdHoc an Windows-Nutzer weitergeben möchte zum Testen, dann müssen die einerseits über dieses Konzept bescheid wissen („dieser Ordner ist eine App”) und andererseits müssen sie wissen, dass sie den kompletten Ordner als Blackbox behandeln müssen (z. B.: sie müssen den ganzen Ordner in iTunes ziehen).

Komfortabler ist da das IPA-Format. Im Wesentlichen besteht das IPA-Format aus einer ZIP-Datei mit einer definierten Ordner-Struktur. Der Vorteil jedoch ist, dass sie nicht entpackt werden muss, sondern dass sie dem Nutzer als Programm-Datei erscheint. Ein Doppelklick auf so eine Datei führt z. B. zu einem Import nach iTunes. Außerdem kann man so iTunes-Artwork beilegen, was bei einer Distribution via .app-Verzeichnis nicht möglich ist.

Um das Handling zu vereinfachen, habe ich mir ein kleines Script erstellt, dass mir – mehr oder weniger – automatisch eine solche Datei erstellt, so dass ich sie nur noch versenden muss. Für Interessierte:

#!/bin/bashif test -z "$1" -o -z "$2"; then  echo "usage:"  echo "$0 ProjectDirectory AppName"  exitfimkdir /tmp/Payloadcp $1/iTunesArtwork /tmp/cp -R $1/build/AdHoc*/$2.app /tmp/Payload/$2.apppushd /tmp/zip -r $2.zip Payload/ iTunesArtworkpopdmv /tmp/$2.zip $2.iparm -rf /tmp/Payloadrm /tmp/iTunesArtwork# eof

Aufgerufen wird das Script mit zwei Parametern: dem Projekt-Verzeichnis und dem Namen der App, also z. B. ./create_ipa.sh Documents/termitool/ Termitool. Es wird dann eine Termitool.ipa im aktuellen Verzeichnis erstellt. Die Build-Konfiguration muss mit „AdHoc” beginnen. Sehr praktisch, das ganze.