mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 14:53:25 +01:00
Refactors ConnectionManager to use arbitrary RequestHandlers and ConnectionHandlers. This allows the core AltServer request logic to be shared across different targets with different connection types.
54 lines
1.5 KiB
Swift
54 lines
1.5 KiB
Swift
//
|
|
// Bundle+AltStore.swift
|
|
// AltStore
|
|
//
|
|
// Created by Riley Testut on 5/30/19.
|
|
// Copyright © 2019 Riley Testut. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public extension Bundle
|
|
{
|
|
struct Info
|
|
{
|
|
public static let deviceID = "ALTDeviceID"
|
|
public static let serverID = "ALTServerID"
|
|
public static let certificateID = "ALTCertificateID"
|
|
public static let appGroups = "ALTAppGroups"
|
|
public static let altBundleID = "ALTBundleIdentifier"
|
|
|
|
public static let urlTypes = "CFBundleURLTypes"
|
|
public static let exportedUTIs = "UTExportedTypeDeclarations"
|
|
}
|
|
}
|
|
|
|
public extension Bundle
|
|
{
|
|
static var baseAltStoreAppGroupID = "group.com.rileytestut.AltStore"
|
|
|
|
var infoPlistURL: URL {
|
|
let infoPlistURL = self.bundleURL.appendingPathComponent("Info.plist")
|
|
return infoPlistURL
|
|
}
|
|
|
|
var provisioningProfileURL: URL {
|
|
let infoPlistURL = self.bundleURL.appendingPathComponent("embedded.mobileprovision")
|
|
return infoPlistURL
|
|
}
|
|
|
|
var certificateURL: URL {
|
|
let infoPlistURL = self.bundleURL.appendingPathComponent("ALTCertificate.p12")
|
|
return infoPlistURL
|
|
}
|
|
|
|
var appGroups: [String] {
|
|
return self.infoDictionary?[Bundle.Info.appGroups] as? [String] ?? []
|
|
}
|
|
|
|
var altstoreAppGroup: String? {
|
|
let appGroup = self.appGroups.first { $0.contains(Bundle.baseAltStoreAppGroupID) }
|
|
return appGroup
|
|
}
|
|
}
|