Google has no helpful documentation on how to clear test purchases you’ve made on your device with a Alpha/Beta build. If I clear the App’s local cache, and re-run it, then it just automatically remakes the purchases (which is a good thing – no restore purchase option required).
I found this on StackOverflow, and posted it here as a reminder to myself:
adb shell pm clear com.android.vending
Does the trick – remember to clear the App’s cached data store too.
Looks like they didnt expose the splashscreen property, which is a pain… I have a script that allows me to switch between a Paid version and Free version of an App inside Unity. Makes developing the App a lot simpler… just flip a toggle and presto, new icon, no ads and no ‘remove ad’ button!
I wanted to swap the splashscreen between the paid and free versions with this toggle, but the fine folks at Unity didn’t think of that, so after some searching, I ended up copying the correct screen over a generic splashscreen, but I had to use File.Copy as AssetDatabase.CopyAsset would reset the splashscreen in the build settings, which defeated the purpose! I call to Refresh() when the copy was done updated the build setting and asset database.
string srcPath = AssetDatabase.GetAssetPath(splashScreen);
Debug.Log("srcPath: " + srcPath);
string dstPath = Path.GetDirectoryName(srcPath);
dstPath+="/splashScreen" + Path.GetExtension(srcPath);
Debug.Log("Duplicating " + srcPath + " into " + dstPath);
//AssetDatabase.CopyAsset(srcPath,dstPath); // doesnt work correctly
Hope that helps someone else till they fix it.
Normally, when I’m debugging stuff on my android code, I use the command line version of adb in a terminal window on my mac. I’ve been using various tags after the -S command to filter the output to just the stuff I care about, like so:
adb logcat -S Unity PBAndroid
This will filter the output to show only lines that have Unity or PBAndroid as tags, and I use PBAndroid for all my Log.? outputs in my java plugins. Normally this has served me well, but I was running into an issue with using the new Unity IAP system and there were messages I was missing that would have lead me to a solution to the problem much sooner if I’d seen them, but I was filtering them out.
After some googling, I found the following awesome line on StackOverflow that is going to be my new go to ADB command:
adb logcat | grep `adb shell ps | grep com.example.package | cut -c10-15`
I replaced the com.example.package with com.purplebuttons. and it shows me ALL the output for my application.
I added the following to my /bin folder as ‘adblog’:
#call adb logcat on a specific bundle id
if [ $# -eq 0 ];
echo "Syntax: $(basename $0) bundleid (e.g. com.purplebuttons)"
adb logcat | grep `adb shell ps | grep $1 | cut -c10-15`
Now I can filter the output to my application by using: