Tutorial Steps 5, 6 and 7; Newbie Developer Needs Help

Tutorial’s Step 6 offers a shortcut over Step 5, by eliminating creation of a “keystore” file. Also, Step 6 reduces the json file’s input to 3 lines.

The shortcut appeals to me because the “keystore” concept is new to me. I can’t tell a keystore from a storekey.

Why am I not well-versed in “signing”? Unfortunately, my first encounter with concepts such as “keys”, “signatures” and “certificates” came via interacting with Apple (via PhoneGap). That was a nightmare; I failed.

PLEASE ENLIGHTEN ME: What exactly am I compromising by use of a “one-time keystore”? Does bypassing Step 5 come at the cost of a possible future ramification? Is its relevance to future code modification?

For now I will forego the Apple Store, as per Step 7. It intimidates me; Notice that Step 7 assumes I can furnish certificates at the snap of my fingers; When in reality I’m afraid Apple will burn me again.

(I just went over to my Apple account and hit the button “Register a New Key”, just to “get a feel for it”, again. Apple’s opening page already greets me with alien terminology like “DeviceCheck”, “ClassKit Catalog”, “Apple Push Notifications service”, etc. - items I have to choose from, to proceed. Might as well talk Chinese to me. But I digress.)

So, for Step 6, I need 4 items:
Name, Group, Company and Country

But I’m a small developer - a one-man organization, working in my basement by myself. For androidDname, can I simply repeat my name “John Doe” as the 1st 3 parameters?

As for my country, do I write “USA”, “United States”, with a space? without a space? Is there no fixed way to write a country’s name?

Android

VoltBuilder can generate the keystore file on the fly if you supply the androidDname field. You can put just about any value in the fields: it’s unlikely anyone will ever look at them.

The keystore file uniquely identifies your app. When it is generated, it uses androidDname plus encryption magic based on the date, time and other info.

The problem with a generated keystore is that each time it creates a unique app. If you want to install a new build on a device with your last version, you’ll need to delete the old version first. It won’t realize you are just installing an update. The Google Play Store will also notice the new keystore and won’t let you simply replace your app there.

So, in the long run, you’ll be better off using your own keystore.

The VoltBuilder roadmap will add the ability to download the generated keystore so you can reuse it.

iOS

Generating iOS keys is much more complex than for Android. You need an annual subscription from Apple ($99/year). You’ll need to have both a .p12 and a .mobileprovision file. Most instructions for creating these files require that you have a Mac.

Here are PhoneGap’s docs for creating these files:
http://docs.phonegap.com/phonegap-build/signing/ios/

The VoltBuilder roadmap will add features to help create these files.

Thanks for this vital information.

Indeed, then, the keystore file is important in case the same app were to undergo future modification.

The other thing I gather is that all the parameters originally supplied to generate the keystore, musn’t be lost; They need be stored away in some personal file, to be later retrieved in case that app were to undergo modification.

Personally, I don’t foresee changing my app, inasmuch as I’ve spent considerable effort getting everything right. But because of potential upgrades later on, expected or unexpected, it may well be worth the effort to get an original keystore file, for its reusability. To acquire Android’s key, I expect it’ll be easy enough.

The only question I still have, is with Apple. Suppose I want to modify my app 5 years later. To keep my app in Apple’s Store over that 5-year stretch, must I pay for year 1 ($99) plus every year thereafter (= $495); Or, can I get by with the 1st payment and then pay $99 the year I decide to modify, year 5 (= $198)?

I’d pay the $99. In a year, decide what to do next.

I’ve got another question, about Step 7.

It says,

Both Android and iOS fields can be in voltbuilder.json at the same time.

Okay, so I can put both Android and iOS parameters in the same json file. That’s fine because most parameters have appropriate prefixes to differentiate them. And the “release” parameter is usually the same for both, so it need be included only once, I suppose.

But what about the “platform” parameter; How will the system decide which of the two to use?
"platform": "ios"
"platform": "android"

That will go away soon - but set it properly for the build you are doing for now.

Just discovered the answer to my own question.

The only question I still have, is with Apple. Suppose I want to modify my app 5 years later. To keep my app in Apple’s Store over that 5-year stretch, must I pay for year 1 ($99) plus every year thereafter (= $495); Or, can I get by with the 1st payment and then pay $99 the year I decide to modify, year 5 (= $198)?

I had already paid my $99 to attain Apple’s “developer” status, but failed getting my app up there. Here I’m trying with Volt. Expiration of my “status” that I paid for I knew was looming … and sure enough, I get this in my email:

Dear ,

Thank you for bringing your creativity and innovation to Apple platforms.

Please note that your Apple Developer Program membership expires in 30 days. Renew your membership to keep your apps on the App Store, submit new apps, utilize advanced app capabilities, and get personal technical support.

Frankly, I feel Apple should be paying us for keeping our apps in their store.