Получить версию pod из podspec или info.plist в коде - PullRequest
0 голосов
/ 15 октября 2018

Я создал свой собственный модуль pod с файлом podspec, который содержит s.version = "0.4.7", который я хочу программно добавить в код, поэтому всякий раз, когда приложение запускается, оно отправляет версию pod на сервер.

Еще одно место, где можно получить версию pod, - это приведенный ниже plist-файл, который называется «Bundle version string» 0.4.7

enter image description here

Я пытался использовать let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? Stringно он получает версию из файла Apps Info.plist.

Ответы [ 2 ]

0 голосов
/ 27 августа 2019

Вы можете получить пакет более явно: Bundle(for: SomePodClass.self), где SomePodClass - любой класс, который находится внутри вашего модуля.

Также вы можете для удобства превратить его в расширение внутри вашего модуля:

public extension Bundle {
    class var somePodName: Bundle {
        return Bundle(for: SomePodClass.self)
    }
}

напишите какой-нибудь файл конфигурации для вашего Pod:

public enum SomePodConfiguration {
    static var version: String {
        guard let version = Bundle.somePodName
            .infoDictionary?["CFBundleShortVersionString"] as? String else { return "Unknown" }
        return version
    }
}

и, наконец, получите версию Pod:

SomePodConfiguration.somePodName.version
0 голосов
/ 15 октября 2018

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

Во-первых, щелкните по файлу Pods Project, он покажет все библиотеки, которые вы устанавливаете по конкретному в Podfile.enter image description here

Например, я получу версию RxSwift, например, такую:

  • Шаг 1: Получите идентификатор пакета RxSwift, нажав наRxSwift Target> General> Copy Bundle Identifier (org.cocoapods.RxSwift)

  • Шаг 2: Получить версию по этому коду

(обратите внимание, что org.cocoapods.RxSwift это то, что вы получаете из шага 1)

if let version = Bundle(identifier: "org.cocoapods.RxSwift")?.infoDictionary?["CFBundleShortVersionString"] as? String {
    print(version)
}

И вы можете получить результат, подобный этому

"4.3.1"
...