42 lines
1.3 KiB
Swift
42 lines
1.3 KiB
Swift
//
|
|
// Copyright 2022 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import Foundation
|
|
|
|
extension Bundle {
|
|
|
|
private enum InfoPlistKey: String {
|
|
case bundleIdPrefix = "OWSBundleIDPrefix"
|
|
case merchantId = "OWSMerchantID"
|
|
}
|
|
|
|
private func infoPlistString(for key: InfoPlistKey) -> String? {
|
|
object(forInfoDictionaryKey: key.rawValue) as? String
|
|
}
|
|
|
|
/// Returns the value of the OWSBundleIDPrefix from current executable's Info.plist
|
|
/// Note: This does not parse the executable's bundleID. This only returns the value of OWSBundleIDPrefix
|
|
/// (which the bundleID should be derived from)
|
|
@objc
|
|
public var bundleIdPrefix: String {
|
|
if let prefix = infoPlistString(for: Self.InfoPlistKey.bundleIdPrefix) {
|
|
return prefix
|
|
} else {
|
|
owsFailDebug("Missing Info.plist entry for OWSBundleIDPrefix")
|
|
return "org.whispersystems"
|
|
}
|
|
}
|
|
|
|
/// Returns the value of the OWSMerchantID from current executable's Info.plist
|
|
@objc
|
|
public var merchantId: String {
|
|
if let prefix = infoPlistString(for: Self.InfoPlistKey.merchantId) {
|
|
return prefix
|
|
} else {
|
|
owsFailDebug("Missing Info.plist entry for OWSMerchantID")
|
|
return "org.signalfoundation"
|
|
}
|
|
}
|
|
}
|