Android builds can be distributed using a digital store (such as Google or Android), or can be manually distributed by distributing a .apk.
Before you perform any distribution, you must create a release build of your app.
The following will walk you through creating a release build. Release builds can be created for any FlatRedBall Android project, including synced Glue projects. This walkthrough assumes that you have an Android project which you have been able to successfully deploy to device through Xamarin Studio or Visual Studio.
If using Xamarin Studio, change the configuration to release:
Release builds are required for distributed .apk files.
Distributed builds also require linking against the release build of FlatRedBall. If using the .dll files which are distributed with the FlatRedBall templates (default), then your project will already have the release files downloaded.
These can be found in your project's Libraries folder:
To link the release files in Xamarin Studio:
Right-click on your game project's References
Select "Edit References..."
Select the ".Net Assembly" tab
Un-check the FlatRedBallAndroid.dll file
Click the "Browse..."
Navigate to the <project folder>/Libraries/Android/Release folder
Select FlatRedBallAndroid.dll and click Open
Verify that the release build of FlatRedBall is added and click OK
Once this library has been added, build and run your project to make sure everything is working fine.
The project needs to specify the architectures it will support. Unless you are concerned about file size, you should support all architectures. To do so:
Right-click on your project
Select "Options"
Select the "Android Build" option
Click the "Advanced" tab
Check the desired supported architectures:
The .apk file is what you need to distribute to test it on other phones. In Xamarin Studio:
Select "Project" -> "Create Android Package..."
Enter a name in the "File:" text box for the desired .apk file name
Click OK
Once the .apk file has been created it can be distributed through any digital means, such as google drive, drop box, or sending the file through email.
Xamarin's Android compiler includes a feature which allows selective inclusion of libraries, classes, and members. This feature can reduce the size of a game, but also can introduce crashes which can be difficult to diagnose - at least unless you know what to look for.
The most common type of crash occurs when deserializing XML files, such as emitter .emix files. If your program runs fine in debug but crashes in release, then it may be related to Xamarin's linking behavior. You can verify that this is the case by looking at the output window. For example, the following error appears when trying to load a .emix file.
One way to solve this problem is to adjust the linking behavior, which can be done as follows:
Right-click on the project in the Solution Pad
Select "Options"
Select the "Android Build" category
Click the "Linker" tab
Change "Link all assemblies" to either "Link SDK Assemblies only" or "Don't link"
Try running again and see if the crash occurs
The downside to this solution is that these will increase the size of your APK file.
For more information on linking, see this article.