wie erstellt man .app Pakete?

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Scyx, 23.05.2006.

  1. Scyx

    Scyx Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    26.02.2004
    Hallo,

    es wäre mal interessant zu wissen, wie man diese .apps erstellt :)
    Das ist so ein geniales System bei Mac OS X, von daher würd ich das gerne benutzen um selbst-übersetzte Programme so zu packen und evtl. auch anderen zugänglich zu machen. Einige Komilitonen würde das sehr freuen, wenn sie sich dann nicht mit dem Übersetzen abmühen müssten ;)

    Wer Literaturtipps hat, vllt. sogar HowTos inkl. Link, immer her damit bitte :)
    Falls es spezielle Dinge gibt, die man beachten sollte (Compiler, OS X Version usw.) bitte auch posten.

    MfG

    Scyx
     
  2. bernie313

    bernie313 MacUser Mitglied

    Beiträge:
    22.235
    Zustimmungen:
    2.388
    Registriert seit:
    20.08.2005
    Damit sollte es gehen und unter Developer findest du Anleitungen:
    http://www.apple.com/macosx/features/xcode/
     
    Zuletzt von einem Moderator bearbeitet: 24.10.2015
  3. Scyx

    Scyx Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    26.02.2004
    Danke.
    Muss man dafür XCode nutzen, oder gibt es da auch andere Wege, das vllt. konsolenbasiert zu machen?
    Da es Mac OS X typisch ist, liegt es nahe, dass man das wohl auch nur mit deren Tool machen kann. Aber eine "unabhängige" Lösung ist mir irgendwie lieber, einfach aus Prinzip ;)

    MfG

    Scyx
     
  4. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Ich verschieb Dich mal eben in den Entwicklerbereich.
    Grundsätzlich kommt es darauf an, um was für Programme es geht bzw. in welcher Sprache die geschrieben sind.
     
  5. Scyx

    Scyx Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    26.02.2004
    Hauptsächlich C++, teilweise wohl auch python.
    Was in Zukunft für Sprachen hinzukommen weiss ich halt noch nicht :)
    Wie nennt man denn die .app Pakete? Die haben doch bestimmt einen speziellen Namen.
    @bernie313: Kannst Du das evtl. etwas präzisieren, wo ich einen Artikel über die .app Pakete-Erstellung mit XCode finde?
    Es geht auch darum, dass das Programm usw. alles mit configure, make und make install erstellt wird, also im Prinzip schon fertig ist. Das einzige was dann halt noch fehlt, ist aus alle dem Zeug so ein .app Paket zu erzeugen.

    MfG

    Scyx
     
  6. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Python ist eine Skript Sprache, da muss man (normalerweise) nichts packen.

    c++ wird i.d.R. für Kommandozeilentools eingesetzt. Da kann man fertige Binaries weitergeben. U.U muss man aufpassen, dass bei komplexen Programmen, zusätzliche libraries weitergegeben werden müssen oder man muss halt alles statisch linken. Trotzdem wird da wohl nur in Ausnahmefällen eine *.app draus werden.

    Wie dem auch sei.
    Wenn Du Deinen Kommilitonen das Bauen der Programme vereinfachen möchtest, bist Du vielleicht auch mit Shellskripten gut bedient, die die erforderlichen Sourcen aus dem Internet (evtl. von Deinem Webspace) laden, konfigurieren und installieren.
    Man aber auch was mit dem PackageMaker machen.
     
  7. Scyx

    Scyx Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    26.02.2004
    Also, das hilft mir leider auch nicht weiter :)
    Aber in der Zwischenzeit hab ich eine Page gefunden, in der das Ganze anhand eines Beispiels für ein Java Programm erklärt wird.
    Übrigens, der Ausdruck den ich gesucht hab ist "Application Bundle". die Apple Online Hilfe hilft mir da auch ein gutes Stück weiter, aber leider finde ich das wichtigste bisher noch nicht.
    Denn ich hab hier im Moment ein Programm, dass ich in so ein Application bundle packen will. Leider benötigt es beim Aufruf 2 Pfade, die mittels LSEnvironment in der Info.plist gesetzt werden müssen. Da das bundle aber verschiebbar sein soll bräuchte ich eine Variable, die den aktuelle Pfad des bundles zurückliefert, ähnlich der $APP_PACKAGE für Java Bundles. Da es sich hier aber um ein C++ Prog handelt, wollte ich mal fragen, ob es sowas auch ohne Java gibt? $PWD funktioniert leider auch nicht :)

    MfG

    Scyx
     
  8. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    Registriert seit:
    15.03.2004
    Ich verstehe Deine Frage nicht. Das Konzept heisst "Bundles", Xcode erzeugt sie relativ automatisch für OS X Projekte.

    Was für eine Codebasis willst Du warum in .app Bundles packen?

    Aber zum Lesen:
    Anatomy of a Modern Bundle

    Alex
     
  9. Scyx

    Scyx Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    26.02.2004
    Ich hab hier ein Programm (C++), das eigentlich für Linux gedacht ist, aber auch auf dem Mac kompiliert (mit ein paar Änderungen)
    Nach dem Kompilieren hab ich dann alles was ich brauch. Executable, Shared libs usw.
    All dies möchte ich jetzt in ein Bundle packen.
    Ein bundle ist, laut der Online Hilfe, ja nichts anderes als ein Ordner mit einer bestimmten Verzeichnishierarchie und bestimmten Dateien (Info.plist, APPL???, ...)
    Das Programm was ich da kompiliert habe (mit configure, make und make install, also ohne XCode o.Ä.) möchte ich jetzt zu einem solchen bundle schnüren. Sprich, executable unter Prog.app/Contents/MacOS/executable, libs unter Prog.app/Contentes/Resources/libs/ und dann noch data unter Prog.app/Contents/Resources/data/.
    Das Programm braucht aber die Pfade für data/ und die libs in seiner Umgebung. Für solche Fälle kann man ja in Info.plist LSEnvironment benutzen, um verschiedene Pfade zu setzen.
    Das Problem dabei ist aber, dass LSEnvironment absolute Pfade braucht, aber um ein echtes Bundle zu erzeugen, das auch verschiebbar sein soll, muss das Ganze irgendwie relativ sein oder sich den aktuellen Pfad von Prog.app irgendwie besorgen.
    Nun frage ich mich, welche Möglichkeit man da hat. Gibt es da was vergleichbares wie $PWD, so dass man da eintragen kann:
    <key>LSEnvironment</key>
    <dict>
    <key>PROG_DATA_PATH</key>
    <string>$PWD/data/</string>
    <key>DYLD_LIBRARY_PATH</key>
    <string>$PWD/lib/Darwin-7.9.0-g++_3.3.0</string>

    ?
    Hoffe, dass jetzt verständlich ist, was ich meine.

    MfG

    Scyx
     
  10. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    Registriert seit:
    15.03.2004
    Ja, ist verständlich. Leider kann ich Dir mit LSEnvironment auch nicht helfen.

    :(

    Alex
     
Die Seite wird geladen...

Diese Seite empfehlen