У меня есть продукт на основе функций, который построен с использованием Eclipse. Моя проблема в том, что я включил функцию самообновления в приложение rcp, и после обновления пакет приложений переписан (я имею в виду пакет.app, включая Info.plist). Мне нужно отредактировать Info.plist, потому что у меня есть некоторые важные ключи (например, LSBackgroundOnly, который является критическим, и аргумент "-vm" eclipse, если у клиентов нет JRE, установленного на их компьютерах). Итак, после обновления все мои модификации удалены, и я хотел бы их сохранить.
Мои вопросы:
возможно ли создать пользовательский Info.plist, который будет автоматически упакован в комплекте Eclipse? Если да, то как я могу это сделать?
Если нет, могу ли я добавить некоторые свойства, которые будут автоматически добавлены в значение Info.plist по eclipse? Если да, то как?
Спасибо за вашу помощь.
Narutim8
Итак, наконец, я нашел решение, так просто, что я даже не думал о...
Хитрость заключается в том, чтобы найти в коде правильное место, где обновление запускается приложением, и скопировать Info.plist в другое место (или создать временный файл).
Мы также должны найти метод, который вызывается сразу после обновления (прямо перед перезапуском приложения в нашем случае), и там, верните Info.plist (или напишите файл из временного). Я только что протестировал его, и он работает как шарм;)
PS: Info.plist отредактирован скриптом, запущенным после установки приложения, предоставленным .pkg.
Надеясь, что это поможет,
narutim8
По-видимому, нет простого способа предоставить пользовательский файл Info.plist для продуктов Eclipse RCP - см. Eclipse Bugzilla 339526 с запросом на функцию.
Если вы построите Maven Tycho, вы можете обновить Info.plist после materialize-product
и до archive-product
. Для самообновления вам также необходимо обновить Info.plist внутри репозитория.
Я написал этот небольшой файл fix-info-plist-maven-plugin, чтобы сделать это в моей собственной сборке Tycho.
Вы можете попробовать добавить строку:
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.
См. Здесь для получения дополнительной информации о "корневых файлах"
Export > Eclipse product
используя файл xxx.product, попробуйте установить опцию Generate p2 repository
. По какой-то причине все происходит в желаемом для меня порядке с выбранным вариантом.