Wednesday, November 14, 2012

[AIR] Post-mortem iOS development via PC


Adobe AIR is great way to build application on iOS and apply to Android in a blink (yes, you still need sometime to adjust screen size and else), and also PC is cheapest way to build the app, let see what went wrong while developing 'til publishing to store.

Possible to develop iOS on PC?

Yes! here's your choices.
  1. VMWare // geeky find proper installation step (try google for it),  slow as hell, but fine to use for create certificate and upload binary ipa via Application Loader.
  2. UniBeast // super geek installation, you can break your computer in every step, but when it's done it just working just like pricy Mac.

Can app really be done with AIR?

After distribute plenty of my clients app...I've to say yes! but keep in mind that...
  1. Must keep 60fps steady on desktop version as possible, you will get not much trouble when deploy to device.
  2. Must use Flash Builder profiler and/or Monocle to find what cause your app hang up.
  3. Must build and test via real device as much possible.
  4. ANE is best way to deal with anything that AIR can't do. only cons for ANE is fragmentation of iOS version and some ANE still require iOS SDK while build.

Do we need certificate?

You obviously need it for distribution (yes, you can hack for development process certification, but don't ask me how, just paid for it dude) In my case is super fancy, my first development certificate is create via PC command line,  distribution certificate via VMWare Lion and finally import both to UniBeast PC Mountain Lion, Don't follow me on this one ;p
  1. To get some just follow this guide : http://help.adobe.com/en_US/as3/iphone/WS789ea67d3e73a8b2-240138de1243a7725e7-8000.html
  2. Try understand work flow : http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/10-Configuring_Development_and_Distribution_Assets/identities_and_devices.html
  3. Must back up your certificate, in some cloud to be save. // for PC .p12 with password should be enough, in Mac better export all at once save it somewhere. 
  4. If your client need to publish as their company name do ask them to provide distribute certificated.

Can we do In-app purchase?

Sure! for now you need ANE for that, good news is it's free! but...
  1. Must not use Jail broken device for testing. // i think this is undoc ;p
  2. Must include products before submit binary via App detail page. // this will waste your time for a month and also chance to get money if you miss this step because you have reupload binary and queue for review all over again! if it not appear then just upload binary -> reject it yourself -> edit button will appear behind In-app purchase topic -> check what product you will include via check box, yeah all sound weird but just work and don't ask me why just do it!
  3. Must remove any transaction in all case. // or you will get infinite loop yelling for "You've already purchased this but it hasn't been downloaded"
  4. Consumable product won't get reject while create product but Non-Consumable product will get reject if you binary didn't upload yet.
  5. Your product can get reject separately from Application reject, review process seem to be separated BTW.

My application rejected!

do/don't :  https://developer.apple.com/appstore/resources/approval/guidelines.html
  1. Must upload binary within 150 days after named your application, if not you will then be available for another developer to use.
  2. Must have offline mode for tester, especially if your app need Facebook, in short  make any authentication as optional.
  3. If you target iPhone, your app must working via iPad3, iPad4 too! // woot! in my case my client didn't paid for iPad version but i still need to make it work or get reject!
  4. Must use developer name not client name. // my client didn't provide certificate for distribution, so i use client company name instead of my company then it conflicted and get reject.
  5. Must not refer to Android in all case. // even your app can use and/or communicate between iOS and Android, you just can't say it...wooooot!
  6. Comment on Resolution Center will get answer back after 3 days pass and usually nothing but kick you to Appeal page. // in my case i just can't wait for appeal process that i never know how long it gonna take, so i just fix #3 and re submit new binary
  7. Binary Review process took around 14 days usually, update version is vary 1 day for fastest record, and FYI that they also work weekend. // My app get reject on Sunday lol
  8. AIR 3.5 + Default-568h@2x.png 1136x640 will trigger iPhone5 compatible and you will need screenshot for that.

Notes

  1. Your app will list via iPad even you target iPhone.
  2. Your app will appear in search result around 24hrs after ready for sale state.
  3. Don't cry and/or angry when you get rejected, It didn't help and you will get use to it soon. ;)

Tips

  1. It's easier to take screen shot via Mac by Xcode via Organizer window.
  2. To track user behavior do try use https://developers.google.com/analytics/devguides/collection/other/flashTrackingSetupFlash#useAnalyticsLibrary
  3. To transfer file to/from device to/from PC/Mac i use iFunbox
  4. For free cloud hosting perfect for testing i use hostzilla
  5. For free private SVN hosting i use ProjectLocker
  6. For cats lover do try http://instagram.com/katopz

FYI : I will add some screenshot for each topic really later #fingercross ;p

10 comments:

13Flo said...

Hi katopz,

Thank you. That's one of the most useful post I saw these last times!

In the certificate section, you should refer to this page on gotoandlearn, which is very usefull to create a .p12 on Windows:
http://www.gotoandlearn.com/play.php?id=133

I'll publish my app on the AppStore soon and will probably (I hop not) come back to you with some questions :)

Regards

Christophe said...

Good luck :)

I will send my app tomorow !

can you explain (or give a link) about this ?
"AIR 3.5 + Default-568@2x.png 1136x640 will trigger iPhone5 compatible and you will need screenshot for that."

katopz said...

it's here http://blogs.adobe.com/airodynamics/2012/11/07/deploying-air-apps-on-iphone-5/ btw it seem like adobe missing typo "h" there (must be "Default-568h@2x") and they just fix it (see comment below there), so i've to update my post here too.

Florian Bernard said...

katopz,

I'm not sure to understand this point: "Must include products before submit binary via App detail page."

Does that mean we simply need to upload the app without any "buy" button, including all features?
What do you mean by "if it not appear"?

If so, once the first binary is validated, do we need to upload a new binary and wait again for 15 days to publish the "real" version?

Thank you

katopz said...

Hi Florian,

You have to upload with your "buy" feature, they will test it in sandbox mode then they will allow it to app store "just like that" if it work in sandbox mode and leave you with never work buy button there because you didn't include your products just yet.

if you can't wait, just do what it said there "upload and reject your binary and add product will appear in App detail page"

let me remind you guys again it's in "App Details" page.
don't ask me why it's not in "Manage In App Purchases" page.

hth

13Flo said...

katopz,

Thank you for your quick reply.

1. 'and leave you with never work buy button there' -> What does that mean? I don't understand...

2. 'if you can't wait, just do' -> if we can't wait what? We anyway need to wait the 15 days, isn't it? I understand the process to manually reject the binary, but I don't understand the advantage of doing that.

Your feedbacks are really interesting, but if you could be more clear, that would be great! I'm sure it looks obvious for you, but when you're not familiar with that, it's definitely not! :)

Thanks

katopz said...

Hi 13Flo,

1. it mean when real user (not tester) click "buy" button it won't work because your products aren't there because of nothing to buy.

2. i mean another 15 days (you reject by your self mean "0" day, but if you wait to upload new binary will take 15 day)

i think you have try to understand.

btw, if it so obvious i won't blog it :)

13Flo said...

Ok I better understand.

So if I resume the whole process:
1 - Upload a binary including "buy" buttons and purchasing working with a test account (sandbox mode)
2 - Right after, manually reject the binary. That will activate the Add button in the App details page (we agree this is weird but useful and not "illegal")
3 - Check the products to include in the App details page
4 - Upload the binary again and wait for the approval (~15 days)
5 - Once approved, the app is ready and In App Purchase possible (and no need to upload/wait again)

Could you confirm?

There's still one thing I'm not sure about in my case: if I go to iTunes Connect, then click on "View details", at the bottom of the page I have In-App Purchase > Edit button and I can already select my products, has you can see here: http://dl.dropbox.com/u/10483409/AppDetailsPage.PNG I've never uploaded any binary yet and don't have any other app registered.

Shall I simply select my products and simply upload the binary without rejecting it myself?

Many thanks katopz!

katopz said...

yes, it happen to me just like that :)
btw, in your case you already have checkbox so just check it! no need for work around in working case! (it's not 1st version i guess?)

not sure you are just lucky and/or process is already changed and/or this happen only in some case...whatever they keep changing anyway ;)

in short : no reject need for you! reject only when is "edit button" is disappear.

13Flo said...

(it's not 1st version i guess?) > I've never uploaded any binary yet and don't have any other app registered. I'm in the "Prepare for upload" state.

Maybe Apple updated iTunes Connect since your last upload? Happy to see it would be simplier in my case!

Thank you so much. I'll let you know. in few days/weeks.