Since I just released a new Android version of Monster Cache, this confusing process is fresh in my mind. So I thought I'd jot it down for reference later, and for others.
When you want to upload a .apk file to the Google Play store, it has to be signed and zip aligned. The .apk that Eclipse normally generates and that I send to people for testing can not be uploaded. Instead, you have to follow these steps to prepare the .apk for uploading
1) You have to set android:debuggable="false" in your AndroidManifest.xml before you can create the signed .apk. So do that first.
2) In Eclipse 3.7.2, choose File/Export...
3) The first part of the wizard shows a list of folders. Choose "Export Android Application" in the Android folder
4) In next step, browse to select your project. At this point, you'll get a warning if your manifest is still set to allow debugging. Otherwise, it should say "No errors found. Click Next"
5) This is the confusing part. A keystore is a password protected file that holds keys that each have their own password. So if you need to make a keystore, choose "Create new keystore" and choose a location for it and a password for the keystore file itself. Then you'll create the internal key (aka alias?) and give it a password too. If you've already created one, then just specify its location here and type in its password. The rest of these steps assume you had an existing keystore.
6) Once you type in the password for your key store, choose your Alias/Key and type in its specific password
7) Last step of the wizard is to specify the location for your signed .apk file. I name mine with the version and Signed, like MonsterCacheV120Signed.apk
8) The .apk file still needs to be zip aligned. The zipalign.exe file is somewhere in the Android SDK folder. Sorry, I don't remember where. I copy it to the same folder as my .apk file
9) Open a command prompt in folder where you have the .apk file and the zipalign.exe
10) Run this command
zipalign 4 <infile> <outfile>
So for example
zipalign 4 MonsterCacheV120Signed.apk MonsterCacheV120SignedAligned.apk
11) Now you have a signed and aligned file that can be uploaded to the Play store
Showing posts with label android. Show all posts
Showing posts with label android. Show all posts
Sunday, July 28, 2013
Sunday, March 17, 2013
Promotion ideas
As I mentioned, we had 21 players when iOS launched two weeks ago (we decided not to hide anyone on leader board based on activity, yet). Kent and I sent out some emails and Matt has been telling people, and now we're up to 36. Still not growing as fast as I'd hoped, so now we're talking about some other promotional ideas. So far,
- I ordered 1500 color business cards from Vistaprint to hand out to people at Planet Comicon, or anytime. They always have great deals on business cards. We uploaded our own design, full color, front and back. 1500 was around $50 with shipping using one of their coupons. Here it is:
- Matt has this week of for Spring Break, so he wants to put up some fliers at some game stores and other places. So I made a basic black and white flier that I think looks okay.
- We looked into printing 8x10 card stocks pictures of monsters to sell at Planet Comicon. They were about 50 cents each online, but it seems scary to order online without seeing finished product. And that was for a batch of 100 of same picture. Kathleen found we could get 5x7s at Kinkos for about the same price, but in smaller batches of 25 per picture, and we can see before we order. So we'll do that and get 100 to try to sell for $5 each at show
- Also going to get a banner to hang on table at show for around $50.
- Kathleen still hasn't sent her email out to people, so that will definitely help too.
- Eventually, I will run a Google AdSense ad too.
It will be very interesting to see how each of these things does and what the # users / dollar spent will be for each one.
Labels:
advertising,
android,
iOS,
promotion,
vistaprint
Friday, February 1, 2013
Android Launch!
Today we launched MonsterCache on Android. Very exciting to see it show up in the Play store. I made a screencast of myself launching it:
Only two new accounts so far, but I guess that's not a big surprise. Not sure how likely it is that people install it when they've never heard of it, so the two new accounts are friends. We'll do more of our own promotion once the iPhone version launches. But for now, just excited to have it out there.
Here are a few more details in an email I sent the team:
NOW it's official
We are officially in the Play store!
Only two new accounts so far, but I guess that's not a big surprise. Not sure how likely it is that people install it when they've never heard of it, so the two new accounts are friends. We'll do more of our own promotion once the iPhone version launches. But for now, just excited to have it out there.
Here are a few more details in an email I sent the team:
NOW it's official
We are officially in the Play store!
Download stats are updated once a day, so we may not have any stats on that until tomorrow. But we can watch the Legend board for new players too. I'll also be adding the Android button back to the web site home page now that I have the URL.
Also, I noticed that currently a search for MonsterCache brings the app right up but Monster Cache (two words) doesn't. So I changed the name of the app to Monster Cache, two words. Looks like changes don't take effect for a couple hours. But that should help us if someone searches for it as two words, or for all searches with "Monster". And I put it as one word in the app description so hopefully that will force it to come up for searches when used as one word. We may have to talk more about one word vs two later.
But we're up! And prior to launch, video has 107 views, will be interesting to see how that changes too.
Saturday, January 5, 2013
Phonegap In App Billing plugin for Android - v2 API
Yesterday I got motivated to make my first PhoneGap contribution. I planned to add some calls to a couple of API functions that weren't implemented in the plugin. I don't know Java, but I hoped that I could just copy some parts that were making other API calls and just make the changes for the calls that I needed.
As I started looking at the Java code in the plugin, I noticed that there was basically just one API call being made with a different command message being sent as a parameter. That wasn't what I was expecting to see. So I started looking back at the Android API documentation and found that the calls being used in the plugin were from the version 2 (v2) API. The v3 API is the latest, but just came out in last month or so. But its quite a bit different. So essentially the plugin would need a major upgrade to support the v2 API. Not knowing Java, that seemed to be too much for me, so I had to give up on helping with the plugin :-(
And MonsterCache will just have to get by with the v2 API features for now. The two v3 features I was trying to implement were:
As I started looking at the Java code in the plugin, I noticed that there was basically just one API call being made with a different command message being sent as a parameter. That wasn't what I was expecting to see. So I started looking back at the Android API documentation and found that the calls being used in the plugin were from the version 2 (v2) API. The v3 API is the latest, but just came out in last month or so. But its quite a bit different. So essentially the plugin would need a major upgrade to support the v2 API. Not knowing Java, that seemed to be too much for me, so I had to give up on helping with the plugin :-(
And MonsterCache will just have to get by with the v2 API features for now. The two v3 features I was trying to implement were:
- Getting the list of available products and prices from the store. I can store those myself, but getting them from the Play store may send you a converted currency in other countries, I'm not sure.
- Consuming items. In v3 all items in the store are "Managed", meaning Google keeps track of whether a user has bought them so that they don't have to be bought again. But if your item should able to be bought again -- like in-game currency -- then you have to "consume" the item so that the user can buy it again. In v2 though, they have "Unmanaged" items, and you can still make those in the Play store, so v2 still works
So once I coded for v2, it looks like Android In App Purchasing is working. I'll have to have my test user (my wife) run a test tomorrow to be sure. Google doesn't let you buy your own product.
I also got a JQuery popup dialog working today. That was very good because I have lots of basic ugly alert() boxes that I could replace now with something that would look better.
Tomorrow I'm going to take a shot at the iOS In App Billing plugin.
Saturday, December 22, 2012
In-App Billing setback
Just when I thought we were so close... in signing up for Apple Developer and Google Developer accounts, I found that both have restrictions that you must use their markets for purchasing any digital goods in the application. I failed to anticipate that restriction :-( My in-app purchasing is not done with their markets. Actually, it isn't even in-app purchasing technically, because I link out to our web site to do a purchase. That's also against the terms of both companies.
So.... I need to implement in-app billing for both Apple and Android. Luckily, very recently an in-app billing Phonegap Plugin was made for just that purpose! Plugins are separate per OS, so that meant I also needed to split the market page into a version for each OS. I tried the Android one first, and it worked! You just use Google's test product IDs, and they come back with fake success messages. So cool to see the Google Play market open for the first time.
But then.... I discovered that the Plugin seems to be missing a few key features I needed, like the purchaseToken and the API call to consume an in-app purchase. It looks like I may need to do those parts of the plugin myself. If I succeed in improving the plugin, of course I would want to share those changes with other PhoneGap users. That means that I've finally made my way to the GitHub community. I feel like I'm just barely understanding everything I'm doing, so hopefully I don't make a fool of myself there. It may be too late as I've already tried to message someone and hopefully didn't send the message to a bunch of people :-/
So much to learn!
So.... I need to implement in-app billing for both Apple and Android. Luckily, very recently an in-app billing Phonegap Plugin was made for just that purpose! Plugins are separate per OS, so that meant I also needed to split the market page into a version for each OS. I tried the Android one first, and it worked! You just use Google's test product IDs, and they come back with fake success messages. So cool to see the Google Play market open for the first time.
But then.... I discovered that the Plugin seems to be missing a few key features I needed, like the purchaseToken and the API call to consume an in-app purchase. It looks like I may need to do those parts of the plugin myself. If I succeed in improving the plugin, of course I would want to share those changes with other PhoneGap users. That means that I've finally made my way to the GitHub community. I feel like I'm just barely understanding everything I'm doing, so hopefully I don't make a fool of myself there. It may be too late as I've already tried to message someone and hopefully didn't send the message to a bunch of people :-/
So much to learn!
Saturday, November 24, 2012
Google Maps API Circle issue is Android 4.1.1 only
After many hours of making test examples and posting some things online over past 4 days, I've basically confirmed my initial suspicion that the map problem I'm seeing is only an issue on Android 4.1.1. I assumed that was the most popular version, but now I see that it is only used by 2% of Android users!!
So this maybe isn't *AS* big a deal as I thought, and hopefully they will fix it soon, and it will go away. I already posted it to a Google Maps issue list:
Now I'm going to try to detect the Android version and do an ugly flashing workaround for 4.1.1 only. Then we'll be ready for beta with a nice little bonus from upgrading PhoneGap.
Wednesday, November 21, 2012
Back button override fixed in Android PhoneGap!
As a long shot, I updated Cordova/PhoneGap from Cordova 2.0 to Cordova 2.2 to see if it would fix my maps issue. It didn't, as I expected. But it totally fixed another problem that I'd spent a few hours on! LOL
I've always had trouble with the back button closing the Android app. You'd think it would just go back to the last HTML page you were on, but that (almost) never happens. Once every 50 times or so that I hit the back button it goes back a page, and I have no idea why. Usually it closes the app. So as a workaround, I wanted to override the back button to give the user a confirm message about closing the app. The examples posted for how to override back button were pretty simple so I could never understand why it didn't work for me. I always hoped it would magically start working with a Cordova upgrade, and it has!
Now just have to figure out this dang map issue in order for Beta to be ready....
I've always had trouble with the back button closing the Android app. You'd think it would just go back to the last HTML page you were on, but that (almost) never happens. Once every 50 times or so that I hit the back button it goes back a page, and I have no idea why. Usually it closes the app. So as a workaround, I wanted to override the back button to give the user a confirm message about closing the app. The examples posted for how to override back button were pretty simple so I could never understand why it didn't work for me. I always hoped it would magically start working with a Cordova upgrade, and it has!
Now just have to figure out this dang map issue in order for Beta to be ready....
Beta setback - Android 4.1.1 maps
First post on the MonsterCache blog! I've been working on the game for about 9 months now. I've always thought it would be interesting at some point to blog about the process. I thought that the Beta launch might be a good time to start. I'll probably gradually fill in more details of the past 9 months as I write more.
As it turns out, we were JUST about to launch the beta when I hit a problem. I was developing with Android 2.3. Then I got a new phone a couple weeks ago and started testing with Android 4.x. I found a minor issue with how I was doing local storage, fixed it, and all was good! Then....here is the email I sent to Kent and Matt:
I was *SO* close to sending out the beta email last night. I inactivated my old account, decided to do one last registration test, registered a new account and then I found a big problem. On the Google Map, its occasionally showing two nets and two circles that are slightly offset, so it looks terrible. Seems to do it about 1 out of every 4 times the map comes up. It appears to be only on the new Android, still seems fine on my old phone. Sometimes the nets and maps stay on top of each other, so maybe I jut never noticed it last week, but I actually think it started with an Android update a few days ago.
As it turns out, we were JUST about to launch the beta when I hit a problem. I was developing with Android 2.3. Then I got a new phone a couple weeks ago and started testing with Android 4.x. I found a minor issue with how I was doing local storage, fixed it, and all was good! Then....here is the email I sent to Kent and Matt:
I was *SO* close to sending out the beta email last night. I inactivated my old account, decided to do one last registration test, registered a new account and then I found a big problem. On the Google Map, its occasionally showing two nets and two circles that are slightly offset, so it looks terrible. Seems to do it about 1 out of every 4 times the map comes up. It appears to be only on the new Android, still seems fine on my old phone. Sometimes the nets and maps stay on top of each other, so maybe I jut never noticed it last week, but I actually think it started with an Android update a few days ago.
Anyway, I need to see if I can fix it, or hope that an Android update comes and fixes it. Already banged my head against the desk for a couple hours last night but couldn't figure out what in the world is happening. Could also be PhoneGap, so I'll try updating that next. But probably won't be resolved until after Thanksgiving. :-( Sorry.
And here are some screen shots of how the issue looks:
Subscribe to:
Posts (Atom)


