Steg för steg hur man ska komma igång med programmering för iphone

Om man ska testa att programmera till Iphone så finns det väldigt mycket att tänka på för att få telefonen att jobba mot datorn. På denna sidan tänkte jag ta upp det viktigaste steg för steg hur man ska göra för att på lättast sätt kunna börja koda till mobilen utan massa strul.

För att ha nytta av denna sidan måste du ha en Iphone och ett mac operativsystem installerat antingen med hjälp av att du har en mac eller om du har gjort din PC till en Hackintosh eller om du kör virtual pc som emulerar datorn till en mac. Jag rekommenderar att du kör en vanlig mac eller en Hackintosh för att slippa några dumma drivrutiner som inte vill fungera.

Om du funderar på att bygga eller testa Hackintosh så kan jag rekommendera att använda dig av uniBeast programmet. Det är det lättaste sättet att få din dator till en Hackintosh. Annars är det stor chans att man får lägga minst 1-3dagar på att installera OSX operativsystemet. Men med uniBeast brukar det bara ta någon timme. Om man vill ha någon guide på hur man ska göra för att installera Hackintosh så rekommenderar jag guiden som Lifehacker har gjort.

_____________________________

Det första man ska tänka på är om man vill betala Apple 99 dollar om året för att få programmera till mobiltelefonen. Är svaret NEJ jag vill inte betala 99 dollar så finns det sätt att gå runtom detta.

_____________________________

 

Första saken du behöver göra för att inte behöva betala apple 99 dollar är att jailbreaka iphonen. Jailbreaka är lagligt att göra dock så försvinner garantin om du göra detta. Så vill du inte bli av med garantin så måste du söka om Apples tillstånd och betala 99 dollar om året.

Den smidigaste sidan jag hittade om hur man jailbreaka är på http://www.jailbreakaiphone.se/. Om du nu har en iphone som inte stödjer Jailbreak så måste du även här betala apple pga det inte finns något sätt för dig att kunna programmera till telefonen utan Jailbreak.

En viktig sak att förstå när det gäller att man ska Jailbreaka telefonen är att man måste ha blobs. Vad är då blobs?? Jo, detta är din telefons unika nummer som man får av apple. Alla telefoner har unika nummer så du kan inte ta någon annans blobs och tro att den kommer att fungera till din mobil. Vad använder man sin blobs till då undra kanske du? Jo det är så att med hjälp av din blobs så kan du installera jailbreak på den blobs som du har. Nu är det inte så att du bara har en blobs utan du har en ny blobs för varje ny mjukvaruuppdatering. Så vill du ha ios för 5.1.1 så måste du ha din blobs för 5.1.1. Har du inte det så kan du inte uppdatera till den mjukvaruuppdateringen/nedgraderingen. En annan mycket tragisk sak är att apple stänger av “supporten” för gamla ios efter ett tag. Som för min del ville jag ha 5.1.1 men i och med att min iphone inte hade den utan 4.x.x och den riktiga var på 6.0.1 så hade apple stängt av alla som är under 6.x.x. Detta gjorde att jag inte kunde på något sätt få fram min blobs på 5.1.1 även om jag hade laddat ner mjukvaruvariationen för 5.1.1. Så för min del fick jag använda mig av 6.0 av jailbreak. Denna mjukvaruvariationen hade inte Tethered innan och det betyde att du inte alltid har din telefon i Jailbreak läge. För att få din telefon i Jailbreak läg med Tethered så måste man starta telefonen med hjälp av en dator. Om du lyckas få en jailbreak som är en Untethered så är telefonen alltid i jailbreakläge utan att man måste boota iphonen med en dator.

Nu så har en grupp med namnet evasi0n lyckats göra en Untethered jailbreak av 6.0- 6.1.2. Om du har någon av de iOS så rekommenderar jag att använda deras jailbreak. Du kan då hoppa över allt om redsn0w. Din mobil blir även mer stabil om du har en Untethered iOS. Märkte när jag körde med Tethered att mobilen kunde hänga sig när man skickade sitt program till mobilen. Detta har aldrig inträffat när jag har kört Untethered.

För att starta Tethered jailbreak måste man klicka på boot och följa instruktionerna.

Om du nu vill ha en nya uppdatering än 6.0 så kan du få den i 6.0.1 genom att först uppdaterat telefonen till 6.0.1 och sedan ladda ner mjukvaruvariationen 6.0.

Sedan klickar du på Select IPSW och väljer din 6.0 mjukvara. Efter det går du tillbaka och väljer Jailbreak.

Du kommer efter att du har klickat på jailbreak få fram hur du ska göra för att få installera jailbreaket. Du kommer att behöva sätta din telefon i DFU mode för att kunna installera jailbreak.

För att komma in i DFU mode så måste telefonen vara avstäng och inkopplad till datorn. Sedan håller man inne on/off knappen i 3 sec.

Efter de 3 sec fortsätter man hålla inne on/off knappen men man ska också då hålla inne Home knappen i 10 sec. VIKTIGT när räknaren är slut på 10 så vänta till sista räknaren får ner en sec innan du släpper upp On/off knappen som du ska göra som nästa steg. Du måste ha Home knappen kvar runt 20 sec till innan telefonen kommer i det läget som du vill att den ska komma i.

Nu ska telefonen installera massa saker och när det är klart så är till telefon jailbreakad i den mjukvaruvariationen du har kunnat använda dig av.

För att sedan start telefonen om du har en Tethered  måste du starta redsn0w och välja extra. Har du ios 6.0 så kan du bara klicka på just boot. Om du däremot har ios 6.0.1 så måste du först välja Select IPSW och välja ios 6.0 filen och sedan efter det välja Just boot.

 

Om du nu har en blobs variation som du vill spara på din dator till att nedgradera i framtiden så gör du följande: Om du har haft din mobil tidigare jailbreakad så finns de blobs i din cydia på alla de variationer du har testat jailbreak på.Du kan där få ut alla dina blobs om du har haft andra tidigare. På bilden nedan ser du hur många shsh blobs en har på sin telefon. För att få fler i listan måste du ha haft fler jailbreak med olika ios. Har du haft det så kommer alla de andra också listas på den texten.

Du kan också då få dem genom att klicka på SHSH blobs och sen Query i redsn0w.

Ett annat sätt är att använda dig av TinyUmbrella. Detta programmet kan också användas till om din Iphone kommer i något dumt läge så att du inte kan använda den. Då väljer du din telefon och klickar sen på Exit Recovery eller fix Recovey.

Du kan även med detta programmet starta en Start TSS Server som gör att du kan nedgradera telefonen i Itunes med hjälp av att din telefon är i Recovery mode fast att Itunes egentligen inte tillåter det.

Ett annat program som man kan få fram SHSH blobs är iFaith.

_____________________________

Nu när Iphonen är Jailbrekad så är det vissa program och paket som du behöver ladda ner för att kunna få programmera till telefonen.

Men det första du SKA göra när du har klickat på Cydia är att välja att du är en en utvecklare. Gör du inte detta så kommer du inte kunna se de programmen som du behöver ladda ner till telefonen. Har du råkat välja fel så kan du om du går in på Sköta sen inställningar välja om vad du är för något.

Det ena heter AppSync for iOS 6/ eller iOS 5.0+ beroende på jailbreak.

Det andra programmet som du behöver är Link Identity Editor(kan söka på ldid).

För att lägga in dessa två programmen så behöver du först lägga in sökvägar till programmet på nätet genom att klicka på sköta och sen källor.

AppSync URL för tillfället: http://cydia.myrepospace.com/Bl00dra1n/

Link Identity Editor URL för tillfället: http://apt.thebigboss.org/repofiles/cydia/dists/stable

 

I källor väljer du ändra och sen lägg till och skriver in adresserna för de två programmen. Andresena får du googla upp pga de brukar ändras rätt så ofta så att om jag skriver ut dem nu så kanske de inte fungerar om 1-2 månader.När du har lagt till de källorna så kan du söka på programmen genom att klicka på sök i Cydia och sök på AppSync och det andra programmet söker du på ldid.

Skulle du inte installera AppSync kommer du få följde felmeddelande i Xcode:

 

Med de två programmen installerat så kan vi gå till själva macen för att välja rätt inställningar i Xcode.

_____________________________

Xcode

Det första du måste göra för att få Xcode att acceptera din mobil är att ändra lite saker i deras register. Gå in i program mappen i macen och högerklicka på Xcode och välj Visa paketes innehåll.

Där efter klickar du på mapparna: Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/(de/dem iphone os som du vill kunna använda dig av mitt fall iPhoneOS6.0.sdk) och kopierar filen: SDKSettings.plist till skrivbordet för att kunna redigerar filen.

I filen redigerar du så att du har likadant som jag i filen på bild:

CODE_SIGNING_REQUIRED Ändras från YES till ON.

ENTITLEMENTS_REQUIRED Ändras från YES till NO.

AD_HOC_CODE_SIGNING_ALLOWED ändras till YES.

När detta är klart så flyttar du tillbaka din fil efter att du har sparat till den mappen den var i från början och överskriver den förra filen.

 

Nu ska du öppna terminalen på macen. Du hittar den i program/Verktygsprogram.

Där i skriver du följande:

sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist

Nästa sak du ska skriva är:

sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist

Du får ändra sökvägen så att

/Developer/SDKs/iPhoneOS5.0.sdk

stämmer med din sökadress. Som jag som har iphone med os6.0 får skriva den mappen jag har istället som är:iPhoneOS6.0.sdk

sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/SDKSettings.plist

Efter att du har skrivit in det så ska du skriva in detta med:

cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf "\xc3\x26\x00\x00" >> working /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original /bin/mv working iPhoneOS\ Build\ System\ Support chmod a+x iPhoneOS\ Build\ System\ Support

Nu kan du stänga terminalen och starta Xcode projekt istället i Xcode.

I Xcode ska du i dit projekt i build settings göra Följande:

I code Signing ska du ändra i undermenyn:

Code signing Identity till Don’t Code Sign

Debug till Don’t Code Sign

Any IOS SDK till Don’t Code Sign

Release till Don’t Code Sign

Any IOS SDK till Don’t Code Sign

VIKTIGT!!!!! Du måste ändra Don’t Code Sign på alla dina projekt du gör i Xcode för att kunna köra filerna.

En sak som inträffade mig som kan vara värt att veta är att efter jag har skickat över filen som jag har gjort en andra gång så kan Iphonen hänga sig om du inte tar bort förra filen och starta om mobilen.En gång hängde den sig så kraftigt att jag inte på något sätt kunde stänga av programmet. Skärmen blev svart och jag kunde inte se telefonen på datorn heller. Man kunde inte använda sig av de kommando som finns för att ta bort hängningar på iphonen. Det jag fick göra var att låta telefonen batteri ta slut. I och med att telefonen jobbade så tog detta en dag att suga ut ett fullt batteri.

För att undvika att detta inträffar en så kan man ha TinyUmbrella igång innan man kör Xcode. För skulle iphonen hänga sig så kan man snabbt innan usb slutar att känna av iphonen klicka på Enter Recovery så att iphonen kommer i recovery mode och sedan klicka på Exit recovery för att få mobilen normal igen.

_____________________________

Unity

Om du vill koda till Unity så behöver du först ladda ner Unity och sedan skaffa en nyckel som låser upp så att du får göra Iphone spel.

Om du har en för gamla Unity kommer du att få detta felmeddelande när du exporterar ut spelet till Xcode för att testa det på din Iphone:

Undefined symbols for architecture armv7:
“ConvertToUnityScreenOrientation(int, EnabledOrientation*)”, referenced from:
-[UnityViewController shouldAutorotateToInterfaceOrientation:] in AppController.o
-[UnityViewController willRotateToInterfaceOrientation:duration:] in AppController.o
-[UnityViewController didRotateFromInterfaceOrientation:] in AppController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Det finns två stycken program som du också borde ladda ner från app store. Programmen är gratis och heter Unity Remote och Unity Remote 3. De två programmen låter dig om du har iphonen i samma nätverk som din dator att streama spelet från datorn till mobilen. På så sätt kan du testa touchknappar och små tester istället för att göra en build till Xcode.

För att kunna göra en build i Unity så måste du skriva in lite information i buildern.

Du hittar en knapp som heter Player settings.

Klicka på den och ändra: Bundle Identifier till:

com.företags_snamn_eller_något_annat_namn.vad_spelet_heter

Tex: com.test.test

Du måste också ändra vilken sorts version av telefon du har. Detta gör du i Target iOS Version.

Du måste också se så att det står något på Company Name.

För att lättast bygga dit program så klicka build and run. Tar du bara build och sen öppnar din fil i xcode så kan det hända att du inte alltid kan exportera ut din fil utan det kommer upp ett fel istället.