Die Apple Shake-Anwendung kann in macOS 10.13 High Sierra nicht vollständig verwendet werden

Im Juli 2009 stellte Apple Shake ein. Von Apple wurde kein direkter Ersatz der Anwendung angekündigt, aber einige Funktionen (Stabilisierung und Schätzung des optischen Flusses, um nur einige zu nennen) sind jetzt in Final Cut Pro X 10.4 und Motion 5.4 im Jahr 2018 verfügbar.

Apple Shake wurde auf 32-Bit entwickelt Carbon API. Ich verstehe sicherlich, dass es nicht 64-Bit Cocoa APIist, diese APIs sind anders. Aber Carbon.frameworkes ist immer noch /System/Library/Frameworks/in High Sierra, Sierra oder El Capitan enthalten, und tolle alte Apps (wie Shake, Color, Soundtrack Pro) können es verwenden.

Ich verwende Shake immer noch in High Sierra und starte Shake über die Terminal-App:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Aber ich kann Shake (aus offensichtlichen Gründen) nicht starten, indem ich auf das Symbol im ApplicationsOrdner klicke:

Geben Sie hier die Bildbeschreibung ein

Also ich habe zwei Fragen:

  1. Was soll ich tun, um diese Einschränkung des Betriebssystems zu umgehen und Shake auszuführen, nachdem ich auf das Symbol im Anwendungsordner oder im Dock geklickt habe?

  2. Wenn das erste nicht möglich ist, wie kann man das white crossed-out circleOverlay auf dem Symbol von Shake entfernen (normales Ersetzen von Symbolen funktioniert in diesem Fall nicht)?

PS

ICH GEFUNDEN MÖGLICHE LÖSUNG (danke an Thomas Voßen): Shake on Mac OS X 10.11.6

  1. Erstellen Sie ein Duplikat von Shake.
  2. Wählen Sie „Paketinhalt anzeigen“
  3. Gehen Sie zum Ordner „Inhalte“ und öffnen Sie Info.plist. Xcode hat einen Plist-Editor.
  4. Bearbeiten Sie den Eintrag com.apple.shakeund ändern Sie ihn in etwas wie com.apple.shake4.
  5. Speichern Sie die plist-Datei.

Jetzt ist es möglich, Shake mit einem Doppelklick aus dem Finder in High Sierra 10.13.5 zu starten.

Aber es gibt keine Info.plistDatei im ContentsOrdner.

Ich denke, Apple hat eine Art alte App-Blacklist in das Betriebssystem integriert, die den Start bestimmter alter Apps verhindert. Keine Ahnung warum. iMovie HD macht genau dasselbe – startet problemlos vom Terminal aus, gibt aber diese Meldung aus, wenn Sie versuchen, es normal zu starten.
Die Idee ist einfach: Hören Sie auf, alte APIs zu unterstützen ))
Aber die APIs selbst sind noch intakt, was sich daran zeigt, dass Sie die Binärdatei direkt über das Terminal starten können. Sie blockieren also einfach eine App, die ansonsten gut funktionieren würde.
Intakt, aber höchstwahrscheinlich offiziell veraltet.

Antworten (3)

Deine Frage beantwortet sich von selbst.

Apple Shake basiert auf der 32-Bit-Carbon-API. Ich verstehe sicherlich, dass es sich nicht um eine 64-Bit-Cocoa-API handelt

Lassen Sie das 32-Bit-gegen-64-Bit-Argument beiseite; Kakao ist völlig anders als Kohlenstoff. Es wird nicht ausgeführt, da die APIs, auf die sich Shake bezieht (Carbon), nicht mit dem kompatibel sind, was Sie gerade ausführen (Cocoa).

Es ist wichtig zu beachten, dass Carbon im Jahr 2012 mit der Veröffentlichung von Mountain Lion (OS X 10.8.x) veraltet ist. Denken Sie daran, warum und wann Apple Funktionen hinzufügt/entfernt, ist ausschließlich ihr Vorrecht.

Im Jahr 2012, mit der Veröffentlichung von OS X 10.8 Mountain Lion, galten die meisten Carbon-APIs als veraltet. Die APIs sind weiterhin für Entwickler zugänglich und alle Carbon-Anwendungen werden ausgeführt, aber die APIs werden nicht mehr aktualisiert.

Shake, das im Terminal ausgeführt wird, ist ein völlig anderes Szenario – Kakao und Kohlenstoff kommen nicht ins Spiel – es ist eine rein textbasierte Schnittstelle.

UPDATE: Nach ein wenig Recherche habe ich zwei Dinge entdeckt:

  • Shake wurde auf "inkompatible Software" verbannt und der Finder startet es nicht. Zeitraum.

  • Es gibt eine Problemumgehung (siehe unten), um es in El Capitan funktionsfähig zu machen, da die Carbon-Bibliotheken immer noch enthalten sind, obwohl sie veraltet sind. Hinweis: Dies wurde in Sierra/High Sierra nicht getestet/bestätigt. Da dies von Apple als „inkompatible Software“ eingestuft wird, gibt es keine Garantie dafür, dass die Problemumgehung vollständig oder für wie lange funktioniert. YMMV.

Arbeiten Sie herum

  1. Klicken Sie mit der rechten Maustaste auf Shake.App
  2. Gehen Sie zu Paketinhalt anzeigen .
  3. Gehen Sie zu Inhalt --> MacOS --> schütteln ( shakenicht auswählen tshake);
  4. Doppelklicken Sie auf shake. Es sollte zuerst ein Terminalfenster öffnen und dann sollte Shake laufen.
  5. Erstellen Sie einen Alias ​​(eine Verknüpfung) der Datei und platzieren Sie ihn, wann immer Sie möchten. Launchpad kann es nicht sehen , obwohl Sie die Verknüpfung/den Alias ​​in Ihrem Anwendungsordner haben können.
Ich stimme Ihnen zu, aber ... Wenn ich Shake auf Mac OS X 10.9 installiere und dann die Installation von OS X 10.11 durchführe (keine Neuinstallation), funktioniert Shake gut über die Benutzeroberfläche und über das Terminal in El Capitan. Und es gibt keinen durchgestrichenen weißen Kreis auf Shakes Symbol. Es ist ziemlich seltsam.
Sie installieren also Shake auf einem System mit den erforderlichen UI-Bibliotheken und führen dann ein Upgrade durch, aber wenn Sie auf einem System ohne diese Bibliotheken installieren , funktioniert es nicht? Mit 10.8.x wurde Carbon als veraltet angesehen – was bedeutet, dass es enthalten, aber nicht aktualisiert wurde. 2 Versionen später hörte Apple offensichtlich auf, die Bibliotheken einzubeziehen.
Wieder einverstanden. Kann ich Shake in der Benutzeroberfläche von El Capital wiederbeleben? Ich meine, um es zu starten, indem Sie auf sein Symbol klicken?
Beginnen Sie damit: apple.co/2tHY9qp Coco ist buchstäblich die oberste Schicht im Framework, wo CLI-Tools in der Nähe der Unterseite auf der Core OS-Schicht arbeiten.
Ich habe es bereits gelesen. Anscheinend reden wir über verschiedene Dinge. Der Punkt ist – wenn ich „shake“ in Terminal eingebe, bekomme ich die GUI von Apple Shake (nicht den versteckten Apple Shake, der über die Befehlszeile gesteuert wird). Ich bekomme Apple Shake auf Carbon API aufgebaut (nicht auf seiner Engine mit textbasierter Schnittstelle).
"Erstellen Sie einen Alias ​​(eine Verknüpfung) der Datei und platzieren Sie sie, wann immer Sie möchten. Launchpad kann sie nicht sehen, obwohl Sie die Verknüpfung/den Alias ​​in Ihrem Anwendungsordner haben können." Ich habe es versucht. Ich kann diesem Alias ​​kein neues Symbol zuweisen. Discussions.apple.com/thread/6607341?start=0&tstart=0
Ist eine Ikone so wichtig? Die größere Frage ist, funktioniert diese Lösung?
Ja, es funktioniert, aber ich bin an Launchpad gewöhnt.
Wie hast du den Alias ​​erstellt? Ich würde Terminal verwenden und einen symbolischen Link verwenden . Sie sollten in der Lage sein, das Symbol des Symlinks zu ändern. Ich verstehe, dass Sie einen Workflow haben, aber wenn man bedenkt, dass er seit 2009 eingestellt wurde, müssen Sie einige Kompromisse eingehen.

Das denke ich sozusagen laut, aber eine Sache, die es auch wert ist, ausprobiert zu werden, ist, entweder AppleScript oder Automator zu verwenden, um eine Anwendung zu erstellen, die das tut, was Sie jetzt manuell über Terminal tun. Sobald Sie dies getan haben, wird die Anwendung durch Hinzufügen zu Ihrem Anwendungsordner für Launchpad, das Dock usw. verfügbar gemacht.

Ich bin mir nicht sicher, wie vertraut Sie mit AppleScript oder Automator sind, aber wenn Sie Automator als Beispiel verwenden, würde der Prozess im Großen und Ganzen in diese Richtung gehen:

  1. Starten Sie Automator (normalerweise in Ihrem Anwendungsordner zu finden)
  2. Gehen Sie zu Datei > Neu
  3. Wählen Sie Anwendung aus und klicken Sie auf Auswählen.
  4. Oberhalb der zweiten Spalte (mehr auf der linken Seite) sehen Sie ein Suchfeld am Anfang einer langen Liste
  5. Geben Sie „Ausführen“ in das Feld ein, um die Liste zu filtern
  6. Eine der Optionen ist Run Shell Script
  7. Doppelklicken Sie auf diese Option
  8. Dadurch wird rechts das Fenster „Run Shell Script“ hinzugefügt.
  9. Konfigurieren Sie nun das Skript, das Sie benötigen, um zu replizieren, was Sie bereits tun, und geben Sie es ein
  10. Gehen Sie zu Datei > Speichern (oder verwenden Sie commandS), um dies als Anwendung zu speichern

Jetzt sollten Sie auf die von Ihnen erstellte Anwendung doppelklicken können, um Shake zu starten. Sie können auch das Symbol der Anwendung beliebig ändern, es zum Dock hinzufügen usw. Dies ist auch im Launchpad verfügbar.

HINWEIS: - Ich bin mir nicht sicher, ob ich Shake noch auf einem meiner Macs installiert habe, daher habe ich dies nicht getestet, um sicherzustellen, dass es speziell mit Shake funktioniert, aber theoretisch sollte es in Ordnung sein, basierend auf was das machst du schon.

Es funktioniert unter macOS 10.13.5 High Sierra . Ich habe eine erstellt Info.plistund diese Zeilen hinzugefügt:

<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>Shake</string>
    <key>CFBundleGetInfoString</key>
    <string>Shake version 4.1.1</string>
    <key>CFBundleIconFile</key>
    <string>Shake</string>
    <key>CFBundleIdentifier</key>
    <string>com.apple.shake4</string>
    <key>CFBundleName</key>
    <string>Shake</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
</dict>
</plist>

Sowohl die Carbon-API als auch die Cocoa-API sind eng mit der Low-Level-Core Foundation-API ( CF) integriert.

Hier finden Sie nützliche Informationen zu BundlesmacOS und iOS:

Bundle-Programmierhandbuch – Über Bundles

Bundle-Programmierhandbuch – Bundle-Strukturen

Wenn ich jetzt auf das Symbol von Shake im Dock klicke, kann ich Shake in der GUI von High Sierra starten.

Geben Sie hier die Bildbeschreibung ein

Ich kann es nicht nur über Launchpad, sondern auch über Terminal ausführen. Es erlaubt mir, mehrere Instanzen von Shake gleichzeitig auszuführen.

Geben Sie hier die Bildbeschreibung ein

Das ist klasse! Ich freue mich, dass Sie eine Lösung gefunden haben, die für Sie funktioniert. :) Und danke, dass du zurückgekommen bist, um es mit der Community zu teilen. Ich bin mir sicher, dass es auch anderen auf dem Weg helfen wird!
Ich bin aus der Antwort nicht klar – was genau wurde in Ihrer info.plist gegenüber dem Original geändert? Ich würde gerne genau wissen, was es behoben hat, damit dies für andere Apps verwendet werden kann!