Не удается полностью использовать приложение Apple Shake в macOS 10.13 High Sierra

10

В июле 2009 года Apple прекратила Shake. Apple не объявила о прямой замене приложения, но некоторые функции (например, стабилизация и оценка оптического потока) теперь доступны в Final Cut Pro X 10.4 и Motion 5.4 в 2018 году.

Apple Shake был построен на 32-разрядной версии Carbon API. Я, конечно, понимаю, что это не 64-битные Cocoa API, эти API разные. Но Carbon.frameworkон все еще включен в /System/Library/Frameworks/High Sierra, Sierra или El Capitan, и его могут использовать старые приложения (такие как Shake, Color, Soundtrack Pro).

Я все еще использую Shake в High Sierra при запуске Shake через приложение Terminal:

введите описание изображения здесь

введите описание изображения здесь

Но я не могу (по понятной причине) запустить Shake, щелкнув его значок в Applicationsпапке:

введите описание изображения здесь

Итак, у меня есть два вопроса:

  1. Что я должен сделать, чтобы обойти это ограничение ОС и запустить Shake после нажатия на его значок в папке «Программы» или в Dock?

  2. Если первое невозможно, как избавиться от white crossed-out circleналожения на иконку Shake (обычная замена иконки в этом случае не работает)?

PS

Я НАШЕЛ ВОЗМОЖНОЕ РЕШЕНИЕ (спасибо Томасу Воссену): Shake на Mac OS X 10.11.6

  1. Сделайте копию Shake.
  2. Выберите «Показать содержимое пакета»
  3. Перейдите в папку «Содержание» и откройте Info.plist. Xcode имеет редактор списков.
  4. Отредактируйте запись com.apple.shakeи измените ее на что-то вроде com.apple.shake4.
  5. Сохраните файл plist.

Теперь можно запустить Shake с помощью двойного щелчка в Finder в High Sierra 10.13.5.

Но Info.plistв Contentsпапке нет файла .


источник
1
Я думаю, что у Apple есть какой-то старый черный список приложений, встроенный в ОС, который мешает запуску некоторых старых приложений. Понятия не имею почему. iMovie HD делает то же самое - запускает нормально с терминала, но выдает это сообщение, если вы пытаетесь запустить его нормально.
Wowfunhappy
Идея проста: прекратить поддержку старых API))
1
Но сами API все еще в такте, о чем свидетельствует тот факт, что вы можете запускать бинарный файл напрямую через терминал. Так что они просто блокируют приложение, которое в противном случае работало бы нормально.
Wowfunhappy
Неповрежденный, но, скорее всего, официально устарел.
calum_b

Ответы:

7

Ваш вопрос отвечает сам.

Apple Shake был построен на 32-битном Carbon API. Я конечно понимаю, что это не 64-битный API Какао

Оставляя в стороне 32-битный или 64-битный аргумент; Какао полностью отличается от углерода. Он не будет работать, потому что API, на которые ссылается Shake (Carbon), несовместимы с тем, что вы используете сейчас (Cocoa).

Важно отметить, что Carbon устарела в 2012 году с выпуском Mountain Lion (OS X 10.8.x). Помните, почему и когда Apple добавляет / удаляет функции, это полностью их прерогатива.

В 2012 году, с выпуском OS X 10.8 Mountain Lion, большинство API Carbon были признаны устаревшими. API все еще доступны для разработчиков, и все приложения Carbon будут работать, но API больше не будут обновляться.

Что касается Shake, запущенного в Terminal, то это совершенно другой сценарий - Cocoa и Carbon не вступают в игру - это строго текстовый интерфейс.

ОБНОВЛЕНИЕ: После небольшого исследования я обнаружил две вещи:

  • Shake переведен в «несовместимое программное обеспечение», и Finder не запустит его. Период.

  • Есть обходной путь (см. Ниже), чтобы заставить его работать в El Capitan, потому что библиотеки Carbon все еще включены, хотя и устарели. Примечание: это не было проверено / подтверждено в Сьерра / Хай Сьерра. Поскольку Apple считает это «Несовместимым программным обеспечением», нет гарантии, что обходной путь будет работать полностью или в течение какого времени. YMMV.

Работа вокруг

  1. Щелкните правой кнопкой мыши Shake.App.
  2. Перейти к Показать содержимое пакета .
  3. Перейдите в Содержание -> MacOS -> встряхнуть ( shakeне выберите tshake);
  4. Дважды щелкните shake. Сначала нужно открыть окно терминала, а затем запустить Shake.
  5. Создайте псевдоним (ярлык) файла и разместите его в любое время. Панель запуска не сможет ее увидеть , хотя у вас может быть ярлык / псевдоним в папке «Приложения».
Аллан
источник
Я согласен с вами, но ... Если я устанавливаю Shake на Mac OS X 10.9, а затем выполняю установку OS X 10.11 (не чистая установка), Shake хорошо работает через пользовательский интерфейс и через терминал в El Capitan. И на иконке Шейка нет перечеркнутого белого круга. Это довольно странно.
1
Итак, вы устанавливаете Shake в системе с необходимыми библиотеками пользовательского интерфейса, а затем обновляете, но когда вы устанавливаете систему без этих библиотек, она не работает? В версии 10.8.x Carbon считался устаревшим, то есть он был включен, но не обновлен. Спустя 2 версии Apple явно перестала в том числе и библиотеки.
Аллан
Опять согласен. Могу ли я воскресить Shake в интерфейсе El Capital? Я имею в виду, чтобы запустить его, щелкнув по значку?
Начните с этого: apple.co/2tHY9qp Coco - это буквально самый верхний уровень в фреймворке, где инструменты CLI работают почти снизу на уровне Core OS.
Аллан
Я уже прочитал это. По-видимому, мы говорим о разных вещах. Дело в том, что если я наберу «shake» в Терминале, я получу графический интерфейс Apple Shake (а не скрытый Apple Shake, управляемый из командной строки). Я получаю Apple Shake на основе Carbon API (не его движок с текстовым интерфейсом).
5

Это я, так сказать, размышляю вслух, но стоит также попробовать использовать AppleScript или Automator для создания приложения, которое будет выполнять то, что вы сейчас делаете вручную через Terminal. После этого добавление приложения в папку «Приложения» сделает его доступным для Launchpad, Dock и т. Д.

Я не уверен, насколько вы знакомы с AppleScript или Automator, но на примере Automator процесс в целом будет выглядеть следующим образом:

  1. Запустите Automator (обычно находится в папке «Приложения»)
  2. Перейти к файлу> Новый
  3. Выберите приложение и нажмите кнопку «Выбрать».
  4. Над вторым столбцом (больше слева) вы увидите поле поиска в верхней части длинного списка.
  5. Введите «Выполнить» в поле, чтобы отфильтровать список
  6. Одним из вариантов будет запуск сценария оболочки
  7. Дважды щелкните по этой опции
  8. Это добавит окно Run Shell Script справа.
  9. Теперь настройте и введите скрипт, который вам нужен, чтобы повторить то, что вы уже делаете
  10. Перейдите в Файл> Сохранить (или используйте commandS), чтобы сохранить это как приложение

Теперь вы должны быть в состоянии дважды щелкните на приложении , которую вы создали для запуска сотрясения. Вы также можете изменить значок приложения на любой другой, добавить его в Dock и т. Д. Это также будет доступно в Launchpad.

ПРИМЕЧАНИЕ: - Я не уверен, что Shake все еще установлен на одном из моих Mac, поэтому я не проверял это, чтобы убедиться, что он будет работать конкретно с Shake, но в теории все должно быть хорошо, исходя из того, что ты уже делаешь.

Мономет
источник
5

Работает в macOS 10.13.5 High Sierra . Я сделал Info.plistи добавил следующие строки:

<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, а также Cocoa API тесно интегрированы с низкоуровневым Core Foundation API ( CF).

Вот полезная информация о BundlesMacOS и iOS:

Руководство по программированию пакетов - О пакетах

Руководство по программированию пакета - Структуры пакета

Теперь, щелкнув значок Shake в Dock, я могу запустить Shake в графическом интерфейсе High Sierra.

введите описание изображения здесь

Я могу запустить его не только с Launchpad, но и через терминал. Это позволяет одновременно запускать несколько экземпляров Shake.

введите описание изображения здесь


источник
Замечательно! Я рад, что вы нашли решение, которое работает для вас. :) И спасибо, что вернулись, чтобы поделиться этим с сообществом. Я уверен, что это поможет другим на этом пути!
Мономет
Из ответа мне не ясно - что именно изменилось в вашем info.plist по сравнению с оригиналом? Я хотел бы знать, что конкретно это исправить, так что это может быть использовано для других приложений!
Wowfunhappy