Ich habe eine Eclipse RCP-Anwendung (Indigo) mit Tycho gebaut. Der Build wird auf einem Win 7, 64-Bit-Computer ausgeführt.Mac-Verteilung von Eclipse RCP-Anwendung mit Tycho unter Windows gebaut startet nicht
Die Mutter POM umfasst:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<resolver>p2</resolver>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
...
Die Produktkonfiguration sieht wie folgt aus (mit einigen Auslassungen und zusätzliche Zeilenumbrüche für readbility):
<product name="My App" uid="myapp.product" id="myapp.core.product" application="myapp.core.application" version="0.1.4.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>-data @noDefault</programArgs>
<vmArgsMac>-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
</launcherArgs>
<launcher name="myapp_0_1_4">
<solaris/>
<win useIco="false">
<bmp/>
</win>
</launcher>
<vm>
<macos include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6</macos>
</vm>
<plugins>
<plugin id="com.ibm.icu"/>
<plugin id="myapp.core"/>
<plugin id="org.eclipse.core.runtime"/>
<plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.osgi"/>
<plugin id="org.eclipse.swt"/>
<plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
<plugin id="org.eclipse.ui"/>
<plugin id="org.eclipse.ui.workbench"/>
</plugins>
<features>
<feature id="org.eclipse.rcp" version="3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>
<feature id="myapp.platform_dependencies.feature" version="0.1.4.qualifier"/>
<feature id="myapp.core.feature" version="0.1.4.qualifier"/>
<feature id="myapp.ui.feature" version="0.1.4.qualifier"/>
<feature id="myapp.model.feature" version="0.1.4.qualifier"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
</configurations>
</product>
Der Build ohne Probleme läuft, und erzeugt ZIP-Dateien, die auf den Ziel-Betriebssystemen Windows & Linux ausgepackt enthalten funktionierende Trägerraketen. (Unter Linux muss ich den Launcher ausführbar machen, bevor sie ausgeführt werden zu können.)
Unter Mac OS X (10.6.8), aber der Launcher (myapp.app) tut nichts ...
Wenn ich java -jar -XstartOnFirstThread plugins/org.eclipse.equinox.launcher_[version]
ausführen, wird die Anwendung gestartet, wenn auch ohne den Begrüßungsbildschirm.
Ich kann mir vorstellen, dass ich irgendwo in meiner Produktkonfiguration eine falsche Einstellung habe, aber es macht mir nichts aus.
Ich sollte hinzufügen, dass ich den Indigo P2-Repo anstelle einer lokalen Zielplattform im Build verwenden. –
Ein Hinweis für .app-Neulinge wie mich: 'myapp.app' ist eigentlich ein Ordner, und das Festlegen des ausführbaren Bits für diesen Ordner - sofern nicht rekursiv erfolgt - ändert nichts. Die eigentliche Launcher-Datei befindet sich in diesem Ordner unter * myapp.app/Contents/MacOS/myapp *, und das Festlegen des ausführbaren Bits für diese Datei ('chmod + x myapp') wird den Zweck erfüllen und die App ausführbar machen (a) Führen Sie diese Datei über die Befehlszeile aus (von * myapp.app/Contents/MacOS/* mit './myapp'), (b) mit einem Doppelklick auf * myapp.app/Contents/MacOS/myapp * oder (c) per Doppelklick auf * myapp.app * selbst (im Finder) –