Hvordan kan jeg udvikle til iPhone ved hjælp af en Windows-udviklingsmaskine?

Er der nogen måde at arbejde med iPhone SDK på en Windows-maskine på? Er der planer om en iPhone SDK-version til Windows?

Den eneste anden måde, jeg kan komme i tanke om at gøre det på, er at køre et Mac VM-image på en VMWare-server, der kører på Windows, selv om jeg ikke er helt sikker på, hvor lovligt det er.

Det er bestemt muligt at udvikle på en Windows-maskine, faktisk blev min første applikation udelukkende udviklet på den gamle Dell Precision, som jeg havde dengang :)

Der er tre veje;

  1. Installer OSx86 (aka iATKOS / Kalyway) på en anden partition/disk og dual boot.
  2. Kør Mac OS X Server under VMWare (Mac OS X 10.7 (Lion) og fremefter, læs opdateringen nedenfor).
  3. Brug Delphi XE4 og macincloud-tjenesten. Dette er et kommercielt værktøjssæt, men komponent- og lib-understøttelsen er voksende.

Den første rute kræver, at man ændrer (eller bruger et allerede modificeret) image af Leopard, som kan installeres på en almindelig pc. Det er ikke så svært som man skulle tro, selv om forholdet mellem succes og indsats afhænger af, hvor tæt hardwaren i din pc svarer til Mac-hardwaren - hvis du f.eks. kører en Core 2 Duo på et Intel-moderkort med et NVidia-grafikkort, så er du grineren. Hvis du'kører med en AMD-maskine eller noget uden SSE3 bliver det lidt mere indviklet.

Hvis du køber (eller allerede ejer) en version af Leopard, så er det en gråzone, da Leopard EULA'en siger, at du kun må køre den på en "Apple Labeled" maskine. Som mange påpeger, hvis du klistrer et Apple-mærkat på din pc, er du sandsynligvis dækket.

Den anden mulighed er mere bekostelig. EULA'en for arbejdsstationsversionen af Leopard forhindrer, at den kan køres under emulering, og som følge heraf er der ingen støtte i VMWare til dette. Leopard server KAN derimod køres under emulering og kan bruges til desktopformål. Leopard server og VMWare er dog dyre.

Hvis du'er interesseret i mulighed 1) vil jeg foreslå at starte på Insanelymac og læse OSx86-afsnittene.

Jeg synes dog du skal overveje om den tid du vil investere vil være de penge du vil spare værd. Det var det for mig, fordi jeg nyder at pille ved den slags ting, og jeg begyndte under de tidlige iPhone betas, måneder før deres App Store blev tilgængelig.

Alternativt kan du købe en Mac Mini med lav specifikation fra eBay. Du behøver ikke mange hestekræfter til at køre SDK'et, og du kan altid sælge den videre senere, hvis du beslutter dig for at stoppe udviklingen eller købe en bedre Mac.

Opdatering: Du kan ikke oprette en virtuel Mac OS X Client-maskine til OS X 10.6 og tidligere. Apple tillader ikke, at disse Client OS'er virtualiseres. Med Mac OS X 10.7 (Lion) og fremefter har Apple ændret sin licensaftale med hensyn til virtualisering. Kilde: VMWare KnowledgeBase

Kommentarer (7)

SDK'et er kun tilgængeligt på OS X, hvilket tvinger dig til at bruge en mac. Hvis du ikke ønsker at købe en mac, kan du enten køre OS X på en virtuel maskine på din Windows-boks eller installere OS X på din pc.

Min erfaring er at løsningen med den virtuelle maskine er ualmindelig langsom (på en core2 duo laptop med 2G ram). Hvis du har lyst til at prøve det så søg efter torrent. Det'er nok ikke umagen værd.

Den anden mulighed er at installere OS X på din pc, almindeligvis kaldet en hackintosh. Hackintosh'er fungerer ganske godt - min ven har lige solgt sin mac, fordi hans Dell quad core hackintosh faktisk var meget hurtigere end æblehardwaren (og kostede ca. 1/3). Du kan finde masser af artikler om hvordan man gør dette; her er en om hvordan man installerer på en Dell Inspirion 1525 laptop: hackbook pro tutorial

Selvfølgelig er begge disse muligheder sandsynligvis i strid med en eller anden licensordning, så fortsæt på egen risiko.

Kommentarer (2)

Du kan bruge WinChain

Citat af projektsiden:

Det er den nemmeste måde at bygge iPhone-værktøjskæden på en Windows XP/Vista-computer, som igen kan tage Objective-C-kildekode, som du skriver ved hjælp af deres UIKit Headers (inkluderet i winChain) og kompilere den til et program, som du kan bruge på din iPhone.

Kommentarer (2)