Main.bundle.infoDictionary возвращает мне пустой словарь - PullRequest
0 голосов
/ 11 января 2019

В моем проекте у меня есть отдельный модуль для сетевого кода, в котором мне нужно указать номер версии приложения в заголовке каждого запроса.

Во время вызова инициализации сетевого менеджера Bundle.main.infoDictionary?["CFBundleShortVersionString"], поскольку infoDictionary пуст, хотя основной пакет загружен.

Ответы [ 3 ]

0 голосов
/ 11 января 2019

вы можете использовать следующее расширение

extension Bundle {
    var versionNumber: String? {
        return infoDictionary?["CFBundleShortVersionString"] as? String
    }
    var buildNumber: String? {
        return infoDictionary?["CFBundleVersion"] as? String
    }
}

, а затем используйте его так:

Bundle.main.versionNumber
0 голосов
/ 11 января 2019

Попробуйте это:

let bundle = Bundle(for: type(of: self))
if let version = bundle.infoDictionary?["CFBundleShortVersionString"] as? String {
        print(version)
}
0 голосов
/ 11 января 2019
if let version = Bundle.main.infoDictionary?["CFBundleVersion"] as? String {
    print(version)
}

Вы можете попробовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...