Sparkle Framework: как изменить имя приложения?
У меня есть приложение Какао, для которого я изменил название. Я использую отличную Sparkle Framework ( http://sparkle-project.org/) для предоставления обновлений своим пользователям.
К сожалению, похоже, что Sparkle не поддерживает изменения имени приложения из коробки. Я надеюсь, что есть какой-то взлом, чтобы я мог предоставить пользователям, у которых уже есть приложение, обновление до недавно названной версии.
1 ответ
Я не уверен, что это возможно, используя только ванильный каркас Sparkle. Причина в том, что имя файла приложения может отличаться от CFBundleName
определяется в Info.plist. Sparkle должен убедиться, что он обновляет правильную структуру файловой системы, независимо от того, как она может быть названа.
Рассмотрим следующий сценарий:
- Пользователь загружает и устанавливает
Adium.app
чьяCFBundleName
являетсяAdium
, - Пользователь переименовывает его в
Instant Messenger.app
, - Sparkle загружает и устанавливает обновление.
- После обновления имя файла только что обновленного приложения остается
Instant Messenger.app
и CFBundleName все ещеAdium
,
Вы можете либо надеяться, что тот факт, что имя вашего приложения изменилось в строке меню, побудит пользователя переименовать его самостоятельно, либо вы можете использовать некоторые хитрости при запуске приложения, чтобы закрыть приложение, переименовать его и перезапустить, если оно определенно критерии выполнены. Хотя я не рекомендую последнее, пользователям не нравятся приложения, решающие перемещаться без разрешения.