Create an iOS app without a mac

Here are some notes on how to create the certificates and stuff to publish an app using windows and phonegap build only.

1. Install OpenSSL: http://slproweb.com/products/Win32OpenSSL.html

Make sure you have a OpenSSL config file set. If not, download this example config file. Save it somewhere, set environment variable to point to the file:

set OPENSSL_CONF=C:Program FilesOpenSSL-Win64openssl.cnf

2. Create a private key:

openssl genrsa -des3 -out ios.key 2048

3. Create a Certificate Signing Request:

openssl req -new -key ios.key -out ios.csr -subj "/emailAddress=email.address@xxx, CN=Firstname Lastname, C=COUNTRYCODE"

The csr-file is created: ios.csr.

4. Create a developer certificate using the created csr-file at: https://developer.apple.com/account/ios/certificate/certificateList.action

5. Download the newly created certificate (ios_development.cer)

6. Convert the developer certificate to a PEM certificate:

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

7. Generate the p12 certificate file:

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

8. Create provisioning profile for the app using the developer certificate at: https://developer.apple.com/account/ios/profile/profileList.action

9. In phonegap build, go to edit account, signing keys, add a key, upload the .p12 and the .mobileprovision files.

Note that you need either the mac applications XCode or Applicaton Loader to upload the app to itunes.