Wstęp

Po wprowadzeniu do Objective-C czas przystąpić do stworzenia pierwszej aplikacji na iPhona. Postaram się pokazać krok po kroku jak stworzyć „hello world” od stworzenia projektu po umieszczenie go na telefonie. Deploy aplikacji odbędzie się na telefonie ze złamanymi zabezpieczeniami.

Pamiętaj sprawdź czy wszystkie czynności opisane poniżej są legalne w Twoim kraju. Nie ponoszę odpowiedzialności za zniszczenia ani złamanie przez Ciebie prawa.

Jailbreak iphone

By przetestować aplikację w rzeczywistym środowisku pracy bez uczestnictwa w Developer Program należy zainstalować wersję firmware, pozbawioną zabezpieczeń. W tym celu (można to wykonać na Windowsie lub Mac OS X):

  1. Uaktualnij iTunes
  2. Ściągnij Quick Pwn 2.1
  3. Ściągnij odpowiedni firmware
  4. Podłącz iPhona sprawdź w iTunes czy telefon jest widoczny
  5. Rozpakuj QuickPwn
  6. Uruchom QuickPwn.exe
  7. Postępuj według instrukcji na telefonie

Powyższa instrukcja była dla systemu Windows sposób instalacji dla Mac OS X można znaleźć na tym blogu.

Instalacja ssh

W celu umieszczania aplikacji na telefonie będziemy potrzebowali ssh. Uwaga potrzebne będzie połączenie wi-fi. W tym celu należy wykonać następujące kroki:

  1. Uruchom aplikację Cydia na iPhonie
  2. Przejdź na zakładkę Search
  3. Wpisz OpenSSH
  4. Naciśnij Install
  5. Otwórz ustawienia sieci na iPhonie
  6. Sprawdź IP jakie przydzielono telefonowi np. 192.168.1.100
  7. Na komputerze otwórz terminal (na Windowsie użyj Putty) i połącz się z telefonem:ssh root@192.168.1.100
  8. poczekaj chwilę – generuje się klucz
  9. zaakceptuj klucz dla komputera jak nie zapyta też ok
  10. zaloguj się hasłem: alpine
  11. zmiana hasła poleceniem: passwd

Instalacja oprogramowania na telefonie

Po zainstalowaniu OpenSSH i zalogowaniu się, czas na zainstalowanie paru programów na iPhonie. Na początku potrzebujemy narzędzie do odświeżania stanu pulpitu telefonu. W tym celu instalujemy uicache, pnownie uruchamiając aplikację Cydia:

  1. przejdź na zakładkę Search
  2. Wpisz UIKit Tools
  3. Naciśnij Install

Następnym programem do zainstalowania jest ldid, który będzie podpisywał stworzony przez nas kod. Instalację przeprowadzimy w konsoli (po zalogowaniu się na telefon) wydając polecenie apt-get install ldid.

Tworzenie nowego projektu

W celu stworzenia naszej pierwszej aplikacji musimy uruchomić środowisko XCode oraz stworzyć nowy projekt wybierając z menu File -> New Project, z możliwych projektów wybierz iPhone -> View Based. Z głównego okna wybierz plik nazwa_aplikacji.xib i kliknij na nim dwukrotnie.

Wybór pliku Main.xib

Wybór pliku Main.xib

Otworzy się Interface Builder, w którym możemy dowolnie zmieniać wygląd widoków umieszczonych w projekcie. Pliki *.xib opisują widoki, natomiast IB wspomaga nas w szybkim edytowaniu podstawowego zachowania elementów interfejsu. By wypisać „Hello world” umieścimy najpotrzebniejsze elementy w naszym widoku. Do tego potrzebny będzie Object Inspector, którego wywołamy z menu Window w IB. W oknie aplikacji umieścimy podstawowy widok, by to uczynić przeciągnij z OI ikonkę View do okna aplikacji. Następnie znajdź element Label i przeciągnij go do wcześniej przeciągniętego widoku. Kliknij dwukrotnie na upuszczonym elemencie, a następnie wpisz „Hello World!„.

Uruchomienie projektu

Sprawdź czy aplikacja działa w symulatorze. Projekt można zbudować klikając ikonkę Build and Go albo użyj skrótu Cmd + Enter. Po zbudowaniu się projektu powinien uruchomić się symulator iPhona oraz nasza aplikacja.

Budowanie projektu

Budowanie projektu

Uruchomienie projektu na iPhonie

Przed wprowadzeniem aplikacji do telefonu musimy dokonać jeszcze paru zmian w projekcie XCode. Po pierwsze musimy usunąć nazwę certyfikatu w ustawieniach projektu i tak:

  1. Uruchom kolejno rozpoczynając od menu: Project -> Edit Project Settings -> Build -> Code Signing -> Any iPhone OS Device.
  2. Usuń „iPhone Developer” lub inną wartość tam znajdującą się.

    Ustawienia certyfikatu

    Ustawienia certyfikatu

  3. Ustaw parametry Build na: Device|Release (gdy ponownie będziesz chciał użyć symulatora użyj tej listy do zmiany ustawień kompilatora)

    Budowanie projektu na iPhona

    Budowanie projektu na iPhona

  4. Zbuduj Projekt skrótem CmdB.
  5. Ostatnią czynnością jest przekopiowanie aplikacji oraz podpisanie kodu. By zautomatyzować tę czynnością przygotowałem skrypt na Mac OS X. W poniższym skrypcie zmiany wymagają stałe umieszczone na początku:
  • PROJECT_DIR – katalog, w którym umieszczona jest skompilowana wersja aplikacji
  • APP – nazwa aplikacji
  • IPHONE_IP – IP iPhona. Pamiętaj, żeby przełączyć autoblokadę telefonu na Nigdy w czasie umieszczania aplikacji w telefonie (Ustawienia -> Ogólne -> Autoblokada).
  • #!/bin/bash
    PROJECT_DIR="/Users/sparhawk/Documents/helloWorld/build/Release-iphoneos/"
    APP="helloWorld"
    IPHONE_IP="10.0.8.202"
    
    echo "1/4 - remove old application "
    ssh root@$IPHONE_IP "rm -r /Applications/$APP.app"
    echo "2/4 - Copy file - note: If file don't upload - unblock iPhone! "
    scp -fr $PROJECT_DIR$APP.app  root@$IPHONE_IP:/Applications/
    echo $PROJECT$APP.app
    echo "3/4 - Run cmd"
    ssh root@$IPHONE_IP "cd /; ldid -S /Applications/$APP.app/$APP; su -c uicache mobile; killall SpringBoard"
    echo "4/4 - END"
  • I to wszystko :)

Uwagi

Powyższy skrypt będzie wymagał hasła użytkownika za każdym razem, gdy będziesz go uruchamiał. By się z tym uporać wystarczy wygenerować klucz dla komputera, na którym go uruchamiasz. By to wykonać wystarczy:

  1. Na komputerze uruchomić: ssh-keygen -t rsa
  2. pare enterów
  3. Przekopiuj klucz publiczny z pliku (ścieżkę wypisze ssh-keygen) ten z rozszerzeniem .pub na koniec pliku (na iphonie): /private/var/root/.ssh/authorized_keys.

Poprzednie części samouczka