Получить название приложения

У меня есть облегченная и полная версия, и я хочу, чтобы они работали с разными конфигурационными файлами.

Теперь мне нужно запросить в приложении, есть ли в названии приложения "lite", и загрузить соответствующий конфигурационный файл, который я не нашел, как это сделать. Любая идея? Или вообще есть лучший подход к этому?

Заранее спасибо Heiko

4 ответа

Решение

Пытаться

[[NSProcessInfo processInfo] processName]

Это возвращает имя процесса, которое обычно является именем вашего приложения.

Если вы хотите, чтобы то, что было помещено в файл Info.plist, используйте:

NSString * displayName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];

Ваше приложение имеет main() в main.m (если вы использовали шаблон). Он получает аргументы командной строки, и argv[0] должен быть полным путем приложения, которое вы можете проанализировать. Вам придется сохранить его в глобальной переменной.

Вы также можете проверить launchOptions в appDelegate, чтобы увидеть, есть ли он там тоже.

Попробуйте это для Swift:

if let appName = Bundle.main.infoDictionary?["CFBundleName"] as? String {
    print("App Name - \(appName)")
}

Также попробуйте это, если вы установили отображаемое имя

if let displayName = Bundle.main.infoDictionary?["CFBundleDisplayName"] as? String {
    print("App Display Name - \(displayName)")
}

Полезный трюк:

// Print bundle info dictionary to get complete details about app
print("Bundle.main.infoDictionary - \(Bundle.main.infoDictionary)")
Другие вопросы по тегам