🦊 Vulpecula 0.1.1 – Targeting API 31 made simpler

:fox_face: Vulpecula


Today I unveil Vulpecula, which aims to make targeting API 30 or API 31 simpler. It takes care of everything you could think of, besides source code.

:old_key: Key points

  • AABs are generated!
    • The ability to upload AABs looked to be too complicated, so I didn’t even test if they’ll be accepted. They should be.
  • Allows transitioning from API 29 to API 31.
    • AndroidManifest.xml is modified in the transition.
    • The :google_play: allows uploads to target API 31, it’s highly recommended.
  • APKs are created so you can test behavior!
  • Signs outputs with the chosen keystore automatically.
  • You don’t even need Java installed!
  • Warns of dangerous permissions.
    • Also warns of permissions which may be subject to review when publishing your application.
  • Works with the command line and system integration.


1. Download Vulpecula

As Vulpecula isn’t yet open-sourced, you’ll need to download it from below and unzip the executable. Move the executable to your desired location. For now, it only works with Windows devices.


2. Modify your environment variables

* To modify your environment variables, take a look here. “Windows 7-10” will also work for Windows 11.

The directory which you put the Vulpecula executable in will need to be included in your “PATH.” The executable itself can’t be in the “PATH.”

3. Open a command prompt

* If you have any existing command prompts open, close them then open a new command prompt. Your changed environment variables will not take effect without this.

* On your first run, Vulpecula will attempt to download prerequisites.

I recommend using Windows Terminal Preview for this, but it’s your choice. There are two ways that Vulpecula will recognize its “calling”:

  • Running vulpecula alone will show the system file explorer
    • Select an APK first, then the KeyStore exported from Kodular.
      • To export your KeyStore from Kodular, in the upper-right-hand corner click on the icon that’s all the way to the right (when you hover over it, it should say “Account.”) Select “Preferences” then “Export keystore.”
    • The -t flag won’t be ignored, read more below.
  • Running vulpecula generate -i <input-apk> -k <keystore-path>
    • Adding -t will cause Vulpecula to target API 30 instead. This isn’t recommended.

4. Find your AAB and APK

Both an AAB and APK are generated for your project. They can be found in the current directory of the command prompt. You’re done!

🥳 You've reached the end, if there's any issues, reply with what's wrong and what you've tried!


Nice I Will Try Morning

What kind of dangerous permissions will be coming while publishing?

:wave: Hi @Adventures_of_Heman,

Vulpecula will remind you of dangerous permissions in your project when it checks them. This is only to make sure your project actually needs them, instead of including useless dangerous permissions for no reason.

Vulpecula will also check permissions against a list of those that may lead to your project being reviewed manually by Google when publishing to the Play Store. This is so you can be prepared for any hitches in your release.

To be clear, no permissions are added to your project when using Vulpecula.


:octopus: Nathan


I tried it and it works very well for me thanks for creating Vulpecula

what happens if i don’t change the pc variable?

Hi @radiogenibau,

It doesn’t matter what happens if you don’t change your environment variables because no matter what you’ll have to, otherwise Vulpecula won’t work unless you open a command prompt in the same directory that the executable’s in!


:octopus: Nathan

first I ran vulpecula, selected the apk and then the keystore and nothing happened, second I opened the cmd, put the codes and nothing happened, then I took the vulpecula executable and pulled it into the cmd, selected the apk and then the keystore appeared there this message

• Prerequisites found

• Decoding resources from APK
• Modifying sources for API 31
Unhandled exception:
type ‘AsyncError’ is not a subtype of type ‘String’
#0 new Migrator.. (file:///c:/users/knaus/ideaprojects/vulpecula/bin/migrator.dart:32)
#1 FutureExtensions.onError. (dart:async/future.dart:770)
#2 _RootZone.runBinary (dart:async/zone.dart:1618)
#3 _FutureListener.handleError (dart:async/future_impl.dart:169)
#4 Future._propagateToListeners.handleError (dart:async/future_impl.dart:719)
#5 Future._propagateToListeners (dart:async/future_impl.dart:740)
#6 Future._completeError (dart:async/future_impl.dart:550)
#7 Future._chainForeignFuture. (dart:async/future_impl.dart:495)
#8 _microtaskLoop (dart:async/schedule_microtask.dart:40)
#9 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)
#10 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:120)
#11 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:185)

I do not know what it means.

1 Like

@FlailingOctopus Thank you very much, I was able to upload the app to the Play Store, it works perfectly, thank you !!!

Can someone help me send some pictures or video how to do it? because I’m new and learning to do a project for myself

1 Like

Thank you @FlailingOctopus for a wonderful app. I was able to successfully create the apk and aab with your instructions.

However when I’m trying to install the apk on my phone, it tries to install and then pops a message “app not installed”.

Can you please help guide the problem here?

1 Like

Hi @Adventures_of_Heman,

It’s possible that you already had the application installed. This may require you to uninstall the application to use the new APK. If that doesn’t resolve your issue, I’ll take a further look into it.


:octopus: Nathan

vulpecula is not downloading, the page is no more exist please help me with that.

Thank you @FlailingOctopus for extending your help. I’ve done uninstall and even tried restarting my phone. Still getting the attached error.

I also have the same situation as you. I pulled it into the Windows Terminal Preview => same message.
if i just run “vulpecula”, selected the apk and the keystore, then “vulpecula” is disabled right after that.

1 Like

i tested but can’t upload to ch play
Can you help me!

Thank you very much. It works perfctly … But I have kind of a stupid question :sweat_smile:. Which emulator can I test the apk ? or can i install it on old android version phones?

:fox_face: Vulpecula 0.1.1

The initial release of Vulpecula was a bumpy road so with this release, hopefully some sinkholes have been patched!


  1. Changed the amount of permissions shown in the command prompt.


  1. Fixed “Building APK” not showing in the command prompt.
  2. Fixed an issue that caused AABs to not be signed.
  3. Fixed an issue that would sometimes cause APKs to not be signed.
  • This caused the “App not installed” errors.
  1. Fixed an issue that would sometimes cause the “there was a problem while parsing the package” error while attempting to install APKs.


  1. vulpecula.zip

make a video on it please

Hi @Shatrudhn_Kumar,

If you need to know how to use Vulpecula, you can view the first post in the topic.


:octopus: Nathan

1 Like