Ermitteln der Build-Konfiguration (debuggen oder release) im ant-Skript

8

Ich habe ein Ameisen-Skript, das tut, was es tun muss, aber ich muss ein paar Eigenschaftswerte einstellen, abhängig davon, ob ich Release oder Debug laufen lasse. Wie mache ich das?

Wenn es einen Unterschied macht, führt mein Ameisen-Skript einige benutzerdefinierte Utility-Aufgaben aus, bevor es android baut.

Um meine eigene Frage zu beantworten:

Die Eigenschaften, nach denen gesucht werden soll, sind " build.mode.release " und " build.mode.debug ", jedoch gibt es eine Einschränkung ... wenn Ihr Manifest debuggable="true" hat, kehrt das System REVERTS in den Debug-Modus zurück, mit einem leichten "Short-Coming" (IMO)

  1. build.mode.release ist NICHT festgelegt ,
  2. build.mode.debug ist AUCH nicht festgelegt
  3. Debug-Signierung ist deaktiviert (Sie müssen einen Keystore, einen Alias ​​und ein Passwort angeben)

Hinweis: Dies gilt nur für Android-Builds

    
copolii 02.06.2011, 18:08
quelle

4 Antworten

8

Der Grund für den "Vorbehalt" ist tatsächlich im Android main_rules.xml -Projekt ( $ANDROID_SDK_ROOT/tools/ant/main_rules.xml ) dokumentiert:

%Vor%

Was Sie also überprüfen wollen, ist build.mode.debug (ausgeführt über ant debug ), build.mode.release (wenn @debuggable=false und ausgeführt mit ant release ) und schließlich, um Ihrer Einschränkung zu entsprechen: build.packaging.debug (wenn @debuggable=true und ausgeführt mit ant release )

Hier ist ein Beispiel, das automatisch vorkompilieren würde:

%Vor%     
Joe 03.06.2011 17:50
quelle
3

Als Update für Joes Antwort sieht es zumindest mit Android Tools Version 22.3 aus, dass die Eigenschaft build.mode.debug nicht mehr existiert, Sie aber build.is verwenden können .packaging.debug um zwischen debug und release zu unterscheiden

    
KevinZusy 11.02.2014 14:56
quelle
1

ant -D<prop-name>=<value> setzt die Eigenschaft in ant

    
Op De Cirkel 02.06.2011 18:16
quelle
0

final soultion für ant debug und jni modul:
1. Weisen Sie in 'custom_rules.xml' den Debug-Modus 'BUILDMODE'

zu %Vor%
  1. jni / Android.mk, füge folgendes hinzu:

ifeq ($ (BUILDMODE), wahr)
LOCAL_CFLAGS=-DDEBUG
endif

    
wuruxu 15.03.2015 14:29
quelle