프로젝트를 하다보면 Bundle 을 이용해서 앱이름, 앱버전, 앱아이디 등을 가져와야 되는 경우가 많다.

Extension 만들어서 프로젝트마다 붙여놓고 시작하면 편할거 같다.

extension Bundle {
    
    /// 앱이름 정보
    static func appName() -> String? {
        guard let dictionary = Bundle.main.infoDictionary else {
            return nil
        }
        if let version : String = dictionary["CFBundleDisplayName"] as? String {
            return version
        } else {
            return nil
        }
    }
    
    /// 앱버전 정보
    static func appVersion() -> String? {
        
        guard let dictionary = Bundle.main.infoDictionary,
              let version = dictionary["CFBundleShortVersionString"] as? String else {return nil}
        //        let build = dictionary["CFBundleVersion"] as? String else {return nil}
        
        return String(describing: "\(version)")
        //    return String(describing: "\(version).\(build)")
    }
    
    /// 앱 빌드 버전
    static func appBuildNumber() -> String? {
        guard let dictionary = Bundle.main.infoDictionary,
                let build = dictionary["CFBundleVersion"] as? String else {return nil}
        
        return String(describing: "\(build)")
    }
    
    /// 앱 번들 아이디(패키지명)
    static func appBundleID() -> String? {
        var appBundleIdentifier: String?
        if let infomation = Bundle.main.infoDictionary {
            if let BundleIdentifier = infomation["CFBundleIdentifier"] as? String {
                appBundleIdentifier = BundleIdentifier
            }
        }
        
        return appBundleIdentifier
    }
}

+ Recent posts