---
title: "Fabric for Open Source Android"
description: "Open-source Android applications must remain buildable for contributors without exposing the credentials used by third-party services. Kickstarter’s Android application added Crashlytics through Fabric for crash reporting and real-time analytics, but integrating it required protecting the Fabric API key and secret from public source control. The post presents two normal SDK configuration paths—manifest metadata or fabric.properties—then uses a generated properties file, an example fallback, and Gradle logic to supply values from environment variables when available. Contributors without access to the secret repository receive an example apiKey value of 0, allowing the Fabric SDK to compile without the invalid null-key error, while the project’s real credentials remain outside the open-source codebase."
---

# Fabric for Open Source Android

[Kickstarter](https://yomu.fyi/company/kickstarter) · Rashad Cureton · Aug 16, 2018

**Type:** Tutorial

## Summary

Open-source Android applications must remain buildable for contributors without exposing the credentials used by third-party services. Kickstarter’s Android application added Crashlytics through Fabric for crash reporting and real-time analytics, but integrating it required protecting the Fabric API key and secret from public source control. The post presents two normal SDK configuration paths—manifest metadata or fabric.properties—then uses a generated properties file, an example fallback, and Gradle logic to supply values from environment variables when available. Contributors without access to the secret repository receive an example apiKey value of 0, allowing the Fabric SDK to compile without the invalid null-key error, while the project’s real credentials remain outside the open-source codebase.

## Context

The Android application is open source, so contributors need to build it, but Fabric and Crashlytics credentials must not be exposed publicly. Contributors also lack access to the repository containing the real secrets.

## Approach / What changed

Create a fabric.properties.example fallback, copy either secret or example properties into the app directory, and add Gradle logic that generates fabric.properties from apiKey and apiSecret environment variables when the file is missing. The example uses apiKey=0 so the Fabric SDK can compile for contributors.

## Takeaways

- Fabric can read its API key from Android Manifest metadata or from a fabric.properties file containing apiKey and apiSecret.
- A fallback fabric.properties.example with apiKey=0 lets contributors build without access to the project’s secret repository.
- Gradle generates a missing fabric.properties file from apiKey and apiSecret environment variables, keeping real credentials out of source control.

**Tags:** [Android](https://yomu.fyi/topic/android), [Open Source](https://yomu.fyi/topic/open-source)

- Source: [Kickstarter](https://medium.com/kickstarter-engineering/fabric-for-open-source-android-7743db969d5d)
- Source URL: https://medium.com/kickstarter-engineering/fabric-for-open-source-android-7743db969d5d
- Ingested by Yomu: 2026-08-30T12:07:52.028Z

[Read original post](https://medium.com/kickstarter-engineering/fabric-for-open-source-android-7743db969d5d)
