Ich arbeite an einem Open-Source-Projekt (Kotlin, Toothpick, saubere Architektur - heutzutage Hype-Themen, aber das ist nicht die Frage :). Ich bin mit Stoff des Crashlytics, so versteckte ich die API und geheime Schlüssel in fabric.properties
nach dem the official docs (und here are some details)Dummy-Fabric-Api-Schlüssel für ein Open-Source-Projekt erstellen
Die Frage ist, was der beste Weg ist, um einige Dummy-Tasten, um Mitarbeiter zu schaffen, ohne Konflikte zu lösen, zu benötigen fusionieren in dieser Eigenschaftendatei? Wenn ich das Projekt ohne diese Datei veröffentliche, stürzt es beim Build ab, weil Fabric die benötigten Schlüssel nicht findet.
Die Optionen Ich sehe:
- ein
fabric.properties
mit vordefinierten API und geheimen Schlüsseln anhänge, die nicht von dem eigentlichen App Armaturenbrett sind, also wenn jemand (absichtlich oder nicht) Bremsen Analytik oder etwas, ihre Daten wird in einem separaten Dashboard sein. - Nichts tun, also wenn jemand interessiert ist, müssen sie es manuell tun.
- die wirklichen Schlüssel zum Repo-Stellen (ich glaube nicht, dass es eine gute Idee ist, aber wenn Sie andere Erfahrung haben, teilen Sie es bitte)
Vielleicht hat Stoff einige Dummy-Tasten einfach nicht die zum Scheitern verurteilt baue ohne sie (ich habe sie nicht gefunden)?
Etwas anderes?
Was meinen Sie mit "Deaktivieren der Initialisierung"? Habe ich Recht, dass wir das Fabric-Plugin deaktivieren müssen, damit die fabricGenerateResources-Task fehlschlägt? Oder ist es möglich, es irgendwie zu konfigurieren, Fabric.with (...) in der Application-Klasse einfach nicht aufzurufen? Jetzt , wir initialisieren es in Anwendung onCreate, für Debug deaktivieren: val crashlyticsKit = Crashlytics.Builder() .CORE (. CrashlyticsCore.Builder() deaktiviert (BuildConfig.DEBUG) .build()) .build() Fabric.with (this, crashlyticsKit) – Gaket
Sie möchten dies zu jeder Build-Konfiguration hinzufügen ext.enableCrashlytics = false, und dann eine Konfiguration wie diese haben: Crashlytics crashlyticsKit = new Crashlytics.Builder() .core (neue CrashlyticsCore.Builder() .disabled (BuildConfig.DEBUG) .build()) .build(); Fabric.with (dies, crashlyticsKit); Alternativ können Sie die Erstellungszeitressourcen generieren und die Fabric-Initialisierung in eine if-Überprüfung eines booleschen Flags umbrechen. –