Getting your KuneriLite Flash mobile app ready for Ovi Store
Author: Maxim Antinori
One of the most confusing aspects of getting a Flash-based Symbian app out there is navigating the process of getting your app signed. If you work with 3rd party tools like KuneriLite, it can be even more, uh, interesting. But if you like using Flash with services like GPS, upload/download, etc and find Nokia Platform Services aren’t cutting the mustard, KuneriLite can save the day. A fully-signed .sis is required by mobile storefronts such as Ovi, so this blog entry will run through the process of signing a Flash Lite app made using KuneriLite plugins. At the end, your sis will be ready for submission to Ovi, and you will be only slightly less sane than you are now.
I could just list a bunch of links to FAQs, forum discussions, pdfs, etc, but hey, that’s what makes this whole thing confusing in the first place! So I’ll just go through the steps I followed, with a few screenshots and comments along the way. Strap in and enjoy the ride! This is based on my experience getting my Species Explorer Mobile app signed and up to Ovi. Note that all this is based on a Mac OS environment, PC users adapt as needed
Although actually you’ll need both Mac and PC environments to go through it all. But hey, real developers have three of each right, plus a Droid, iPhone, 3 N97′s etc.? Just kidding, sort of.
1. Get TC TrustCenter Certificate
Unless you’re self-signing, you need one of these to sign your app (in my case Express signing). Go to TC TrustCenter and get your certificate and publisher ID. You’ll have to pay $200, provide your business and contact details. You also will have to provide some kind of proof of business validity, eg articles of incorporation (gasp!) or some other legal doc. And you’ll have to fax it (gasp again!) over to the friendly folks (they are actually) in Hamburg, Germany to process. They have a rule about if your articles are older than a few years (which mine were) but if you’re registered with Dun & Bradstreet as a biz that’s also good enough for their needs. I was so my application went through.
After sending in your application (they won’t deduct your $200 until you’re approved, btw) and being approved, which can take a few days, you’ll get an email with a link to retrieve your certificate. Once you go to that link, click the “Install Certificate” button, the cert will download, and Keychain Access utility (again we’re on a Mac folks!) will launch and prompt you whether you’d like to add your cert to a keychain. I chose login keychain, not sure it matters.

2. Make .cer and .key files
While you’re still in Keychain Access, it’s time to export the .p12 key file you’ll need in order to generate the .cer and .key files you’ll need to plug into KuneriLite for our next step. So click on My Certificates in Keychain Access, find your brand spanky new TC Trustcenter Cert, expand it to see the key, right-click and choose Export…a picture is worth a thousand words so:

Now, did I mention that although I said we’re doing this on a Mac, I presume you have a PC emulator or real PC available to handle a few little things? Well, if I didn’t mention that, sorry, but you do. So fire up that PC (or Parallels or what have you) and go grab a little tool called TC-ConvertP12 (don’t pc tools have such warm and fuzzy names?) and unzip it. Now copy your .p12 file from earlier into the TC-ConvertP12 directory. Open the command console, navigate to that directory, and type in the command to generate the .key and .cer files you need. Use the password you entered when you exported the .p12 file (you DID write that down right?).

Once you execute, you should get a nice success message:

You should now see your .cer and .key files in that same directory, eg “myApp.cer”, “myApp.key”. Whew! Now on to KuneriLite!
3. Buy KuneriLite professional and plugins. (oh, you’ll need a PC/PC-emulator again, as KL is PC-only)
In order to use KuneriLite plugins in a signed application (that is, not self-signed), you’ll need to buy KuneriLite Professional. Some notes about why this is so are available here. But besides the general recommendation that users will always see a warning if it’s self-signed, if you use GPS plugin you need it signed, and Ovi won’t take self-signed applications. And if you’re targeting 5th edition phones, you WILL need to buy the latest KuneriLite (in case you’re like me and had the old KL that just was for 3rd edition phones) which as of this writing was 0.9.8. So…onward to the KuneriLite store. Pay your 250 euros, tell them what plugins you want to use, and provide your UIDs needed for those plugins. “Huh?” you say? Oh, yeah, you’ll need a bunch of UIDs assigned from Symbian to give the KuneriLite guys to apply to your unique set of plugins they will be sending you after you purchase KuneriLite Pro. There’s some info about this provided on the checkout page, but basically what you need to do is…
4. Get UIDs for KuneriLite plugins and application
Go over to SymbianSigned.com and login or register as a developer if you haven’t already. Once logged into your account, choose UIDs from the left hand menu. If you already have a bunch of UIDs you’ve requested previously, select as many as you need (info you should have gleaned from the Kuneri notes on the Kuneri store checkout page above), making sure they’re from the PROTECTED RANGE, and write them down, or copy and paste them into the KuneriLite checkout form “UIDs” field. You’ll also want need one more UID of course, again from protected range, for your application itself.
If you don’t have any UIDs yet, just click the “Request ” link in the left UID submenu, choose protected range, tell them how many you need, and within moments you’ll see a range of UIDs for your app-signing pleasure.

5. Complete KuneriLite Pro purchase
After submitting your purchase form, with UIDs provided, to KuneriLite, you’ll get an email from them with a link to download your plugins and instructions on what to do with them. It amounts basically to making sure the plugins get their own special directory in your KL install directory, that this directory is referenced in the KL wizard when you compile your .sis package(s), and that the special ID you were assigned by KL is used properly in your actionscript when you make your calls to any KL plugins. In actionscript then, this would look something like “http://127.0.0.1:2001/dXXXX/” as the URL prefix to use. Note the port 2001 which is different than the port used in KL Basic.
6. Compile your .sis using KuneriLite Pro
Once your custom plugins have arrived and been placed in their own directory as described above, fire up KL, create a project, and select options for that project from the first project screen. For me it meant selecting 5th edition phones, and FL 2.x/3.x (my app wouldn’t work on 3rd edition phones as it was a touchscreen app). Select the plugins you’ll be using, then click forward through the next screen (if you have files to add, do so on that screen, otherwise just go to the “Create SIS” screen). Finally you’re ready to point to that .cer and .key file you made earlier! Go ahead and click on the browse to file button next to those fields and set the paths. Also make sure the “KL Path” field is pointing to the “rsc” directory within your custom plugin directory. And put the main UID for your app in the appropriate field as well. Make sure your custom app icon is assigned (an .svg graphic file 44x44px), version number set, title set, etc. So basically it’ll look something like this:

Also fill in your Publisher ID in the “Vendor” field (see below for note about how to find that if you don’t know what this is). When all looks well, click the compile green arrow button, and if Kuneri is happy with everything you’ve told it, you’ll get a success message at the end. Within the project folder you’ll find a couple new .sis files: one with a “signed” tag and one with “unsigned”. The “signed” one is the one you will be needing to send off to Symbian to get Express signed in the next step (unsigned one is needed for Open Signed Online, btw, so hold on to that one too), so let’s get to it!
7. Submit application to Symbian Express Signing
There’s several options available for signing your app at Symbian. To go into them all here would make my already fragile head explode, so suffice it to say that Express signing is the most expedient and straightforward, so we’re going with that here. BEFORE moving ahead though, it’s worth testing out your app first using Open Signed Online which is comparable to full signing except it’s locked to an IMEI number, ie one specific phone.
Ok, your app tests well and ready for the real thing? Go back to your SymbianSigned.com account, and purchase an “Express Signed Content ID” for $20. One of these is needed for every signing submission. So click on that option on the left menu. If that option doesn’t exist, it probably means you don’t have a Publisher ID assigned yet. But if all is well this option will bring up a menu letting you select how many content id’s you’d like (apparently no discount for quantity!) and you will be directed through PayPal to complete your purchase.
Once you have at least one Content ID available in your Symbian Signed account, you can choose the Submissions option on the left menu, choose Express Signed, and you’ll be presented with the first page (oh yes, there’s more than one) of the submission form. Before you even get into filling out the form though, you’ll see at the top a field asking for a zip file, “File (only zip-archives are allowed)”. This is where you’ll be posting your zip archive of your submission package. What’s that? Well, we have to make it!
8. Make zip submission package
The zip archive submission package must consist of the following, most of which is created by KL when it compiles your app:
- your signed sis (from KuneriLite)
- release.txt (from KL, you can edit more if needed)
- generated.pkg (from KL)
- pdf “manual” describing your application (can be named anything you like)
The generated.pkg file is the one that KL created during the compiling step. If you forgot to add your Publisher ID in the “vendor” field when compiling, you can make that tweak by editing generated.pkg. Open it in your favorite text editor and find the following couple lines:
;Localised Vendor name
%{"Vendor"}
;Unique Vendor name
:"Vendor"
You’ll need to replace “Vendor” with whatever your Publisher ID is. Took me a while to realize this is simply the same as what’s listed as your “Distinguished Name” in your Symbian account settings. Now you’re almost ready to zip this up. Oh, what about that pdf? This can be pretty simple, even a one page pdf describing your app. I believe it’s potentially used by Symbian internally for reference, ie it does not get delivered in your final signed .sis (so don’t worry about users having to download some huge doc in addition to your app). So fire up Word, or whatever, and export a pdf to include as part of the submission package.
When you have all four items ready, zip it up and you’re ready to fill out the rest of the Express Signed submission form. Select your zip file when prompted in the form, and fill out the rest of the details on the contact page. When you click Step 2:Application Info, your zip will be uploaded and checked for validity. If it passes, you’ll see the next page of the form. Otherwise, you’ll get some error message telling you what’s wrong with your upload package.
The Application Info page of the form is pretty self-explanatory, fill out the appropriate fields, pick your target phone to be used for internal testing, license, category and name of app, etc. The next page, “Application test result”, is where it gets more interesting. You will want to go over KuneriLite’s page about how to answer some of the test criteria questions. The first page of test criteria should most likely be all pass, with the Kuneri stuff coming into play on the next set. You can jump back and forth between the form and the KL info page to answer appropriately. The one not listed on the KL page for some reason was use of the Camera plugin, which requires you to fill out Yes to the “UserEnvironment” section and provide an explanation, eg “uses camera with KuneriLite”. For some reason in my experience there are two boxes provided for your explanation, and only the second field seemed to be used (ie using the first field to fill in your description brings up a form error upon submitting) so Symbian web site bug?
Anyway, once you click “Finish” to submit the form, it will process your submission (bye bye Content ID credit!) and then show you a link to download your shiny new signed sis. You will also see a note that your submission may be “audited” at a later date, and if fails, the hounds of hell will be set upon you…or something. Your submission(s) will now be available under the My Applications area, so can be downloaded later. And if you do a future submission, you can use an existing application as a “template” for your new submission form. So enough about Symbian, let’s move on to Ovi!
9. Submit to Ovi Store
Well, before jumping into Ovi-land, it’s probably a good idea to do some more testing to make sure everything is as it should be. So test again on all your target devices, installing the Express-signed sis you just received. Also if you don’t have a basket of actual devices to test with, try making use of Nokia Remote Device Access Service (you need to be signed up as a Forum Nokia Developer). With Nokia RDA, you can pick and choose from the whole range of Nokia phones to test your app. It works as a java applet that connects to remote (literally, they’re sitting in a big room in Finland) devices, install your sis, and test as if it was sitting in your hand. Very useful in my experience.
Assuming all has gone well in your final tests, you’re ready to submit to the Ovi Store. Now before you get too excited, I should say right off the bat that I’m not going to give a detailed walkthrough of the Ovi process like I have with everything up to this point. The main reason is, it’s actually very well presented on the Ovi site. Once you are registered and logged in, there’s a checklist right there on the main publisher page detailing all nine things to check off before your submission is ready to be sent to Ovi QA. So to get started, register as an Ovi Publisher, or login if you are already signed up.
Going through the Ovi checklist includes some things you already should be familiar with, and otherwise are straightforward, like uploading app icons, picking devices you have tested your application on (and consequently will be tested with in order to pass Ovi QA), picking a price point (if any), countries to distribute to, contact and support info, etc. And most importantly, you have to upload your newly signed .sis, “lock” your distribution details and get the Ovi QA ball rolling.
Within some amount of time, several days on average, you’ll get a response from Ovi QA on whether your app has passed. If it does not, you’ll get a friendly message from Ovi via email and in your account page detailing why it did not pass and what needs fixing. So things like how it handles autorotation, memory, app exiting, etc will be looked at. But you’ve already tested for all that, right? ![]()
If you’re application passes QA, then…well, let’s just save that for another blog entry. I have blisters on my fingers. But in the meantime, sit back and watch this relaxing video titled Ovi Store 101 which covers some basics. Also Bill Perry’s slide preso may be of interest.
Finally, I should mention that this isn’t the only way to go through this process. There are other tools for various steps in the process, and in fact if you don’t want to use KuneriLite, there’s SWFPack as well, an online solution to packaging your Flash swf into a signed sis. And that solution may be ideal especially if you don’t need the plugins. If other folks in the Flash Lite community have corrections or additions they think would help fill out this entry, feel free to comment.