mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-06-29 12:49:53 +00:00
41 lines
1.3 KiB
Swift
41 lines
1.3 KiB
Swift
//
|
|
// PushEnvironment.swift
|
|
// SimpleX (iOS)
|
|
//
|
|
// Created by Evgeny on 27/06/2022.
|
|
// Copyright © 2022 SimpleX Chat. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import SimpleXChat
|
|
|
|
let pushEnvironment: PushEnvironment = {
|
|
guard let provisioningProfile = try? provisioningProfile(),
|
|
let entitlements = provisioningProfile["Entitlements"] as? [String: Any],
|
|
let environment = entitlements["aps-environment"] as? String,
|
|
let env = PushEnvironment(rawValue: environment)
|
|
else {
|
|
logger.warning("pushEnvironment: unknown, assuming production")
|
|
return .production
|
|
}
|
|
logger.debug("pushEnvironment: \(env.rawValue)")
|
|
return env
|
|
}()
|
|
|
|
private func provisioningProfile() throws -> [String: Any]? {
|
|
guard let url = Bundle.main.url(forResource: "embedded", withExtension: "mobileprovision") else {
|
|
return nil
|
|
}
|
|
|
|
let binaryString = try String(contentsOf: url, encoding: .isoLatin1)
|
|
|
|
let scanner = Scanner(string: binaryString)
|
|
guard scanner.scanUpToString("<plist") != nil,
|
|
let plistString = scanner.scanUpToString("</plist>"),
|
|
let data = (plistString + "</plist>").data(using: .isoLatin1)
|
|
else {
|
|
return nil
|
|
}
|
|
|
|
return try PropertyListSerialization.propertyList(from: data, options: [], format: nil) as? [String: Any]
|
|
}
|