Nie można w pełni korzystać z aplikacji Apple Shake w systemie MacOS 10.13 High Sierra

10

W lipcu 2009 r. Firma Apple przerwała Shake. Firma Apple nie ogłosiła żadnej bezpośredniej wymiany aplikacji, ale niektóre funkcje (stabilizacja i oszacowanie przepływu optycznego, żeby wymienić tylko kilka) są teraz dostępne w Final Cut Pro X 10.4 i Motion 5.4 w 2018 roku.

Apple Shake został zbudowany na 32-bitowym Carbon API. Z pewnością rozumiem, że nie jest 64-bitowy Cocoa API, te API są różne. Ale Carbon.frameworknadal jest włączony w /System/Library/Frameworks/High Sierra, Sierra lub El Capitan, a świetne stare aplikacje (takie jak Shake, Color, Soundtrack Pro) mogą z niego korzystać.

Nadal używam Shake in High Sierra podczas wstrząsania za pomocą aplikacji Terminal:

wprowadź tutaj opis obrazu

wprowadź tutaj opis obrazu

Ale nie mogę (z oczywistego powodu) uruchomić Shake'a poprzez kliknięcie jego ikony w Applicationsfolderze:

wprowadź tutaj opis obrazu

Mam więc dwa pytania:

  1. Co należy zrobić, aby ominąć to ograniczenie systemu operacyjnego i uruchomić Shake po kliknięciu jego ikony w folderze Aplikacje lub w Docku?

  2. Jeśli pierwszy jest niemożliwy, jak pozbyć się white crossed-out circlenakładki na ikonie Shake'a (w tym przypadku nie działa zwykłe zastąpienie ikony)?

PS

ZNALEŹŁEM MOŻLIWE ROZWIĄZANIE (dzięki Thomasowi Voßenowi): Shake na Mac OS X 10.11.6

  1. Zrób duplikat Shake.
  2. Wybierz „Pokaż zawartość pakietu”
  3. Przejdź do folderu „Spis treści” i otwórz Info.plist. Xcode ma edytor plist.
  4. Edytuj wpis com.apple.shakei zmień go na podobny com.apple.shake4.
  5. Zapisz plik plist.

Teraz można rozpocząć Shake podwójnym kliknięciem w Finderze w High Sierra 10.13.5.

Ale nie ma Info.plistpliku w Contentsfolderze.


źródło
1
Myślę, że Apple ma jakąś starą czarną listę aplikacji wbudowaną w system operacyjny, która uniemożliwia uruchomienie niektórych starych aplikacji. Nie mam pojęcia dlaczego. iMovie HD robi dokładnie to samo - uruchamia się dobrze z terminala, ale wysyła ten komunikat, jeśli spróbujesz go uruchomić normalnie.
Wowfunhappy
Pomysł jest prosty: przestań wspierać stare API))
1
Jednak same interfejsy API są nadal w toku, o czym świadczy fakt, że można uruchomić plik binarny bezpośrednio przez terminal. Więc po prostu blokują aplikację, która w przeciwnym razie działałaby dobrze.
Wowfunhappy
Nienaruszone, ale najprawdopodobniej oficjalnie przestarzałe.
calum_b

Odpowiedzi:

7

Twoje pytanie odpowiada samo.

Apple Shake został zbudowany na 32-bitowym interfejsie API Carbon. Z pewnością rozumiem, że nie jest to 64-bitowe API Cocoa

Pomijając argument 32-bitowy i 64-bitowy; Kakao jest całkowicie inne niż węgiel. Nie będzie działać, ponieważ interfejsy API, do których odnosi się Shake (Carbon), nie są kompatybilne z tym, co teraz uruchamiasz (Cocoa).

Ważne jest, aby pamiętać, że Carbon został zdeprecjonowany w 2012 roku wraz z wydaniem Mountain Lion (OS X 10.8.x). Pamiętaj, dlaczego i kiedy Apple dodaje / usuwa funkcje jest całkowicie ich przywilejem.

W 2012 roku, wraz z wydaniem OS X 10.8 Mountain Lion, większość interfejsów API Carbon została uznana za przestarzałą. Interfejsy API są nadal dostępne dla programistów i wszystkie aplikacje Carbon będą działać, ale interfejsy API nie będą już aktualizowane.

Jeśli chodzi o Shake'a działającego w Terminalu, jest to zupełnie inny scenariusz - Cocoa i Carbon nie wchodzą w grę - to wyłącznie interfejs tekstowy.

AKTUALIZACJA: Po kilku badaniach odkryłem dwie rzeczy:

  • Shake został zdegradowany do „niekompatybilnego oprogramowania”, a Finder go nie uruchomi. Kropka.

  • Istnieje obejście (patrz poniżej), aby uzyskać funkcjonalność w El Capitan, ponieważ biblioteki Carbon są nadal uwzględniane, choć przestarzałe. Uwaga: nie zostało przetestowane / potwierdzone w Sierra / High Sierra. Ponieważ Apple uważa to za „niekompatybilne oprogramowanie”, nie ma gwarancji, że obejście będzie w pełni skuteczne lub na jak długo. YMMV.

Pracuj wokół

  1. Kliknij prawym przyciskiem myszy Shake.App
  2. Przejdź do Pokaż zawartość pakietu .
  3. Przejdź do Spis treści -> MacOS -> potrząśnij (wybierz shakenie tshake);
  4. Kliknij dwukrotnie shake. Powinien najpierw otworzyć okno terminala, a następnie Shake powinien być uruchomiony.
  5. Utwórz alias (skrót) pliku i umieść go w dowolnym momencie. Launchpad nie będzie mógł go zobaczyć , chociaż możesz mieć skrót / alias w folderze Aplikacje.
Allan
źródło
Zgadzam się z Tobą, ale ... Jeśli zainstaluję Shake na Mac OS X 10.9, a następnie wykonam instalację OS X 10.11 (nie jest czysta instalacja), Shake działa dobrze za pośrednictwem interfejsu użytkownika i Terminalu w El Capitan. I nie ma przekreślonego białego okręgu na ikonie Shake'a. To dość dziwne.
1
Instalujesz Shake w systemie z wymaganymi bibliotekami UI, a następnie aktualizujesz, ale kiedy instalujesz na systemie bez wspomnianych bibliotek, to nie działa? W wersji 10.8.x Carbon został uznany za przestarzały - co oznacza, że ​​został włączony, ale nie zaktualizowany. 2 wersje później Apple oczywiście przestał włączać biblioteki.
Allan
Znowu się zgadzam. Czy mogę wskrzesić Shake w interfejsie użytkownika El Capital? Chodzi mi o to, żeby go uruchomić, klikając jego ikonę?
Zacznij od tego: apple.co/2tHY9qp Coco jest dosłownie najwyższą warstwą w ramach, w której narzędzia CLI działają w dolnej części warstwy Core OS.
Allan
Już to przeczytałem. Pozornie mówimy o różnych rzeczach. Chodzi o to, że jeśli napiszę „shake” w Terminalu, dostanę GUI Apple Shake (nie ukryty Apple Shake kontrolowany przez linię poleceń). Dostaję Apple Shake na Carbon API (nie jego silnik z interfejsem tekstowym).
5

To ja myślę głośno, że tak powiem, ale jedną rzeczą, którą warto wypróbować, jest użycie AppleScript lub Automatora do stworzenia aplikacji, która zrobi to, co teraz robisz ręcznie przez Terminal. Gdy to zrobisz, dodanie aplikacji do folderu Aplikacje udostępni ją Launchpadowi, Dockowi itp.

Nie jestem pewien, jak dobrze znasz się na AppleScript lub Automatorze, ale wykorzystując Automator jako przykład, proces byłby zasadniczo zgodny z następującymi zasadami:

  1. Uruchom Automator (zwykle znajduje się w folderze Aplikacje)
  2. Przejdź do Plik> Nowy
  3. Wybierz aplikację i kliknij Wybierz.
  4. Nad drugą kolumną (więcej po lewej) zobaczysz pole wyszukiwania na górze długiej listy
  5. Wpisz „Uruchom” w polu, aby przefiltrować listę
  6. Jedną z opcji będzie Uruchom skrypt powłoki
  7. Kliknij dwukrotnie tę opcję
  8. Spowoduje to dodanie okna Uruchom skrypt powłoki po prawej stronie.
  9. Teraz skonfiguruj i wprowadź skrypt, który musisz powielić, co już robisz
  10. Przejdź do Plik> Zapisz (lub użyj commandS), aby zapisać to jako aplikację

Teraz powinieneś być w stanie dwukrotnie kliknąć utworzoną aplikację, aby uruchomić Shake. Możesz także zmienić ikonę aplikacji na dowolną, dodać ją do Docka itp. Będzie ona również dostępna w Launchpadzie.

UWAGA: - Nie jestem pewien, czy nadal mam Shake'a zainstalowanego na jednym z moich komputerów Mac, więc nie przetestowałem tego, aby upewnić się, że będzie on działał w szczególności z Shake, ale teoretycznie powinno być dobrze na podstawie tego, co już robisz.

Monomeeth
źródło
5

Działa w macOS 10.13.5 High Sierra . Zrobiłem Info.plisti dodałem do nich te linie:

<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>

Carbon API oraz API Cocoa są ściśle zintegrowane z niskopoziomowym Core Foundation API ( CF).

Oto przydatne informacje o Bundlessystemie MacOS i iOS:

Przewodnik programowania pakietów - informacje o pakietach

Przewodnik programowania pakietów - Struktury pakietów

Teraz, klikając ikonę Shake'a na Docku, mogę uruchomić Shake w GUI High Sierra.

wprowadź tutaj opis obrazu

Mogę go uruchomić nie tylko z Launchpada, ale także z Terminalu. Jednocześnie pozwala mi uruchamiać wiele instancji Shake.

wprowadź tutaj opis obrazu


źródło
To wspaniale! Cieszę się, że znalazłeś rozwiązanie, które działa dla ciebie. :) I dziękuję, że wróciłeś, aby podzielić się nim ze społecznością. Jestem pewien, że pomoże to również innym po drodze!
Monomeeth