Изменить Info.plist после сборки продукта Eclipse

1

У меня есть продукт на основе функций, который построен с использованием Eclipse. Моя проблема в том, что я включил функцию самообновления в приложение rcp, и после обновления пакет приложений переписан (я имею в виду пакет.app, включая Info.plist). Мне нужно отредактировать Info.plist, потому что у меня есть некоторые важные ключи (например, LSBackgroundOnly, который является критическим, и аргумент "-vm" eclipse, если у клиентов нет JRE, установленного на их компьютерах). Итак, после обновления все мои модификации удалены, и я хотел бы их сохранить.

Мои вопросы:

  • возможно ли создать пользовательский Info.plist, который будет автоматически упакован в комплекте Eclipse? Если да, то как я могу это сделать?

  • Если нет, могу ли я добавить некоторые свойства, которые будут автоматически добавлены в значение Info.plist по eclipse? Если да, то как?

Спасибо за вашу помощь.

Narutim8

Теги:
eclipse-rcp
info.plist

3 ответа

0
Лучший ответ

Итак, наконец, я нашел решение, так просто, что я даже не думал о...

Хитрость заключается в том, чтобы найти в коде правильное место, где обновление запускается приложением, и скопировать Info.plist в другое место (или создать временный файл).

Мы также должны найти метод, который вызывается сразу после обновления (прямо перед перезапуском приложения в нашем случае), и там, верните Info.plist (или напишите файл из временного). Я только что протестировал его, и он работает как шарм;)

PS: Info.plist отредактирован скриптом, запущенным после установки приложения, предоставленным .pkg.

Надеясь, что это поможет,

narutim8

2

По-видимому, нет простого способа предоставить пользовательский файл Info.plist для продуктов Eclipse RCP - см. Eclipse Bugzilla 339526 с запросом на функцию.

Если вы построите Maven Tycho, вы можете обновить Info.plist после materialize-product и до archive-product. Для самообновления вам также необходимо обновить Info.plist внутри репозитория.

Я написал этот небольшой файл fix-info-plist-maven-plugin, чтобы сделать это в моей собственной сборке Tycho.

  • 0
    Спасибо за ваш вклад! На самом деле, я использовал Maven только в течение короткого времени (месячная стажировка), и с тех пор я не занимался Java. Я проголосовал, возможно, кто-то найдет ваш ответ полезным :)
0

Вы можете попробовать добавить строку:

root.macosx.cocoa.x86_64.folder.YourAppName.app/Contents=file:Info.plist

к файлу build.properties одной из функций вашего продукта (должна быть функция, а не плагин).

Поместите измененный файл Info.plist в тот же каталог.

YourAppName - ваше имя приложения.

Пример копирует Info.plist в папку YourAppName.app/Contents, но только тогда, когда сборка предназначена для 64-разрядной Mac OS X.

См. Здесь для получения дополнительной информации о "корневых файлах"

  • 0
    Я только что попробовал то, что вы предложили. Сначала я подумал, что это не сработало, но после попытки другого способа (изменения имени info.plist) файл был создан при экспорте. Вердикт в том, что он работает, но не так, как я хочу ... Info.plist после копирования перезаписывается eclipse :(
  • 0
    Если вы используете Export > Eclipse product используя файл xxx.product, попробуйте установить опцию Generate p2 repository . По какой-то причине все происходит в желаемом для меня порядке с выбранным вариантом.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню