Jan 19
iPhone SDK: Xcode als iPhone Entwicklungsumgebung (IDE) unter Leopard.
Damit man überhaupt für das iPhone Programme schreiben kann, benötigt man einige Werkzeuge. Dies wären ein Compiler und Linker, sowie die benötigen Libraries und Header-Dateien. Diese Werkzeuge, in iPhone Developer Kreisen auch als "toolchain" bezeichnet, kombiniert mit einem guten Text Editor und anderen nützlichen Funktionen, bezeichnet man als Entwicklungsumgebung, auch IDE (integrated development environment) genannt. Unter OS X gibt es mit Xcode eine kostenlose IDE, welche durch Templates erweiterbar ist, so dass man damit problemlos iPhone Applikationen erstellen kann. Wie das im einzelnen geht möchte ich hier Schritt für Schritt erklären. Bevor es allerdings losgeht müssen folgende Voraussetzungen erfüllt sein:
- Mac mit OS X 10.5.1 (Leopard) oder höher. Dieses Tutorial funktioniert nicht mit 10.4.x (Tiger) oder kleiner!
- Xcode 3.0 (Unbedingt die neuste Version verwenden!)
- X11
- X11 SDK
- Mac OS X 10.4.x SDK
- Subversion Client (SVN)
- Zeit und Geduld :-)
In dieser Anleitung ist der Terminal Dein Freund, dh. in jedem Schritt müssen Befehle im Terminal eingegeben werden. Diese Befehle werden in blauer Schrift dargestellt. In manchen Fällen wird auch noch die Ausgabe mit dazugeschrieben. Diese wird dann in grauer Schrift dargestellt. Bei vielen Tutorials wird oft ein Prompt vor jede Zeile gestellt ($, >, C:\). Darauf möchte ich aber verzichten, damit man sich den Code einfacher kopieren kann. Beispiel:
echo "Hallo Welt" Hallo Welt
So, nun gehts aber los:
1. Vorbereitung
1.1. PATH Umbegungsvariable überprüfen.
Damit die folgenden Befehle alle funktionieren muss /usr/local/bin in der PATH Umgebungsvariablen eingetragen sein. Dies kontrolliert man am besten mit dem Terminal:
echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Wenn /usr/local/bin nicht in PATH eingetragen ist, muss folgender Befehl eingegeben werden:
PATH=$PATH:/usr/local/bin
Nun merkt sich das Terminal für die gerade offene Session den neuen PATH. Wenn man allerdings ein neues Terminalfenster öffnet, dann muss der Befehl erneut eingegeben werden.
1.2. Arbeitsumgebung erstellen.
Es empfiehlt sich auf seinem Mac einen Arbeitsordner zu erstellen, in den alle benötigten und erzeugten Dateien bzw. Ordner gespeichert werden. Bei mir ist das ~/iphonedev
mkdir ~/iphonedev
1.3. In den Arbeitsordner wechseln.
Alle folgenden Befehle werden ausgehend von der Arbeitsumgebung ausgeführt. Daher muss man nun in den Arbeitsordner wechseln.
cd ~/iphonedev
2. Kopie des iPhone Dateisystems erzeugen.
Dieses muss aus der Firmware-Datei extrahiert und entschlüsselt werden. Achtung!! Das Entschlüsseln der Firmware ist in diversen Ländern illegal. Man sollte sich also vorher informieren bevor man fortfährt!
2.1. Firmware-Datei runterladen und entpacken
curl -O http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw mkdir fw112 mv iPod1,1_1.1.2_3B48b_Restore.ipsw fw112/iPod1,1_1.1.2_3B48b_Restore.zip pushd fw112 unzip iPod1,1_1.1.2_3B48b_Restore.zip popd
2.2. vfdecrypt runterladen
Unter http://rapidshare.com/files/40981513/vfdecrypt.zip.html vfdecrypt runterladen und in seinem Arbeitsordner entpacken.
2.3. vfdecrypt ausführbar machen
sudo chmod 755 vfdecrypt
2.4. iPhone Dateisystem mit vfdecrypt entschlüsseln
pushd fw112 ../vfdecrypt -i 022-3724-1.dmg -o decrypted.dmg -k 70e11d7209602ada5b15fbecc1709ad4910d0ad010bb9a9125b78f9f50e25f3e05c595e2 popd
2.5. Das entschlüsselte Dateisystem mit dem Finder mounten
Die Warnung dass das Image möglicherweise beschädigt ist kann ignoriert werden. Nach dem mounten hat man nun ein Volume mit dem Namen "Oktoberfest3B48b.N45Bundle"
3. Toolchain einrichten.
Damit man Binärcode für das iPhone erzeugen kann benötigt man einen Compiler und einen Linker. Das iPhone benutzt keinen PPC- oder Intel-Prozessor ein, sondern einen ARM-Prozessor, dessen Code sich von den anderen Desktop-Prozessoren unterscheidet. Xcode liefert leider noch keinen geeigneten Compiler mit, sodass man sich selbst einen kompilieren muss.
3.1. LLVM Compiler-Framework kompilieren
Wegen Fehlern in der Toolchain muss Revision 42498 ausgecheckt werden.
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn -r 42498 pushd llvm-svn ./configure --enable-optimized make ENABLE_OPTIMIZED=1 sudo make install LLVMOBJDIR=`pwd` popd
3.2. iphone-dev SVN Respository auschecken:
svn checkout http://iphone-dev.googlecode.com/svn/trunk/ iphone-dev pushd iphone-dev
3.3. Ordner für die Werkzeuge (toolchain) erzeugen
sudo mkdir /usr/local/arm-apple-darwin
3.4. odcctools kompilieren
mkdir -p build/odcctools pushd build/odcctools ../../odcctools/configure --target=arm-apple-darwin --disable-ld64 FORHDRS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk" make sudo make install popd
Falls es Fehler beim kompilieren gab, dann bitte folgendes versuchen:
mkdir -p build/odcctools pushd build/odcctools ../../odcctools/configure --target=arm-apple-darwin --disable-ld64 export INCPRIVEXT="-isysroot /Developer/SDKs/MacOSX10.4u.sdk" make sudo make install popd
3.5. Das Dateisystem in /usr/local/share/iphone-filesystem kopieren
sudo mkdir /usr/local/share sudo mkdir /usr/local/share/iphone-filesystem sudo cp -R /Volumes/Oktoberfest3B48b.N45Bundle/* /usr/local/share/iphone-filesystem
3.6. Der Variable HEAVENLY den Pfad des Dateisystems zuweisen
export HEAVENLY=/usr/local/share/iphone-filesystem
3.7. Die iPhone Headers installieren
pushd include sudo chmod 755 /usr/local/arm-apple-darwin ./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdk chmod 755 install-headers.sh sudo bash install-headers.sh popd
3.8. csu installieren
csu enthält crt1.o, dylib1.o, und bundle1.o. Es wird empfohlen csu nicht selbst zu kompilieren, da man dafür einen funktionierenden cross-GCC benötigen würde. Das iphone-dev Team stellt daher ein Binary zur Verfügung-
mkdir -p build/csu pushd build/csu ../../csu/configure --host=arm-apple-darwin sudo make install popd
3.9. Leopard Workarround
Damit die Toolchain unter Leopard funktioniert, muss ein unschöner Workarround durchgeführt werden. Leider gibt es dadurch später jedes mal eine non-critical Warnung wenn man ein iPhone Programm kompiliert.
mv llvm-gcc-4.0-iphone/configure llvm-gcc-4.0-iphone/configure.old
sed 's/^FLAGS_FOR_TARGET=$/FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}/g' llvm-gcc-4.0-iphone/configure.old > llvm-gcc-4.0-iphone/configure
sudo chmod 755 llvm-gcc-4.0-iphone/configure
export FLAGS_FOR_TARGET="-mmacosx-version-min=10.1"
sudo ln -s /usr/local/arm-apple-darwin/lib/crt1.o /usr/local/arm-apple-darwin/lib/crt1.10.5.o
sudo ln -s /usr/local/arm-apple-darwin/lib/dylib1.o /usr/local/arm-apple-darwin/lib/dylib1.10.5.o
3.10. LLVM-GCC konfigurieren und kompilieren
Bei diesem Schritt ist es wichtig dass die Variablen LLVMOBJDIR (Schritt 3.1) und HEAVENLY (3.8) gesetzt sind. Falls zwischendurch das Terminalfenster geschlossen wurde, muss man die Variablen neu setzen. Mit dem Befehl echo kann man sich die Variablen anzigen lassen:
echo $LLVMOBJDIR /usr/local/share/iphone-filesystem echo $HEAVENLY /Users/YourUserName/iphonedev
Wenn die Variablen nicht gesetzt sind müssen sie neu gesetzt werden:
HEAVENLY=/usr/local/share/iphone-filesystem LLVMOBJDIR=~/iphonedev/llvm-svn
Wenn der echo Test erfolgreich verlaufen ist, dann kann man den llVM-GCC nun kompilieren:
mkdir -p build/llvm-gcc-4.0-iphone pushd build/llvm-gcc-4.0-iphone ../../llvm-gcc-4.0-iphone/configure --enable-llvm=`llvm-config --obj-root` --enable-languages=c,c++,objc,obj-c++ --target=arm-apple-darwin --enable-sjlj-exceptions --with-heavenly=$HEAVENLY --with-as=/usr/local/bin/arm-apple-darwin-as --with-ld=/usr/local/bin/arm-apple-darwin-ld make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svn sudo make install popd popd
[UPDATE]: 3.11. Cocoa.h anlegen
In vielen Codebeispielen und Cocoa Libs findet man immer wieder die include Anweisung:
#import <Cocoa/Cocoa.h>
Da die Datei Cocoa.h bei den Headern des Toolchains nicht vorhanden ist, nimmt der Compiler an dass es sich um die Cocoa.h von OS X handelt. In dieser Cocoa.h werden aber Header vom AppKit Framework eingebunden, was wiederum zu einem Fehler beim kompilieren führt, da die iPhone Firmware das AppKit Framework nicht kennt. Aus diesem Grunde muss man sich eine eigene Cocoa.h Header-Datei mit folgendem Inhalt erstellen:
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h>
Diese Datei speichert man am besten auf dem Desktop ab und führt dann folgende Befehle aus:
sudo mkdir /usr/local/arm-apple-darwin/include/Cocoa sudo mv ~/Desktop/Cocoa.h /usr/local/arm-apple-darwin/include/Cocoa/Cocoa.h
Die Toolchain ist nun fertig eingerichtet. Nun kann man per Hand bzw. Makefile Binaries fürs iPhone kompilieren. Da wir aber mit Xcode entwickeln wollen, müssen wir noch ein Xcode Template installieren.
4. Xcode Template installieren
Lucas Newman entwickelte das Original Template für die alte Toolchain, Ben S. Stahlhood passte es an die neue Toolchain an und erweiterte es um eine automatische Deploymentfunktion per SSH.
4.1. Template herunterladen.
Das Template hier herunterladen und entpacken.
4.2. Template installieren
Den Ordner iPhone UIKit Application nach /Developer/Library/XCode/Project Templates/Application/ kopieren
4.3. SSH einrichten
Damit Xcode das fertige Programm automatisch zu iPhone übertragen kann, muss man noch SSH einrichten. Falls noch nicht geschehen muss man das BSD Subsystem und Open SSH über den Installer des iPhones installieren. Über das Terminal auf dem Mac folgendes eingeben:
ssh-keygen
Wenn die Eingabeaufforderung "Enter file in which to save the key" erscheint, einfach nur die Enter Taste drücken. Danach das gewünschte Password eingeben.
cd ~/.ssh cat id_rsa.pub >> authorized_keys
Nun muss man sich per SSH mit dem iPhone verbinden.
mkdir ~/.ssh
Und die eben erzeugte Datei "authorized_keys" (liegt in ~/.ssh auf dem Mac) ins ~/.ssh Verzeichnis des iPhone kopieren.
scp ~/.ssh/authorized_keys root@<IP-DES-IPHONES>:.ssh/authorized_keys
Auf dem iPhone folgendes ausführen:
chmod 755 /var/root chmod 700 /var/root/.ssh chmod 644 /var/root/.ssh/authorized_keys
4.4. Umgebungsvariable IPHONE_IP am Mac setzen
mkdir ~/.MacOSX
Nun muss man den Property List Editor starten (liegt in /Developer/Applications/Utilities) und ein Child mit dem Namen "IPHONE_IP", der Klasse "String" und als Value die IP seines iPhone eintragen. Das Ganze dann als ~/.MacOSX/environment.plist speichern und den Mac neu starten.
5. Fertig
In Xcode findet man nun beim Erstellen eines neuen Projekts den Punkt "iPhone UIKit Application". Das leere Projekt sollte sich ohne Probleme kompilieren lassen. Nach dem kompilieren fragt Xcode nach dem iPhone Password, welches unter 4.3. eingegeben wurde. Wenn man das Password eingegeben hat, wird Xcode das fertige Programm gleich zum iPhone kopieren und das Springboard neu starten.
Bitte folgendes beachten:
Viele Beispiele, welche man sich aus dem Internet geladen hat und ein Makefile dabei ist, lassen sich mit der neuen Toolchain nicht kompilieren. Man muss dazu die Makefiles wie folgt ändern:
"CC=/usr/local/arm-apple-darwin/bin/gcc" in "CC=/usr/local/bin/arm-apple-darwin-gcc -v" änden.
"CC=/usr/local/arm-apple-darwin/bin/g++" in "CXX=/usr/local/bin/arm-apple-darwin-g++" ändern
"-Wl,-syslibroot,/usr/local/arm-apple-darwin/heavenly" von LDFLAGS entfernen um den
"-syslibroot: multiply specified" Fehler zu vermeiden.
Ich werde demnächst weitere Anleitungen posten, welche auf die eigentliche Programmierung eingehen werden. Bis dahin, viel Spass beim Experimentieren mit dem neuen iPhone SDK.








19.01.2008 um 02:05 Uhr
[…] iPhone-dev.de wrote an interesting post today on iPhone SDK: Xcode als Entwicklungsumgebung (IDE) fürs iPhone unter Leopard.Here’s a quick excerpt … ake LLVM_VERSION_INFO=2. 0-svn-iphone-dev-0. 3-svn sudo make install popd popd… … echo $LLVMOBJDIR /usr/local/share/iphone-filesystem echo $HEAVENLY /Users/YourUserName/iphonedev… … sudo mkdir /usr/local/share sudo mkdir /usr/local/share/iphone-filesystem sudo cp -R /Volumes/Oktoberfest3B48b….. /. . /llvm-gcc-4. 0-iphone/configure –enable-llvm=`llvm-config –obj-root` –enable-languages=c,c++,objc,obj-c++ –target=arm-apple-darwin –enable-sjlj-exceptions -… […]
20.01.2008 um 00:30 Uhr
[…] habe ich eine Anleitung geschrieben wie man mit dem hier vorgestelltem SDK sein erstes "Hello World Programm" erstellt. Diese Anleitung ist für alle die sich mit […]
25.01.2008 um 12:52 Uhr
hey tolles tutorial…
mehr davon…
25.01.2008 um 20:25 Uhr
Hey, Klasse Tutorial! Bloß…das klappt bei mir alles nicht. Könnt ihr mir vllt den X-Code-Ordner zusenden oder so ähnlich! Auf jeden FAll brauch ich eure Hilfe! Meldet euch bei mir!!!
25.01.2008 um 20:42 Uhr
Das mit dem zusenden ist nicht so einfach, da die Toolchain an diversen Orten im Filesystem installiert ist und ich nicht 100% genau sagen kann welche Dateien gebraucht werden. Bei welchem Schritt klappt was bei Dir nicht? Welche Fehlermeldungen werden angezeigt?
25.01.2008 um 22:08 Uhr
Bei Punkt 2.4 erscheint folgendes: Aber es wird kein Volume erstellt!!!
sig encrcdsa
blocksize 4096
datasize 124087479
dataoffset 122880
keyDerivationAlgorithm 0
keyDerivationPRNGAlgorithm 0
keyDerivationIterationCount 0
keyDerivationSaltSize 0
keyDerivationSalt
blobEncryptionIVSize 0
blobEncryptionIV
blobEncryptionKeySizeInBits 0
blobEncryptionAlgorithm 0
blobEncryptionPadding 0
blobEncryptionMode 0
encryptedBlobSize 0
encryptedBlob
maxi-kraigs-macbook:fw112 maxikraig$ popd
Punkt 2.5 versteh ich nicht! Muss ich da etwas machen???
Bei Schritt 3.1 Kommt folgende Fehlermeldung
*** No rule to make target `/Makefile.rules’. Stop.
Diese Beiden kommen bei 3.4:
*** No targets specified and no makefile found. Stop.
*** No rule to make target `install’. Stop.
Und bei 3.8 kommt:
*** No rule to make target `install’. Stop.
Und das hier wenn ich GCC letztendlich kompilieren will:
*** No targets specified and no makefile found. Stop.
*** No rule to make target `install’. Stop.
26.01.2008 um 00:20 Uhr
2.4 Nach dem Vorgang wird auch kein Volume erstellt, sondern ein Disc Image, welches Du noch mounten musst, Das Disc Image hat den Namen decrypted.dmg und sollte sich im fw112 Ordner befinden, Um das Disc Image zu mounten einfach doppelklicken.
2.5. s.o.
3.1. Hmm, normalerweise kommt die Meldung “** No rule to make target” wenn es entweder kein Makefile gibt und das kommt oft wenn man das ./configure vergisst, bzw. wenn es fehlschlägt. Hast Du die Befehle wirklich genau so wie in der Anleitung eingegeben? Am besten Zeile für Zeile. Probier einfach nochmal den Schritt 3.1 zu wiederholen. Lösch aber vorher den llvm-svn Ordner. Wichtig ist auch, dass Du die neusten Developer Tools installiert hast und das Ganze unter Leopard ausführst.
3.4 Sieht so aus als ob es kein Makefile gibt. Wahrscheinlich kein configure ausgeführt.
3.8 Braucht den llvm von Punkt 3.1
Wichtig bei der Anleitung ist, dass die Befehle auch im richtigen Ordner ausgeführt werden. Einmal ein pushd oder popd vergessen und schon ist man vielleicht ganz wo anders.
26.01.2008 um 08:48 Uhr
Danke dass du mir so schnell geantwortet hast! Ich werds ausprobieren!!! Superfettes Dankeschööööööööööön!
26.01.2008 um 09:27 Uhr
3.1 funktioniert immer noch nicht:*** No rule to make target `/Makefile.rules’. Stop.
Aber ich habe den Code genauso eingegeben!
3.4 geht auch noch nich! Auch hier habe ich wieder genau den selben Code eingegeben!
26.01.2008 um 11:31 Uhr
Befindet sich in Deinem llvm-svn Ordner die Datei “Makefile.rules” ?
26.01.2008 um 11:57 Uhr
JOP!
26.01.2008 um 12:42 Uhr
Probier mal folgendes:
cd ~/iphonedev/llvm-svn
./configure –enable-optimized
Was passiert dann?
Edit: Achtung vor dem enable-optimized befinden sich 2 Minus (”-”) Zeichen. Sieht hier aus wie eins!
26.01.2008 um 13:11 Uhr
configure: WARNING: you should use –build, –host, –target
configure: WARNING: invalid host type: –enable-optimized
checking build system type… Invalid configuration `–enable-optimized’: machine `–enable’ not recognized
configure: error: /bin/sh autoconf/config.sub –enable-optimized failed
Das steht da dann
26.01.2008 um 13:28 Uhr
probier mal folgendes:
cd ~/iphonedev/
pushd llvm-svn
sudo bash ./configure –enable-optimized
sudo make ENABLE_OPTIMIZED=1
sudo make install
export LLVMOBJDIR=`pwd`
popd
26.01.2008 um 14:17 Uhr
Ich verzweifle noch dran:
configure: WARNING: you should use –build, –host, –target
configure: WARNING: invalid host type: –enable-optimized
configure: WARNING: Unknown project (.svn) won’t be configured automatically
checking build system type… Invalid configuration `–enable-optimized’: machine `–enable’ not recognized
configure: error: /bin/sh autoconf/config.sub –enable-optimized failed
26.01.2008 um 16:12 Uhr
HELFT MIR!!!
26.01.2008 um 16:57 Uhr
So wie es aussieht ist das Problem mit die Kommentarfunktion, welche aus zwei “-” (Minus) einen Bindestrich gemacht hat. Wenn ich den Befehl per copy paste aus dem Kommentar kopiere, bekomme ich den selben Fehler. Allerdings nur bei den Befehlen aus dem Kommentar. Die Befehle von der Anleitung unter 3.1 kann ich problemlos bei mir per copy paste rüberkopieren und alles läuft durch.
Wie es aussieht ersetzt Wordpress die beiden Minus Zeichen nur, wenn der svn Befehl am Anfang steht. Probier mal folgendes:
cd ~/iphonedev
pushd llvm-svn
sudo bash ./configure --enable-optimized
sudo make ENABLE_OPTIMIZED=1
sudo make install
export LLVMOBJDIR=`pwd`
popd
Hoffe der Code ist nicht wieder zerfetzt. Wichtig ist dass vor enable-optimized zwei Minuszeichen stehen!!
[Edit] Sieht gut aus mit den Minuszeichen :-)
26.01.2008 um 17:15 Uhr
MIST!!! Das klappt immer noch nicht! Woran könnte das liegen? Was soll ich noch machen???configure: WARNING: Unknown project (.svn) won’t be configured automatically
checking build system type… i686-apple-darwin9.0.0
checking host system type… i686-apple-darwin9.0.0
checking target system type… i686-apple-darwin9.0.0
checking type of operating system we’re going to host on… Darwin
checking target architecture… x86
checking for gcc… gcc
checking for C compiler default output file name… configure: error: C compiler cannot create executables
See `config.log’ for more details.
26.01.2008 um 17:27 Uhr
was steht denn im config.log ?
26.01.2008 um 17:36 Uhr
Habe gerade bemerkt dass Du noch eine ältere Leopard Version hast (Darwin 9.0.0). Ich habe bei mir 10.5.1(Darwin 9,1,0) installiert. Ich würde an Deiner Stelle mal Dein System updaten! Und ganz ganz wichtig ist, dass Du Dir wirklich die neusten Developer Tools installiert hast. Die bekommst Du nur bei der Developer Site bei Apple unter: http://developer.apple.com/ Du brauchst aber einen Account dort, ist kostenlos. Die Developer Tools auf der Leopard DVD sind veraltet und der Build wird damit nicht funktionieren!
26.01.2008 um 19:04 Uhr
OK! Ich kümmere mich mal drum und schreibe dir dann wieder!
26.01.2008 um 22:09 Uhr
Nothing to be done for `install’.
bei 3.1 und
make[1]: *** [ar] Error 1
make: *** [install] Error 1
bei 3.4^^
26.01.2008 um 22:10 Uhr
OH MAN! Gibt es noch irgendwas was ich tun kann ? :’(
27.01.2008 um 01:10 Uhr
Ich muss das doch irgendwie hinkriegen…
27.01.2008 um 13:33 Uhr
Hey, Ich bins wieder. Ich hab jetzt einfach nochmal alles von vorne gemacht und hab alles was als ich fertig war im Terminal-window stand als .rtf gespeichert und bei Rapidshare hochgelade. Guck dir die datei bitte mal an. Vielleicht findest du ja da ne Lösung für mein Problem…
http://rapidshare.com/files/87002863/Terminal-Window_.rtf.html
Danke!
27.01.2008 um 15:04 Uhr
ich brauche dringend Hilfe!!!
27.01.2008 um 18:01 Uhr
Gibt es keine Möglichkeit einen Ordner irgendwo in die XCode-Library hinzuzufügen, der dann den Build von ARM-Binäry erlaubt? Oder gibt es vielleicht ein Installationsprogramm für llvm???
HELFT MIR!!!
http://rapidshare.com/files/87002863/Terminal-Window_.rtf.html
27.01.2008 um 18:26 Uhr
Oder kann man eine Datei erstellen oder downloaden die ich dann in dad Template packe und in Xcode anklicke um den code zu kompillieren????
27.01.2008 um 20:11 Uhr
Du bist schon ein ganzes Stück weiter.
Wie es aussieht hast Du einen funktionierenden llvm. So wie ich das sehen konnte ging nur der Build vom llcm-gcc schief.
Probier mal folgendes:
Wenn das ohne Fehlermeldungen (Warnings sind ok) durchläuft dann hast Du fast alles geschafft.
Achtung bei Punkt 3.11
Du musst da eine Datei erzeugen und diese Datei auf Deinem Schreibtisch speichern. Du hast den Inhalt der Datei als Befehl eingegeben, was nicht funktionieren kann ….
28.01.2008 um 01:35 Uhr
[…] und wartungsfreundlicher, daher ist diese Methode zu bevorzugen. In dieser Anleitung wird das hier beschriebene SDK benutzt, die Code-Beispiele funktionieren allerdings auch mit der herkömmlichen Makefile Methode […]
28.01.2008 um 14:12 Uhr
Schön wärs wenns funktioniert hätte:
Last login: Mon Jan 28 14:10:31 on ttys000
maxi-kraigs-macbook:~ maxikraig$ cd ~/iphonedev/
maxi-kraigs-macbook:iphonedev maxikraig$ pushd llvm-svn
~/iphonedev/llvm-svn ~/iphonedev
maxi-kraigs-macbook:llvm-svn maxikraig$ export LLVMOBJDIR=`pwd`
maxi-kraigs-macbook:llvm-svn maxikraig$ popd
~/iphonedev
maxi-kraigs-macbook:iphonedev maxikraig$ HEAVENLY=/usr/local/share/iphone-filesystem
maxi-kraigs-macbook:iphonedev maxikraig$ pushd iphone-dev
-bash: pushd: iphone-dev: No such file or directory
maxi-kraigs-macbook:iphonedev maxikraig$ rm -R build/llvm-gcc-4.0-iphone
maxi-kraigs-macbook:iphonedev maxikraig$ mkdir -p build/llvm-gcc-4.0-iphone
maxi-kraigs-macbook:iphonedev maxikraig$ pushd build/llvm-gcc-4.0-iphone
~/iphonedev/build/llvm-gcc-4.0-iphone ~/iphonedev
maxi-kraigs-macbook:llvm-gcc-4.0-iphone maxikraig$ ../../llvm-gcc-4.0-iphone/configure –enable-llvm=`llvm-config –obj-root` –enable-languages=c,c++,objc,obj-c++ –target=arm-apple-darwin –enable-sjlj-exceptions –with-heavenly=$HEAVENLY –with-as=/usr/local/bin/arm-apple-darwin-as –with-ld=/usr/local/bin/arm-apple-darwin-ld
-bash: ../../llvm-gcc-4.0-iphone/configure: No such file or directory
maxi-kraigs-macbook:llvm-gcc-4.0-iphone maxikraig$ make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svn
make: *** No targets specified and no makefile found. Stop.
maxi-kraigs-macbook:llvm-gcc-4.0-iphone maxikraig$ sudo make install
make: *** No rule to make target `install’. Stop.
maxi-kraigs-macbook:llvm-gcc-4.0-iphone maxikraig$ popd
~/iphonedev
maxi-kraigs-macbook:iphonedev maxikraig$ popd
-bash: popd: directory stack empty
maxi-kraigs-macbook:iphonedev maxikraig$
28.01.2008 um 17:55 Uhr
Gibt es vielleicht noch einen ähnlichen code? Konntest du noch ein “INDIZ” aus meinem TERMINAL-WINDOW schließen???
28.01.2008 um 18:31 Uhr
Also folgendes gilt: Wenn irgendwas mit Fehler beendet wird, wie zB: -bash: pushd: iphone-dev: No such file or directory Dann brauchst Du nicht weiterzumachen, sondern logisch überlegen warum der Fehler auftritt. In dem Fall gibt es anscheinend kein “iphone-dev” Verzeichnis in deinem Arbeitsordner (~/iphonedev).. Dann must du, bevor Du die Befehle ausführst noch mal das iphone-dev respository auschecken. Also nach den
cd ~/iphonedev/folgenden Befehl ausführen:und dann weiter wie in meinem letzten Kommentar beschrieben.
Der Toolchain Build wird Dir nur gelingen wenn Du auch mitdenkst!
29.01.2008 um 11:34 Uhr
Hallo
ein sehr gutes Tutorial. Hab fast alles nachvollziehen können.
Nur leider bekomme ich die odcctools aus Schritt 3.4 nicht installiert:
bei make erhalte ich:
../../../odcctools/include/libkern/machine/OSByteOrder.h:45: error: redefinition of ‘_OSSwapInt16’
/usr/include/libkern/i386/_OSByteOrder.h:49: error: previous definition of ‘_OSSwapInt16’ was here
../../../odcctools/include/libkern/machine/OSByteOrder.h:54: error: redefinition of ‘_OSSwapInt32’
/usr/include/libkern/i386/_OSByteOrder.h:58: error: previous definition of ‘_OSSwapInt32’ was here
../../../odcctools/include/libkern/machine/OSByteOrder.h:63: error: redefinition of ‘_OSSwapInt64’
/usr/include/libkern/i386/_OSByteOrder.h:69: error: previous definition of ‘_OSSwapInt64’ was here
make[1]: *** [execute.o] Error 1
make: *** [libstuff] Error 2
Damit funktioniert natürlich auch Schritt 3.10 nicht. (ich nehme an, dass der die odcctools braucht.)
Dort verstehe ich auch nicht die angezeigten Werte von HEAVENLY bzw. LLVMOBJDIR im Vergleich zu dem was nach Anleitung dort eingetragen werden soll.
Kann mir jemand mit den occdtools helfen?!
Schönen Gruss
Sigar
29.01.2008 um 11:49 Uhr
Ich kann mich erinnern das selbe Problem mit den occdtools gehabt zu haben. Hast Du die neusten developer Tools installiert? Mit den original Developer Tools von der Leopard DVD geht es nämlich nicht. Folgender Thread könnte Dir vielleicht auch weiterhelfen: http://code.google.com/p/iphone-dev/issues/detail?id=31
29.01.2008 um 12:02 Uhr
Dort verstehe ich auch nicht die angezeigten Werte von HEAVENLY bzw. LLVMOBJDIR im Vergleich zu dem was nach Anleitung dort eingetragen werden soll.
In HEAVENLY muss der Pfad zum iPhone Dateisystem stehen, also “usr/local/share/iphone-filesystem” und in LLVMOBJDIR sollte der Pfad zum llvm-svn Ordner stehen. Wenn man den Befehl
LLVMOBJDIR=`pwd`unter 3.1 ausführt, dann befindet man sich im llvm-svn Order. das `pwd` (print working directory) bewirkt dann dass der Pfad des aktuellen Ordners (llvm-svn) in die Variable LLVMOBJDIR geschrieben wird.29.01.2008 um 14:20 Uhr
Wow, das ging ja schnell. Ich bin begeistert.
Also ich hatte mir vorher die XCode 3.0 geholt und installiert. Das sollten dann auch die neuesten Dev Tools sein.
Hab mich dann auch mal durch den Threat, den Du angegeben hast durchgehangelt. Es scheint an den folgenden Einstellungen zu liegen:
export CC=”gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4″
export MACOSX_DEPLOYMENT_TARGET=”10.4″
Damit komme ich im make-Prozess zwar weiter. Aber bekomme am Schluss immer noch:
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [checksyms] Error 1
make: *** [install] Error 1
Und eigentlich habe ich Leopard 10.5 laufen. Aber mit oben statt 10.4 10.5 gehts auch noch nicht.
29.01.2008 um 15:07 Uhr
Das mit dem 10.4 ist ok. Das bedeutet nur dass der Build Dateien aus dem 10.4 SDK benötigt, welches bei den Developer Tools dabei ist. Hast Du einen PPC oder Intel Mac?
29.01.2008 um 15:10 Uhr
Also, hab die occdtools installieren können.
Musste 10.4u mit 10.5 ersetzen.
Das gleiche hab ich natürlich auch bei Schritt 3.10 gemacht.
Aber dort bekomme ich jetzt beim make:
checking for gcc -isysroot -mmacosx-version-min=10.5 option to accept ANSI C… none needed
checking how to run the C preprocessor… /lib/cpp
configure: error: C preprocessor “/lib/cpp” fails sanity check
See `config.log’ for more details.
make: *** [configure-fixincludes] Error 1
Also muss irgendwo noch was beim llvm-gcc angepasst werden? Oder geht der mit 10.5 nicht?
29.01.2008 um 15:11 Uhr
Ist ein Intel-Mac (iMac)
29.01.2008 um 16:09 Uhr
hmm habe auch einen Intel Mac mit 10.5.1 und bei mir hat es so wie in der Anleitung beschrieben funktioniert (mit 10.4u). Hast Du Dir das config.log mal angeschaut? Wenn man “fails sanity check” googelt, dann bekommt man den Hinweis dass der richtige gcc nicht gefunden wird. Wichtig hier ist auch dass die LLVMOBJDIR Variable gesetzt ist und auf dein llvm-svn Ordner zeigt. Ich habe in der Anleitung geschrieben dass man die Variable mit
LLVMOBJDIR=~/iphonedev/llvm-svnsetzen kann. Versuch hier mal anstelle~/iphonedevden kompletten Pfad anzugenen:LLVMOBJDIR=/Users/YourUserName/iphonedev/llvm-svn29.01.2008 um 20:05 Uhr
Yeah. Geschafft.
Dankke für die Hilfe.
Hab nochmal von vorne begonnen und bei Schritt 3.10 vor dem configure von occdtools folgende Variable gesetzt:
export INCPRIVEXT=”-isysroot /Developer/SDKs/MacOSX10.4u.sdk”
Ansonsten lief alles nach Anleitung.
29.01.2008 um 21:59 Uhr
Herzlichen Glückwunsch :-)
Werde das mit der INCPRIVEXT Variablen gleich der Anleitung hinzufügen. Bevor ich die Anleitung geschrieben habe, habe ich viel rumexperimentiert. Vielleicht hatte ich die Variable schon gesetzt …
Danke für die Info :-)
30.01.2008 um 13:39 Uhr
Hi, habe mich auch durch den Tutorial gewühlt gehabt - und läuft nun auch schon ein paar Tage bestens. Vielen Dank auch von mir. Ich habe jetzt trotzdem nochmal eine Frage. Und zwar, möchte ich nun mal etwas mehr als ein Hello World oder ähnliches programmieren und wollte mich mal gleich auf MailAccount.h stürzen. Beim Compelieren jedoch meckert er, das die NSObject.h nicht gefunden werden kann. Laut 1.1.2 Docu soll diese ja dann sicherlich bei verwendung deines SDK Tutorials ~/iphone-dev/include/CoreFoundation mit drin liegen - leider ist das bei mir aber nicht der Fall. Auzufinden wäre da die NSObject.h nur im MACOS SDK. Wo liegt bei Dir die NSObject.h, oder muss ich irgendwie das MACOS SDK ins xCode Project includen ?
30.01.2008 um 13:59 Uhr
NSObject.h liegt bei mir in /usr/local/arm-apple-darwin/include/Foundation Das installHeaders Script kopiert die Foundation Headers vom normalen Mac SDK in das /usr/local/arm-apple-darwin/include Verzeichnis.
Ich denke Dein Problem liegt wo anders. Hast Du das Message Framework im Makefile eingebunden? Im Makefile solltest Du bei LDFLAGS noch zusätzlich folgendes hinzufügen:
30.01.2008 um 16:01 Uhr
Hey, ich bins mal wieder! Folgendes: Bei mir kommt, wenn es Probleme gibt, entweder
-”No Rule to make target ‘…’. Stop. ” - Diese Meldung verstehe ich nicht, d.h: Ich kann sie übersetzen:-D…Aber ich weiß nicht woran es liegt.
oder
-er meldet dass er keine Makefile findet. Woran kann es denn liegen, dass er die Makefile nicht findet???
30.01.2008 um 16:41 Uhr
Die Makefiles werden normalerweise vom configure Script erzeugt. Schlägt ein configure fehl, dann gibt es auch kein Makefile.
Wenn “No rule to make target” kommt, bedeutet dies, dass der compiler irgendwas nicht findet. Wahrscheinlich etwas, was durch einen Fehler von einem vorherigen Schritt nicht erstellt wurde.
Nähere Infos über das GNU Build System findest Du hier: http://de.wikipedia.org/wiki/GNU_Build_System
30.01.2008 um 17:12 Uhr
Hi, ich nochmal - ja das mit dem Message Framwork hat ich schon gemacht. Habe nun das Problem gefunden aber noch keine Lösung parat. Und zwar schlägt bei der Ausführung von dem install-header.sh script bei vielen Dateien ein “PERMISSION DENIED” auf :
Folgendes macht ja das script:
/usr/bin/install -c -m 644 /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h /usr/local/arm-apple-darwin/include/Foundation/NSObject.h
es kommt aber ein :
install: /usr/local/arm-apple-darwin/include/Foundation/NSObject.h: Permission denied
dieses sieht der user normalerweise nicht bei der Ausführung des scripts
Also entweder stell ich mich zu blöd an, aber ich bekomme auch ein manuelles Kopieren nicht hin (Permission denied) und ein chmod auf auf den betreffenden Verzeichnis klappt auch nicht. Any Idea?
30.01.2008 um 17:22 Uhr
Also ein Kopieren als root oder mit sudo sollte eigentlich immer funktionieren:
30.01.2008 um 17:32 Uhr
Das heißt: wenn ich wissen will wieso ein configure fehlschlägt gebe ich einfach zB: diesen Code ein./configure –enable-optimized
Und überprüfe was er so zwischendurch meldet.
30.01.2008 um 17:49 Uhr
Ja super, danke - hab nun ein “sudo chmod 755 /usr/local/arm-apple-darwin” gemacht und danach nochmal das install-header.sh aufgerufen - jetzt wurden alle dateien kopiert. Mein Kollege hatte übriegens das gleiche Problem und ist ebenfalls nach deinem Tutorial gegangen - eventuell lohnt es sich da ja eine Änderunge vor zu nehmen - hab vielen Dank für dein Hilfe :-)
30.01.2008 um 19:04 Uhr
Ich muss dich nun doch noch mal nerven, ich hoffe das ist kein Problem für dich.
Es gibt einige Header files (z.B. Message/Account.h), die importieren andere header (z.B. NSObject.h) auf folgende Weise “#import “NSObject.h”. Beim Kompelieren werden diese nicht gefunden - würde ich statt dessen “#import “Foundation/NSObject.h” schreiben, findet er es. Im makefile ist dank des Templates ja “-framwork Foundation” schon drin. Kennst Du noch einen Weg, wie ich dem Projekt einen weitern Include-Pfad mitteilen kann - ich möchte einfach nicht alle SDK-Files ändern müssen-
oder mach ich einfach irgend einen Fehler ?
30.01.2008 um 22:57 Uhr
@nobreak: Gute Frage. In Sachen Makefile bin ich auch nicht gerade ein Profi. Aber als Workarround kannst Du auch das header File NSObject.h in dein Projektverzeichnis kopieren. Sollte dann kompilieren. Habe ich schon bei diversen Open Source iPhone Programmen gesehen dass andere das auch so machen.
@maxi: Das –enable-optimized ist eine von vielen Optionen die man bei configure angeben kann. Mit ./configure –help bekommst Du alle möglichen Optionen angeboten.
@all: Ein kleiner Tipp: Erica Sadun hat eine Mailingliste für iPhone Developer eingerichtet. Ich habe mich dort eingetragen und finde es sehr interessant was dort so diskutiert wird. Da tummeln sich einige Profiis rum die einem gerne helfen :-) Ihr könnt Euch hier anmelden: http://box94.bluehost.com/mailman/listinfo/iphonesdk_ericasadun.com
01.02.2008 um 17:22 Uhr
Hey, noch einmal ne kleine frage: Bei dem Projekt “winchain” (die iPhone-Toolchain für windows) muss man eine “prebuilttoolchain.RAR” Datei downloaden. Wenn man diese entpackt sieht man, dass sie eine ganze Menge Ordner beinhaltet die einem schon von der iPhone-Toolchain für Mac bekannt vorkommen. Sogar ein Ordner namens “Mac os x 10.4u.SDK” ist vorhanden. Vielleicht werden diese Ordner von winchain nur noch an den richtigen Platz gebracht.
Kann man die Toolchain so oder ähnlich nicht auch für mac umsetzen???
01.02.2008 um 19:02 Uhr
Möglich wäre das schon. Wenn der Tag 60 Std hätte würde ich das vielleicht sogar angehen ;-)
Ich habe allerdings gerade herausgefunden, dass es bereits Installer für die Mac Toolchain gibt: http://www.google.de/search?source=ig&hl=de&rlz=&q=iphone+toolchain+installer&btnG=Google-Suche&meta= Allerding gibt es auch hier Nachteile, wie zB veraltete Firmware bzw veraltete Toolchain. Da ich bereits eine funktionierende Toolchain auf meinem System installiert habe, werde ich diese Methoden mit Sicherheit nicht testen! Habe keine Lust mir mein System kaputt zu machen.
03.02.2008 um 20:58 Uhr
Ich komme bei Punkt 3.4 nicht weiter (Intel mit Leopard 10.5.1).
Nachdem die odcctools vom Link nicht mehr zum runterzuladen sind, hab ich sie von einer anderen Quelle geladen (erste bei Google).
Wenn ich nun
../../build/odcctools/configure –target=arm-apple-darwin –disable-ld64
aufrufe (wohlgemerkt mit “build”, sonst stimmt der Pfad nicht), dann bekomme ich die Meldung “configure: error: Unsupported target arm”.
Was mache ich hier falsch? Übrigens es handelt bei der odcctools Version die ich heruntergeladen habe um die selbe Version (odcctools-20060413.tar.bz2).
04.02.2008 um 10:50 Uhr
Irgendwie muss beim ersten Versuch, das iphone-dev Repository herunterzuladen die Verbindung abgerissen sein (odcctools fehlten). Nach weiteren Fehlern, war nun einen Neuinstallation der XCode Tools die Lösung.
Super Anleitung!
06.02.2008 um 14:33 Uhr
Hallo Leute!
Bei mir haut die SSH verbindung nicht richtig mit XCode hin!
Wenn ich ein Projekt kompilieren will, bekomme ich nur Fehlermeldungen.
Er schafft es nicht aus Xcode heraus ein SCP oder eine SSH verbindung aufzubauen.
“Permission denied, pleas try again” heißt es nur, in den Build results.
Ich muss doch auch im Makefile jedes Projekts die IP eintragen, oder?
Was kann der Fehler sein?
Die SSH verbindung außerhalb von Xcode funktioniert einandfrei…
Bin um jeden Rat dankbar.
mfg
Michael
06.02.2008 um 14:46 Uhr
Hallo nochmal!
Funktioniert diese Anleitung nur für das IPhone, oder für den IPod Touch auch?
mfg,
Michael
06.02.2008 um 15:44 Uhr
Sollte auch mit iPhone touch funktionieren! (Habs nicht getestet da ich keinen iPod Touch besitze)
Funktioniert die SSH Verbindung ausserhalb auch ohne Password, dh. der host ist im authorized_keys eingetragen?
Die IP muss nirgendwo eingetragen werden. Es muss nur einmal, wie in 4.4 beschrieben, die Umgebungsvariable IPHONE_IP gesetzt werden. Xcode setzt dann die IP automatisch ein. Natürlich kannst Du auch die IP jedes mal in das Makefile eintragen, sollte auch funktionieren.
06.02.2008 um 16:18 Uhr
Hallo!
Die SSH Verbindung rennt außerhalb nur mit PW Eingabe!
Aber zu Punkt 4.4 habe ich eine Frage:
“Nun muss man den Property List Editor starten (liegt in /Developer/Applications/Utilities) und ein Child mit dem Namen “IPHONE_IP”, der Klasse “String” und als Value die IP seines iPhone eintragen. ”
Ein Child machen? Wenn ich auf File/New gehe, dann sehe ich nur den Button “Root”. Mit welcher Dateiedung muss ich dann das IPHONE_IP speichern, von dem Property List Ed.? Ich habs mal als xml gespeichert und dann via “mv” in den besagten Pfad umgespeichtert –>
“Das Ganze dann als ~/.MacOSX/environment.plist speichern und den Mac neu starten.”
Aber nach dem Neustart funktioniert das nicht. Wenn ich kompilieren will in Xcode, dann steht da folgendes:
“The authenticity of host ‘ (::1)’ can’t be established.
RSA key fingerprint is xxxx.
Are you sure you want to continue connecting (yes/no)?”
Ich habe es mit der Zeit aufgegeben und dann händisch in die Makefiles die Ip eingetragen, aber da gehts auch nicht…
BTW. weißt du wie man die Testprogramme wieder löschen kann vom IPod/ IPhone?
mfg und Danke
06.02.2008 um 17:15 Uhr
Natürlich muss man im Property List Editor zuerst einen Root Knoten anlegen, dachte dass ist selbstverständlich … In diesem Root Knoten erstellst Du dann das Child. Du kannst es dann als
environment.plist auf dem Desktop speichern und per mv in den unsichtbaren Ordner bewegen:
Nach einem Neustart kannst Du mit folgendem Befehl testen ob es geklappt hat:
Als Ausgabe sollte die iPhone IP erscheinen.
Es gibt auch noch andere Möglichkeiten unter OS X Umgebungsvariablen zu setzen. Hier einfach mal googeln. Oder Du trägst die IP fest in das Makefile vom Xcode Template ein. Dann brauchst Du die IP auch nicht bei jedem neuen Projekt eintragen.
Wg der SSH Verbindung: Am besten Du löscht die authorized_keys Dateien im .ssh Ordner (auf dem Mac und auf dem iPhone) und führst Schritt 4.3 noch mal durch. Wenn das geklappt hat solltest Du Dich mit
ohne Eingabe des Passwords anmelden können. Das Password wird nur beim ersten Verbindungsaufbau abgefragt, danach nie wieder! Hat bei mir zumindest so geklappt.
06.02.2008 um 17:17 Uhr
BTW. weißt du wie man die Testprogramme wieder löschen kann vom IPod/ IPhone?
Einfach per ssh mit dem iPhone verbinden und dann den Programmordner (.app) des Programms löschen. Nehmen wir mal an Du wolltest Test.app löschen, dann geht das so:
07.02.2008 um 10:11 Uhr
Hey!
Dankeschön. Jetzt rennt’s endlich…:)
MFG, Michael
01.03.2008 um 12:16 Uhr
Hat hier schon mal jemand die 1.1.2 Header installiert? Ich denke bei der oben beschriebenen Anleitung ist man mit den 1.1.1 Headern
dabei. Ich habe die 1.1.2 Header installiert und bekomme Fehler beim compillieren:
/usr/local/lib/gcc/arm-apple-darwin/4.0.1/../../../../arm-apple-darwin/include/Foundation/NSAffineTransform.h:9:29: error: NSCodingProtocol.h: No such file or directory
27.03.2008 um 12:23 Uhr
[…] Zdziarskis Buch "iPhone Open Application Development", welches auf die inoffizielle "Open Toolchain" eingeht. Wann das Buch allerdings erscheinen wird ist noch unklar. In Ihrer Mailingliste wies […]
02.04.2008 um 16:28 Uhr
Danke für diese ausgezeichnete Schritt für Schritt Anleitung! Die hat sicher viel Zeit und Mühe gekostet. Danke!!
Habe hier ein spezielles Problem, bei dem ich nicht mehr weiterkomme. Und zwar kann ich die Toolchain - wie es scheint - fehlerfrei erstellen und damit Dein HelloWorld Sample ohne Fehler übersetzen. Wenn ich dann dieses helloworld über das Springboard öffne, wird die Statuszeile (Batterie, Uhrzeit, …) dargestellt und darunter ist alles schwarz. Nach ca. 15s wird die Applikation - vom iPhone? - beendet.
Die Toolchain habe ich in der Zwischenzeit zwei mal unter 10.5.2 auf einem G4 iBook erzeugt. Xcode 3.0 habe ich mir für den zweiten Versuch extra nochmal von Apple geladen. Beim Erstellen der Toolchain gibt es keine Fehler, die den make abbrechen bzw. die es mir nicht erlauben den nächsten Schritt der Anleitung ohne Fehler ausführen zu können.
Das 16GB iPhone läuft unter 1.1.4.
Gibt es spezielle Aktionen, die man beim Erstellen der Toolchain berücksichtigen muss, wenn man dies am PPC macht? Oder jage ich der falschen Ursache nach und das Problem ist in der Helloworld.app zu finden?
Wäre für jeden Tipp dankbar!
02.04.2008 um 20:29 Uhr
Dir Ursache für das “Nichtstarten” der Applikation war nicht die fehlerhafte ToolChain, sondern das fehlende Execution-Bit der Applikation. Bei mir hat /Applications/HelloWorld.app/HelloWorld kein “x” Bit. Warum auch immer.
Also habe ich mittels “ssh root@IPHONE_IP” und einem “chmod 755 /Applications/HelloWorld.app/HelloWorld” dieses Bit gesetzt und schon gehts.
Danke noch mal fürs Tutorial!
20.05.2008 um 21:54 Uhr
[…] http://www.iphone-dev.de/index.php/2008/01/19/iphone-sdk-xcode-als-entwicklungsumgebung-ide-furs-iphone-unter-leopard/UPDATE […]
21.08.2008 um 07:16 Uhr
moinmoin,
ich find die Anleitung so gut, dass ich sie erst mal verlinkt hab:
http://blog.ludwigschuster.de/2008/08/iphone-dev
Aber des weiteren hab ich die Frage, ob das auch mit der FW2.0 oder gar 2.0.1 klappt. Ich hab es ausprobiert, und bin bei dem erzeugten image hängen geblieben - welches keinen mountbaren Inhalt hat.
Das heißt dann wohl das das entschlüsseln ohne erfolg ist - Fehlermeldungen gab es jedoch nicht.
Danke schon mal
und allet jute
04.10.2010 um 21:27 Uhr
Klasse Tutorial! Vielen Dank dafür! Gebt Ihr auch Kurse?
13.12.2010 um 12:03 Uhr
[…]