Eigenes iOS Framework in App (Debug & Release)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Eigenes iOS Framework in App (Debug & Release)

    Hallo zusammen,

    ich habe mir ein eigenes Framework gebaut. Das funktioniert auch wunderbar innerhalb meiner App. Wie kann das Framework selbstständig auf Wert A (domain1.com) zugreifen wenn ich die App im Debug Mode ausführe und auf Wert B (domain2.com) zugreifen, wenn die App im Release Mode ausgeführt wird ? Wenn ich den Fall innerhalb der App benötigt habe, habe ich das Problem zum Beispiel so geregelt :

    C-Quellcode

    1. #ifdef DEBUG
    2. #define htmlAddress @"https://www.domain1.com";
    3. #else
    4. #define htmlAddress @"https://www.domain2.com";
    5. #endif
    Muss ich hier immer das Framework ebenfalls im Debug oder Release Mode erstellen, bevor die App erstellt wird ?
  • t-no schrieb:

    ifdefs werden immer beim Compileren abgearbeitet: wenn das Framework als Release gebaut ist, kann man nicht nachträglich was anderes daraus machen.
    Du kannst die Adresse aber in einer Variablen speichern - defines sind eh pfui.
    Da will ich mal stark wiedersprechen. Ich will ja in einer Release Version nicht 10000 Logger Befehle haben die auch noch alle eine If davor haben das auf eine globale Variable zugreift. Mehr sinnloses Speicherplatz verprassen geht ja wohl nicht. Und schneller wird es dadurch auch nicht....

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • MODWORLD schrieb:

    Ok, mir geht es darum, wann weiß das Framework, ob die App im Debug Mode ausgeführt wird oder im Release Mode ? Muss ich hier einen Wert von der App an das Framework übergeben ?
    du Must halt das entsprechende define in deinem Code setzen. Dann wird mit der jeweilig gewünschten Framework Version compiliert.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • MODWORLD schrieb:

    Ok, mir geht es darum, wann weiß das Framework, ob die App im Debug Mode ausgeführt wird oder im Release Mode ? Muss ich hier einen Wert von der App an das Framework übergeben ?
    warum teilst du es dem framework nicht einfach mit bevor du es verwendest?

    Also wenn es jetzt um sowas geht wie du beschrieben hast, dann ist das sicherlich kein problem. Aber eben die compile-time DEBUG zu ersetzen (für logs/tracing etc) würd ich das nicht verwenden.
  • gritsch schrieb:

    warum teilst du es dem framework nicht einfach mit bevor du es verwendest?
    Also wenn es jetzt um sowas geht wie du beschrieben hast, dann ist das sicherlich kein problem. Aber eben die compile-time DEBUG zu ersetzen (für logs/tracing etc) würd ich das nicht verwenden.
    Nein, es geht nicht um Logs/Tracing. Ich benötige es um im Debug-Mode auf einen Testbereich und im Release-Mode auf den Produktionsbereich zugreifen zu können.

    Ich werde es wohl jetzt über eine Variable im Framework machen, die dem Framework mitteilt, ob die App im Debug-Mode oder im Release-Mode ausgeführt wird. Dann kann das Framework die entsprechenden Werte abrufen. Ausser es gibt noch eine andere Möglichkeit.
  • Thallius schrieb:

    Da will ich mal stark wiedersprechen. Ich will ja in einer Release Version nicht 10000 Logger Befehle haben die auch noch alle eine If davor haben das auf eine globale Variable zugreift. Mehr sinnloses Speicherplatz verprassen geht ja wohl nicht. Und schneller wird es dadurch auch nicht....
    ifdef != define.
    Conditional Compilation lässt sich kaum durch andere Konstrukte ersetzen, aber darüber, dass Konstanten gegenüber defines zu bevorzugen sind, herrscht imho Konsens.
    Debug mit Logger-Befehlen will man eigentlich auch nicht... (nur manchmal gibt es halt nichts besseres)

    Thallius schrieb:

    du Must halt das entsprechende define in deinem Code setzen. Dann wird mit der jeweilig gewünschten Framework Version compiliert.
    Im Code? Also

    Quellcode

    1. foo(42)
    2. #define DEBUG 1
    3. frameworkFunc(23)

    so? (Ist mir jetzt zu mühsam, das auszuprobieren, aber imho kann das gar nicht klappen, wenn es so gemeint ist)