donderdag 17 november 2011

Phonegap en iOS certificaten op Windows


Ik ben onlangs wat aan het experimenteren geslagen met Phonegap. Dit is een framework waarmee je HTML5 applicaties kunt compileren naar apps voor iOS en Android. Als je alleen een Windows pc hebt, en geen Mac, is de cloud compiler van Phonegap een zegen. Helaas is het systeem voor het genereren van certificaten niet zo simpel in Windows. Ik ben echt dagen bezig geweest om alles uit te zoeken.

Phonegap heeft een p12 bestand, een provisioning profile en een certificate password nodig om iOS apps te kunnen compileren.

Meld je aan op http://developer.apple.com en ga naar het Provisioning Portal (let op: gebruik bij voorkeur Chrome als webbrowser).

Eerst moet je je test toestellen toevoegen. Klik op Devices, kies een naam en voeg de Device ID toe. Deze ID kun je vinden door met je toestel naar de mobiele website http://m.diawi.com te surfen. Je kunt maximaal 100 toestellen toevoegen.

De volgende stap bestaat er in om het Signing Certificate en het Mobile Provisioning Profile te genereren. Op een Mac is dit simpel (via de keychain toepassing). In Windows gebruiken we OpenSSL hiervoor.

Download en installeer OpenSSL Light op http://www.slproweb.com/products/Win32OpenSSL.html.
Best mogelijk dat je ook de C++ Redistributables moet bij installeren.

Open een command prompt en verander de directory naar C:\OpenSSL-Win32\bin.

Tik dan:

set RANDFILE=.rnd
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

(uiteraard pas je het pad aan als je OpenSSL ergens anders hebt geplaatst).

Nu genereer je je private key. Tik:

openssl genrsa -out mykey.key 2048

En dan:

openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=mijnemail@domein.com, CN=MIJNFIRMA, C=LANDCODE"

Pas uiteraard de voorbeeldparameters aan.

Ga dan naar Certificates in het Provisioning Portal. Klik op de "Request Certificate" knop.

Upload het bestand "CertificateSigningRequest.certSigningRequest" and start het generatieproces van het certificaat.

Download het gegenereerde certificaat (developer_identity.cer) in de OpenSSL-Win32\bin directory.

De volgende stap is het omvormen van dit .CER bestand naar een P12 certificaat:

openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

En dan:

openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

Kies een paswoord en onthoud het goed. Vervolgens wordt het bestand "iphone_dev.p12" aangemaakt. Dit is het eerste bestand dat we nodig hebben.

Om een mobile provisioning file te maken, moeten we eerst een App ID aanmaken. Ga naar de App ID sectie op het Provisioning Portal.

Kies New APP ID, tik een beschrijving en gebruik "*" als bundle identifier.

Nu koppelen we alles aan elkaar. Ga naar Provisioning en kies New profile. Kies een naam voor het profiel, het certificaat dat moet gebruikt worden, de AppID en de toestellen waarop je de applicatie wilt laten draaien. Kies Submit en download de .provisioning file naar de OpenSSL-Win32\bin directory.

Je hebt nu voldoende gegevens op via http://build.phonegap.com een iOS IPA bestand aan te maken. Om een test link naar je gebruikers te sturen, kun je de website http://www.diawi.com gebruiken.

woensdag 16 november 2011

WeTab


Op eBay heb ik een WeTab op de kop getikt voor 200 euro. Deze pad komt met het WeTab besturingssysteem, maar je kunt er ook Windows op installeren.

Dit leek me een goed moment om eens wat te spelen met de testversie van Windows 8, en om er als tweede besturingssysteem Android 3.2 op te plaatsen.

Om dit te doen moet de WeTab eerst een ander BIOS krijgen. Ga naar http://linuxmirror.pherzog.net/wetab_community_downloads/ en download biosstick.zip.

Download vervolgens Imagewriter vanop http://launchpad.net/win32-image-writer en gebruik dit programma om het IMG bestand uit de voorgaande ZIP op een USB stick te schrijven.

Stop de USB stick in een USB poort, zet de WeTab aan en druk van zodra het blauwe lichtje brandt op de AAN knop en op de quickstart knop linksboven samen. Laat los van zodra je activiteit ziet op je stick. Je hebt wel een USB keyboard nodig om de update te doen. De instructies op het scherm zijn duidelijk.

Na de installatie van de BIOS update krijg je bij een reboot nu twee knoppen: BBS (boot menu) en BIOS, welke met het touch screen zijn aan te klikken. Ga in de BIOS en zet de AHCI mode voor de SSD drive op actief.

Download het 32 bits Windows 8 image bestand vanop http://msdn.microsoft.com/en-us/windows/apps/br229516. Gebruik Microsoft's eigen USB Image Tool om dit bestand op een USB stick te plaatsen.

Reboot de WeTab en start de installatie vanop de USB stick. Wis alle partities.

Windows 8 herkent zo goed als alle hardware. Er moeten nadien maar enkele drivers geïnstalleerd worden. Deze kun je vinden op http://linuxmirror.pherzog.net/wetab_community_downloads/windows_7/driver/

Installeer alle drivers als Administrator en in de Windows 7 compatibiliteitsmodus. Hanteer deze volgorde:

1. Chipset driver (00-Chipset.zip)

2. Mobile Partner software - de modem driver en programma om met een SIM kaart op het internet te gaan (Mobile_Partner_13.001.08.04.538.zip)

3. Bluetooth en WLAN driver (04-BT_WLAN.zip)

4. G Sensor Driver (07-G-Sensor.zip)

5. Millennium - het controlepaneel voor de GPS, rotatie, WLAN, Bluetooth en helderheid (10-Millennium_3.2.zip)

Na de installatie van Windows 8 voeg je Android toe op de WeTab.

Het Android 3.2 pakket kun je vinden op http://uploaded.to/file/pw6v93bo

Ontzip beide directories uit het ZIP bestand naar de C: drive van de WeTab.

Download EasyBCD vanop http://www.chip.de/downloads/EasyBCD_23603661.html en start het programma.

Kies "Add New Entry" - "NeoGrub" - "Install".

Kies links "Edit Boot Menu" en selecteer het default OS.

Geef "Neo Grub Bootloader" een nieuwe naam, bijvoorbeeld "Android 3.2".

Sluit EasyBCD.

Kopieer "menu.lst" uit de "grub" directory naar C:\NST.

Klaar is kees! Bij een volgende reboot krijg je nu een menu, waar je kunt kiezen tussen Windows 8 en Android 3.2. De keuze maak je door kort op de quickstart button te drukken. Lang drukken bevestigt je selectie.