diff --git a/SideStoreApp/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/SideStoreApp/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..919434a6
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideBackup.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideBackup.xcscheme
new file mode 100644
index 00000000..5da38bf4
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideBackup.xcscheme
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStore-Package.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStore-Package.xcscheme
new file mode 100644
index 00000000..863b03cb
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStore-Package.xcscheme
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStore.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStore.xcscheme
new file mode 100644
index 00000000..fb561c17
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStore.xcscheme
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore-Dynamic.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore-Dynamic.xcscheme
new file mode 100644
index 00000000..438a7965
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore-Dynamic.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore-Static.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore-Static.xcscheme
new file mode 100644
index 00000000..03008f35
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore-Static.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore.xcscheme
new file mode 100644
index 00000000..435240b7
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreCore.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit-Dynamic.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit-Dynamic.xcscheme
new file mode 100644
index 00000000..eda2f622
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit-Dynamic.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit-Static.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit-Static.xcscheme
new file mode 100644
index 00000000..06881652
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit-Static.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit.xcscheme
new file mode 100644
index 00000000..976e7810
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideStoreUIKit.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit-Dynamic.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit-Dynamic.xcscheme
new file mode 100644
index 00000000..5f0981ca
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit-Dynamic.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit-Static.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit-Static.xcscheme
new file mode 100644
index 00000000..78d2eda1
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit-Static.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit.xcscheme b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit.xcscheme
new file mode 100644
index 00000000..28dbb773
--- /dev/null
+++ b/SideStoreApp/.swiftpm/xcode/xcshareddata/xcschemes/SideWidgetKit.xcscheme
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SideStoreApp/Package.resolved b/SideStoreApp/Package.resolved
index e636bee2..9e76aa95 100644
--- a/SideStoreApp/Package.resolved
+++ b/SideStoreApp/Package.resolved
@@ -3,7 +3,7 @@
{
"identity" : "altsign",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/SideStore/AltSign",
+ "location" : "https://github.com/SideStore/AltSign.git",
"state" : {
"revision" : "eb4c74dcf6be2fb00a3edc0381aae59fbbdb4cf3",
"version" : "1.0.3"
@@ -12,7 +12,7 @@
{
"identity" : "appcenter-sdk-apple",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/microsoft/appcenter-sdk-apple",
+ "location" : "https://github.com/microsoft/appcenter-sdk-apple.git",
"state" : {
"revision" : "b2dc99cfedead0bad4e6573d86c5228c89cff332",
"version" : "4.4.3"
@@ -27,37 +27,19 @@
"revision" : "e754ab1c80920dd51a8e08290c912ac1c2ac8b58"
}
},
- {
- "identity" : "imobiledevice.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/SideStore/iMobileDevice.swift",
- "state" : {
- "revision" : "74e481106dd155c0cd21bca6795fd9fe5f751654",
- "version" : "1.0.5"
- }
- },
{
"identity" : "keychainaccess",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/kishikawakatsumi/KeychainAccess",
+ "location" : "https://github.com/kishikawakatsumi/KeychainAccess.git",
"state" : {
"revision" : "84e546727d66f1adc5439debad16270d0fdd04e7",
"version" : "4.2.2"
}
},
- {
- "identity" : "launchatlogin",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/sindresorhus/LaunchAtLogin.git",
- "state" : {
- "revision" : "7ad6331f9c38953eb1ce8737758e18f7607e984a",
- "version" : "5.0.0"
- }
- },
{
"identity" : "nuke",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/kean/Nuke",
+ "location" : "https://github.com/kean/Nuke.git",
"state" : {
"revision" : "9318d02a8a6d20af56505c9673261c1fd3b3aebe",
"version" : "7.6.3"
@@ -84,7 +66,7 @@
{
"identity" : "roxas",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/JoeMatt/Roxas",
+ "location" : "https://github.com/JoeMatt/Roxas.git",
"state" : {
"revision" : "17338c09ec0ffeea4c68135f17c1f801a3d6d10d",
"version" : "1.2.2"
@@ -93,7 +75,7 @@
{
"identity" : "semanticversion",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/SwiftPackageIndex/SemanticVersion",
+ "location" : "https://github.com/SwiftPackageIndex/SemanticVersion.git",
"state" : {
"revision" : "fc670910dc0903cc269b3d0b776cda5703979c4e",
"version" : "0.3.5"
@@ -102,12 +84,30 @@
{
"identity" : "sidekit",
"kind" : "remoteSourceControl",
- "location" : "https://github.com/SideStore/SideKit",
+ "location" : "https://github.com/SideStore/SideKit.git",
"state" : {
"revision" : "7ea34a09b52c104077dea8e0b90f8dc55d43b36b",
"version" : "0.1.0"
}
},
+ {
+ "identity" : "swift-log",
+ "kind" : "remoteSourceControl",
+ "location" : "https://github.com/apple/swift-log.git",
+ "state" : {
+ "revision" : "32e8d724467f8fe623624570367e3d50c5638e46",
+ "version" : "1.5.2"
+ }
+ },
+ {
+ "identity" : "swift-log-swiftybeaver",
+ "kind" : "remoteSourceControl",
+ "location" : "https://github.com/ShivaHuang/swift-log-SwiftyBeaver.git",
+ "state" : {
+ "revision" : "7b6f329f47530583546be82bb14060aba888cd43",
+ "version" : "0.1.0"
+ }
+ },
{
"identity" : "swiftpmplugins",
"kind" : "remoteSourceControl",
@@ -116,6 +116,15 @@
"revision" : "2e4833a3ca65d0aaa986138b8ef350b7f549ba28",
"version" : "1.0.0"
}
+ },
+ {
+ "identity" : "swiftybeaver",
+ "kind" : "remoteSourceControl",
+ "location" : "https://github.com/SwiftyBeaver/SwiftyBeaver.git",
+ "state" : {
+ "revision" : "12b5acf96d98f91d50de447369bd18df74600f1a",
+ "version" : "1.9.6"
+ }
}
],
"version" : 2
diff --git a/SideStoreApp/Package.swift b/SideStoreApp/Package.swift
index 7dfc703c..79894e21 100644
--- a/SideStoreApp/Package.swift
+++ b/SideStoreApp/Package.swift
@@ -2,7 +2,6 @@
// The swift-tools-version declares the minimum version of Swift required to build this package.
import Foundation
-import os.log
import PackageDescription
// Process enviroment variables.
@@ -10,6 +9,8 @@ typealias EnviromentBool = (var: String, default: Bool)
// Possible keys for `env` and their default value
let USE_CARGO = envBool(("USE_CARGO", false))
+let USE_LOCAL_MINIMUXER = envBool(("USE_LOCAL_MINIMUXER", true))
+let USE_LOCAL_EM_PROXY = envBool(("USE_LOCAL_EM_PROXY", true))
let USE_CXX_INTEROP = envBool(("USE_CXX_INTEROP", false))
let USE_CXX_MODULES = envBool(("USE_CXX_MODULES", false))
let INHIBIT_UPSTREAM_WARNINGS = envBool(("INHIBIT_UPSTREAM_WARNINGS", true))
@@ -19,6 +20,11 @@ let unsafe_flags: [String] = INHIBIT_UPSTREAM_WARNINGS ? ["-w"] : [String]()
let unsafe_flags_cxx: [String] = INHIBIT_UPSTREAM_WARNINGS ? ["-w", "-Wno-module-import-in-extern-c"] : ["-Wno-module-import-in-extern-c"]
+enum Consts {
+ static let minimuxer_checksum: String = "57b5126605ad127f209a57a2f8e6fe7230ce9acabc499f2b7510983ddec954bb"
+ static let em_proxy_checksum: String = "79f90075b8ff2f47540a5bccf5fb7740905cda63463f833e2505256237df3c1b"
+}
+
extension Package.Dependency {
/// The combination of all the dependencies for the Package.
enum SideStore {
@@ -32,21 +38,34 @@ extension Package.Dependency {
/// Side Store Team Packages
static let Packages_SideStoreTeam: [Package.Dependency] = [
.github("SideStore/AltSign", from: "1.0.3"),
- .github("SideStore/iMobileDevice.swift", from: "1.0.5"),
+ .package(name: "iMobileDevice.swift", path: "../../iMobileDevice.swift"),
+// .github("SideStore/iMobileDevice.swift", from: "1.0.5"),
.github("SideStore/SideKit", from: "0.1.0"),
/// @JoeMatt updated fork for Riley's `Roxas`
.github("JoeMatt/Roxas", from: "1.2.2"),
]
+ #if HAVE_MACOS_DAEMON
+ static let Packages_macOS_Daemon: [Package.Dependency] = [
+ .github("sindresorhus/LaunchAtLogin", from: "5.0.0")
+ ]
+ #else
+ static let Packages_macOS_Daemon: [Package.Dependency] = []
+ #endif
+
/// 3rd party Packages
static let Packages_3rdParty: [Package.Dependency] = [
- .github("SwiftPackageIndex/SemanticVersion", from: "0.3.5"),
+ // Logging
+ .github("apple/swift-log", from: "1.5.2"),
+ // XCode console output
+ .github("ShivaHuang/swift-log-SwiftyBeaver", from: "0.1.0"),
+
.github("johnxnguyen/Down", branch: "master"),
.github("kean/Nuke", from: "7.0.0"),
.github("kishikawakatsumi/KeychainAccess", from: "4.2.0"),
.github("microsoft/appcenter-sdk-apple", from: "4.2.0"),
- .github("sindresorhus/LaunchAtLogin", from: "5.0.0"),
- ]
+ .github("SwiftPackageIndex/SemanticVersion", from: "0.3.5")
+ ] + Packages_macOS_Daemon
static let Plugins_BuildTools: [Package.Dependency] = [
// Plugins
@@ -141,8 +160,11 @@ let AppCenterCrashes : Target.Dependency = .product(name: "AppCenterCrashes", p
let CoreCrypto : Target.Dependency = .product(name: "CoreCrypto", package: "AltSign")
let CCoreCrypto : Target.Dependency = .product(name: "CCoreCrypto", package: "AltSign")
let libimobiledevice: Target.Dependency = .product(name: "libimobiledevice", package: "iMobileDevice.swift")
+let iMobileDevice : Target.Dependency = .product(name: "iMobileDevice", package: "iMobileDevice.swift")
let Roxas : Target.Dependency = .product(name: "Roxas", package: "Roxas")
let RoxasUI : Target.Dependency = .product(name: "RoxasUI", package: "Roxas")
+let Logging : Target.Dependency = .product(name: "Logging", package: "swift-log")
+let LoggingSwiftyBeaver : Target.Dependency = .product(name: "LoggingSwiftyBeaver", package: "swift-log-SwiftyBeaver")
// MARK: - Linking
let frameworksCommon: [LinkerSetting] = [ "Avfoundation",
@@ -177,6 +199,7 @@ let package = Package(
.tvOS(.v14),
.macCatalyst(.v14),
.macOS(.v12),
+ .driverKit("99")
],
products: Product.products,
dependencies: Package.Dependency.SideStore.dependencies,
@@ -192,9 +215,9 @@ let package = Package(
extension Product {
static let products: [Product] = [
// Modules
- SideStoreAppKit.0,
- SideStoreAppKit.static,
- SideStoreAppKit.dynamic,
+ SideStoreUIKit.0,
+ SideStoreUIKit.static,
+ SideStoreUIKit.dynamic,
SideStoreCore.0,
SideStoreCore.static,
@@ -217,8 +240,8 @@ extension Product {
static let cliProducts: [Product] = []
#endif
- // SideStoreAppKit
- static let SideStoreAppKit = librarySet("SideStoreAppKit")
+ // SideStoreUIKit
+ static let SideStoreUIKit = librarySet("SideStoreUIKit")
// SideStoreCore
static let SideStoreCore = librarySet("SideStoreCore")
@@ -255,7 +278,7 @@ extension Target {
}
typealias TargetPair = (target: PackageDescription.Target, testTarget: PackageDescription.Target?)
-// MARK: - SideStoreAppKit
+// MARK: - SideStoreUIKit
extension Target.SideStore {
/// All the targets fo be added to `Package(targets:)`
@@ -263,8 +286,11 @@ extension Target.SideStore {
/// __Public Targets__
static let publicTargets: [Target] = [
- // SideStoreAppKit
- SideStoreAppKit,
+ // SideStoreUIKit
+ SideStoreUIKit,
+
+ // SideUIShared
+ SideUIShared,
// iOS Widget
SideWidgetKit,
@@ -299,10 +325,10 @@ extension Target.SideStore {
Cargo.Plugins
}()
- // MARK: - SideStoreAppKit
- static let SideStoreAppKit: Target =
+ // MARK: - SideStoreUIKit
+ static let SideStoreUIKit: Target =
.target(
- name: "SideStoreAppKit",
+ name: "SideStoreUIKit",
dependencies: [
AppCenterAnalytics,
AppCenterCrashes,
@@ -324,13 +350,40 @@ extension Target.SideStore {
plugins: [LoggerPlugin, IntentBuilderPlugin]
)
+ // MARK: - SideUIShared
+ static let SideUIShared: Target =
+ .target(
+ name: "SideUIShared",
+ dependencies: [
+ AppCenterAnalytics,
+ AppCenterCrashes,
+ "AltSign",
+ "Down",
+ "EmotionalDamage",
+ "KeychainAccess",
+ libimobiledevice,
+ iMobileDevice,
+ "MiniMuxer",
+ Roxas,
+ RoxasUI,
+ "SideKit",
+ "SidePatcher",
+ "SideStoreCore",
+ ],
+ resources: [],
+ linkerSettings: linkerSettings,
+ plugins: [LoggerPlugin, IntentBuilderPlugin]
+ )
+
// MARK: - SideWidgetKit
static let SideWidgetKit: Target =
.target(
name: "SideWidgetKit",
dependencies: [
+ Roxas,
+ RoxasUI,
"SideKit",
- "SideStoreAppKit",
+ "SideUIShared",
"SideStoreCore"
],
plugins: commonPlugins
@@ -344,7 +397,11 @@ extension Target.SideStore {
"AltSign",
"KeychainAccess",
Roxas,
- "SemanticVersion"],
+ "SemanticVersion",
+ Logging,
+ LoggingSwiftyBeaver,
+ "SideKit"
+ ],
plugins: commonPlugins),
.testTarget(
name: "SideStoreCoreTests",
@@ -408,9 +465,8 @@ extension Target.SideStore {
static let SideStore_app: Target = .executableTarget(
name: "SideStore",
- dependencies: [ "SideStoreAppKit" ],
+ dependencies: [ "SideStoreUIKit" ],
exclude: [
- "Resources/AltBackup.ipa",
"Resources/Info.info",
"Resources/Info.plist",
"Resources/SideStore.entitlements",
@@ -493,10 +549,13 @@ extension Target.SideStore {
].compactMap{$0}
// MARK: em_proxy
- private static let em_proxy_target: Target = .binaryTarget(
- name: "em_proxy",
- url: "https://github.com/SideStore/em_proxy/releases/download/build/em_proxy.xcframework.zip",
- checksum: "79f90075b8ff2f47540a5bccf5fb7740905cda63463f833e2505256237df3c1b")
+ private static let em_proxy_target: Target = USE_LOCAL_EM_PROXY ?
+ .binaryTarget(name: "em_proxy",
+ path: "Dependencies/em_proxy/em_proxy.xcframework") :
+ .binaryTarget(
+ name: "em_proxy",
+ url: "https://github.com/SideStore/em_proxy/releases/download/build/em_proxy.xcframework.zip",
+ checksum: Consts.em_proxy_checksum)
// MARK: - EmotionalDamage (Swift)
private static let emotionalDamageTarget: TargetPair = (
@@ -504,10 +563,12 @@ extension Target.SideStore {
.testTarget(name: "EmotionalDamageTests", dependencies: ["EmotionalDamage"]))
// MARK: minimuxer
- private static let minimuxer_target: Target =
+ private static let minimuxer_target: Target = USE_LOCAL_MINIMUXER ?
+ .binaryTarget(name: "minimuxer",
+ path: "Dependencies/minimuxer/minimuxer.xcframework") :
.binaryTarget(name: "minimuxer",
url: "https://github.com/SideStore/minimuxer/releases/download/build/minimuxer.xcframework.zip",
- checksum: "aa47182547b60f4f7560bdc0f25ea797c69419765003d16d5039c13b87930ed1")
+ checksum: Consts.minimuxer_checksum)
// MARK: MiniMuxer.Swift
private static let miniMuxerSwiftTarget: TargetPair = (
diff --git a/SideStoreApp/Sources/Cargo/Commands/Version.swift b/SideStoreApp/Sources/Cargo/Commands/Version.swift
index abf82250..5b7273ae 100644
--- a/SideStoreApp/Sources/Cargo/Commands/Version.swift
+++ b/SideStoreApp/Sources/Cargo/Commands/Version.swift
@@ -1,6 +1,9 @@
import ArgumentParser
import SwiftLintFramework
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
extension Cargo {
struct Version: ParsableCommand {
diff --git a/SideStoreApp/Sources/Cargo/swiftlint/Commands/Version.swift b/SideStoreApp/Sources/Cargo/swiftlint/Commands/Version.swift
index 6a8c45ee..187120fc 100644
--- a/SideStoreApp/Sources/Cargo/swiftlint/Commands/Version.swift
+++ b/SideStoreApp/Sources/Cargo/swiftlint/Commands/Version.swift
@@ -1,6 +1,9 @@
import ArgumentParser
import SwiftLintFramework
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
extension SwiftLint {
struct Version: ParsableCommand {
diff --git a/SideStoreApp/Sources/MiniMuxer/MiniMuxer.swift b/SideStoreApp/Sources/MiniMuxer/MiniMuxer.swift
index 6e0adc46..a262e949 100644
--- a/SideStoreApp/Sources/MiniMuxer/MiniMuxer.swift
+++ b/SideStoreApp/Sources/MiniMuxer/MiniMuxer.swift
@@ -6,7 +6,10 @@
//
import Foundation
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@_exported import minimuxer
public enum Uhoh: Error {
@@ -19,6 +22,7 @@ public func start_minimuxer(pairing_file: String) -> Int32 {
let pf_pointer = UnsafeMutablePointer(mutating: pf.utf8String)
let u = NSString(string: getDocumentsDirectory().absoluteString)
let u_ptr = UnsafeMutablePointer(mutating: u.utf8String)
+
return minimuxer_c_start(pf_pointer, u_ptr)
}
diff --git a/SideStoreApp/Sources/SideBackup/AppDelegate.swift b/SideStoreApp/Sources/SideBackup/AppDelegate.swift
index ef5b2ca8..169d06e5 100644
--- a/SideStoreApp/Sources/SideBackup/AppDelegate.swift
+++ b/SideStoreApp/Sources/SideBackup/AppDelegate.swift
@@ -7,7 +7,10 @@
//
import UIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
extension AppDelegate {
static let startBackupNotification = Notification.Name("io.altstore.StartBackup")
diff --git a/SideStoreApp/Sources/SideBackup/BackupController.swift b/SideStoreApp/Sources/SideBackup/BackupController.swift
index 36250abe..51f3e5a9 100644
--- a/SideStoreApp/Sources/SideBackup/BackupController.swift
+++ b/SideStoreApp/Sources/SideBackup/BackupController.swift
@@ -7,7 +7,10 @@
//
import Foundation
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import AltSign
import Roxas
diff --git a/SideStoreApp/Sources/SideDaemon/DaemonRequestHandler.swift b/SideStoreApp/Sources/SideDaemon/DaemonRequestHandler.swift
index 8c88fb32..0f868b7a 100644
--- a/SideStoreApp/Sources/SideDaemon/DaemonRequestHandler.swift
+++ b/SideStoreApp/Sources/SideDaemon/DaemonRequestHandler.swift
@@ -9,7 +9,10 @@
import Foundation
import SideKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
typealias DaemonConnectionManager = ConnectionManager
diff --git a/SideStoreApp/Sources/SideStore/AppDelegate.swift b/SideStoreApp/Sources/SideStore/AppDelegate.swift
index c0991758..44069dc7 100644
--- a/SideStoreApp/Sources/SideStore/AppDelegate.swift
+++ b/SideStoreApp/Sources/SideStore/AppDelegate.swift
@@ -10,7 +10,10 @@ import AVFoundation
import Intents
import UIKit
import UserNotifications
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import AltSign
import SideStoreCore
diff --git a/SideStoreApp/Sources/SideStore/Resources/AltBackup.ipa b/SideStoreApp/Sources/SideStore/Resources/AltBackup.ipa
deleted file mode 100644
index 2bba63eb..00000000
Binary files a/SideStoreApp/Sources/SideStore/Resources/AltBackup.ipa and /dev/null differ
diff --git a/SideStoreApp/Sources/SideStore/SceneDelegate.swift b/SideStoreApp/Sources/SideStore/SceneDelegate.swift
index 506e4ae8..4ae26420 100644
--- a/SideStoreApp/Sources/SideStore/SceneDelegate.swift
+++ b/SideStoreApp/Sources/SideStore/SceneDelegate.swift
@@ -10,7 +10,10 @@ import SideStoreCore
import EmotionalDamage
import SideStoreAppKit
import UIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@available(iOS 13, *)
final class SceneDelegate: UIResponder, UIWindowSceneDelegate {
diff --git a/SideStoreApp/Sources/SideStoreCore/Connections/Connection.swift b/SideStoreApp/Sources/SideStoreCore/Connections/Connection.swift
index f6e958a8..63bdf2e3 100644
--- a/SideStoreApp/Sources/SideStoreCore/Connections/Connection.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Connections/Connection.swift
@@ -9,7 +9,10 @@
import Foundation
import Network
import SideKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
public protocol SideConnection: Connection {
func __send(_ data: Data, completionHandler: @escaping (Bool, Error?) -> Void)
diff --git a/SideStoreApp/Sources/SideStoreCore/Connections/ConnectionManager.swift b/SideStoreApp/Sources/SideStoreCore/Connections/ConnectionManager.swift
index ae04c913..4d4dd39d 100644
--- a/SideStoreApp/Sources/SideStoreCore/Connections/ConnectionManager.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Connections/ConnectionManager.swift
@@ -9,7 +9,10 @@
import Foundation
import Network
import SideKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
public protocol RequestHandler {
func handleAnisetteDataRequest(_ request: AnisetteDataRequest, for connection: Connection, completionHandler: @escaping (Result) -> Void)
diff --git a/SideStoreApp/Sources/SideStoreCore/Connections/XPCConnection.swift b/SideStoreApp/Sources/SideStoreCore/Connections/XPCConnection.swift
index 064ec3ae..fc161802 100644
--- a/SideStoreApp/Sources/SideStoreCore/Connections/XPCConnection.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Connections/XPCConnection.swift
@@ -8,7 +8,10 @@
import Foundation
import SideKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@objc private protocol XPCConnectionProxy {
func ping(completionHandler: @escaping () -> Void)
diff --git a/SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+Hex.swift b/SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+Hex.swift
index 411661ba..af67593a 100644
--- a/SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+Hex.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+Hex.swift
@@ -6,7 +6,8 @@
// Copyright © 2019 Riley Testut. All rights reserved.
//
-import UIKit
+#if canImport(UIKit)
+import UIKit.UIColor
public extension UIColor {
// Borrowed from https://stackoverflow.com/a/26341062
@@ -69,3 +70,4 @@ public extension UIColor {
)
}
}
+#endif
diff --git a/SideStoreApp/Sources/SideStoreCore/Model/AppPermission.swift b/SideStoreApp/Sources/SideStoreCore/Model/AppPermission.swift
index ff5fffe1..0941276e 100644
--- a/SideStoreApp/Sources/SideStoreCore/Model/AppPermission.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Model/AppPermission.swift
@@ -7,7 +7,6 @@
//
import CoreData
-import UIKit
public extension ALTAppPermissionType {
var localizedShortName: String? {
@@ -41,30 +40,6 @@ public extension ALTAppPermissionType {
default: return nil
}
}
-
- var icon: UIImage? {
- switch self {
- case .photos: return UIImage(systemName: "photo.on.rectangle.angled")
- case .camera: return UIImage(systemName: "camera.fill")
- case .location: return UIImage(systemName: "location.fill")
- case .contacts: return UIImage(systemName: "person.2.fill")
- case .reminders: return UIImage(systemName: "checklist")
- case .appleMusic: return UIImage(systemName: "music.note")
- case .microphone: return UIImage(systemName: "mic.fill")
- case .speechRecognition: return UIImage(systemName: "waveform.and.mic")
- case .backgroundAudio: return UIImage(systemName: "speaker.fill")
- case .backgroundFetch: return UIImage(systemName: "square.and.arrow.down")
- case .bluetooth: return UIImage(systemName: "wave.3.right")
- case .network: return UIImage(systemName: "network")
- case .calendars: return UIImage(systemName: "calendar")
- case .touchID: return UIImage(systemName: "touchid")
- case .faceID: return UIImage(systemName: "faceid")
- case .siri: return UIImage(systemName: "mic.and.signal.meter.fill")
- case .motion: return UIImage(systemName: "figure.walk.motion")
- default:
- return nil
- }
- }
}
@objc(AppPermission)
diff --git a/SideStoreApp/Sources/SideStoreCore/Model/DatabaseManager.swift b/SideStoreApp/Sources/SideStoreCore/Model/DatabaseManager.swift
index 4ba03811..8cfd6d80 100644
--- a/SideStoreApp/Sources/SideStoreCore/Model/DatabaseManager.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Model/DatabaseManager.swift
@@ -10,7 +10,10 @@ import CoreData
import AltSign
import Roxas
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
private extension CFNotificationName {
static let willAccessDatabase = CFNotificationName("com.rileytestut.AltStore.WillAccessDatabase" as CFString)
diff --git a/SideStoreApp/Sources/SideStoreCore/Model/MergePolicy.swift b/SideStoreApp/Sources/SideStoreCore/Model/MergePolicy.swift
index 6fb9eb6a..53633d13 100644
--- a/SideStoreApp/Sources/SideStoreCore/Model/MergePolicy.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Model/MergePolicy.swift
@@ -9,7 +9,10 @@
import CoreData
import Roxas
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
open class MergePolicy: RSTRelationshipPreservingMergePolicy {
override open func resolve(constraintConflicts conflicts: [NSConstraintConflict]) throws {
diff --git a/SideStoreApp/Sources/SideStoreCore/Model/NewsItem.swift b/SideStoreApp/Sources/SideStoreCore/Model/NewsItem.swift
index d308715c..ce20a157 100644
--- a/SideStoreApp/Sources/SideStoreCore/Model/NewsItem.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Model/NewsItem.swift
@@ -7,7 +7,15 @@
//
import CoreData
-import UIKit
+
+#if canImport(UIKit)
+import class UIKit.UIColor
+#elseif canImport(AppKit)
+import class AppKit.NSColor
+fileprivate typealias UIColor = NSColor
+#else
+#error ("Unsupported platform. Need to refactor UIColor/NSColor to extend support.")
+#endif
@objc(NewsItem)
public class NewsItem: NSManagedObject, Decodable, Fetchable {
diff --git a/SideStoreApp/Sources/SideStoreCore/Model/Source.swift b/SideStoreApp/Sources/SideStoreCore/Model/Source.swift
index 35a70b89..0efba9bf 100644
--- a/SideStoreApp/Sources/SideStoreCore/Model/Source.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Model/Source.swift
@@ -7,7 +7,7 @@
//
import CoreData
-import UIKit
+import Foundation
public extension Source {
#if ALPHA
diff --git a/SideStoreApp/Sources/SideStoreCore/Model/StoreApp.swift b/SideStoreApp/Sources/SideStoreCore/Model/StoreApp.swift
index b7a4c498..439bca9d 100644
--- a/SideStoreApp/Sources/SideStoreCore/Model/StoreApp.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Model/StoreApp.swift
@@ -8,8 +8,15 @@
import CoreData
import Foundation
-import class UIKit.UIColor
+#if canImport(UIKit)
+import class UIKit.UIColor
+#elseif canImport(AppKit)
+import class AppKit.NSColor
+fileprivate typealias UIColor = NSColor
+#else
+#error ("Unsupported platform. Need to refactor UIColor/NSColor to extend support.")
+#endif
import Roxas
public extension StoreApp {
diff --git a/SideStoreApp/Sources/SideStoreCore/Patreon/PatreonAPI.swift b/SideStoreApp/Sources/SideStoreCore/Patreon/PatreonAPI.swift
index a75167e7..da32b1fd 100644
--- a/SideStoreApp/Sources/SideStoreCore/Patreon/PatreonAPI.swift
+++ b/SideStoreApp/Sources/SideStoreCore/Patreon/PatreonAPI.swift
@@ -9,7 +9,10 @@
import AuthenticationServices
import CoreData
import Foundation
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
private let clientID = "ZMx0EGUWe4TVWYXNZZwK_fbIK5jHFVWoUf1Qb-sqNXmT-YzAGwDPxxq7ak3_W5Q2"
private let clientSecret = "1hktsZB89QyN69cB4R0tu55R4TCPQGXxvebYUUh7Y-5TLSnRswuxs6OUjdJ74IJt"
@@ -115,8 +118,9 @@ public extension PatreonAPI {
}
}
- if #available(iOS 13.0, *) {
- self.authenticationSession?.presentationContextProvider = self
+ if let provider = self as? ASWebAuthenticationPresentationContextProviding,
+ let authenticationSession = self.authenticationSession {
+ authenticationSession.presentationContextProvider = provider
}
authenticationSession?.start()
@@ -359,10 +363,3 @@ private extension PatreonAPI {
installedApps.forEach { $0.isActive = false }
}
}
-
-@available(iOS 13.0, *)
-extension PatreonAPI: ASWebAuthenticationPresentationContextProviding {
- public func presentationAnchor(for _: ASWebAuthenticationSession) -> ASPresentationAnchor {
- UIApplication.alt_shared?.keyWindow ?? UIWindow()
- }
-}
diff --git a/SideStoreApp/Sources/SideStoreAppKit/App Detail/AppContentViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/App Detail/AppContentViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/App Detail/AppContentViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/App Detail/AppContentViewController.swift
index e02ebe0c..937f707e 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/App Detail/AppContentViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/App Detail/AppContentViewController.swift
@@ -10,7 +10,10 @@ import UIKit
import SideStoreCore
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import Nuke
diff --git a/SideStoreApp/Sources/SideStoreAppKit/App Detail/AppContentViewControllerCells.swift b/SideStoreApp/Sources/SideStoreUIKit/App Detail/AppContentViewControllerCells.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/App Detail/AppContentViewControllerCells.swift
rename to SideStoreApp/Sources/SideStoreUIKit/App Detail/AppContentViewControllerCells.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/App Detail/AppViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/App Detail/AppViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/App Detail/AppViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/App Detail/AppViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/App Detail/PermissionPopoverViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/App Detail/PermissionPopoverViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/App Detail/PermissionPopoverViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/App Detail/PermissionPopoverViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/App IDs/AppIDsViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/App IDs/AppIDsViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/App IDs/AppIDsViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/App IDs/AppIDsViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/AuthenticationViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Authentication/AuthenticationViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/AuthenticationViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Authentication/AuthenticationViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/InstructionsViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Authentication/InstructionsViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/InstructionsViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Authentication/InstructionsViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/RefreshAltStoreViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Authentication/RefreshAltStoreViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/RefreshAltStoreViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Authentication/RefreshAltStoreViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/SelectTeamViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Authentication/SelectTeamViewController.swift
similarity index 97%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/SelectTeamViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Authentication/SelectTeamViewController.swift
index dd455284..5650ddb7 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Authentication/SelectTeamViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Authentication/SelectTeamViewController.swift
@@ -11,7 +11,10 @@ import IntentsUI
import MessageUI
import SafariServices
import UIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import AltSign
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Browse/BrowseCollectionViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/Browse/BrowseCollectionViewCell.swift
similarity index 98%
rename from SideStoreApp/Sources/SideStoreAppKit/Browse/BrowseCollectionViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Browse/BrowseCollectionViewCell.swift
index ab16ad4b..c2ccf3d9 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Browse/BrowseCollectionViewCell.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Browse/BrowseCollectionViewCell.swift
@@ -9,7 +9,10 @@
import UIKit
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import Nuke
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Browse/BrowseViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Browse/BrowseViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Browse/BrowseViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Browse/BrowseViewController.swift
index 2673ac95..3c95c64b 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Browse/BrowseViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Browse/BrowseViewController.swift
@@ -10,7 +10,10 @@ import UIKit
import SideStoreCore
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import Nuke
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Browse/ScreenshotCollectionViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/Browse/ScreenshotCollectionViewCell.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Browse/ScreenshotCollectionViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Browse/ScreenshotCollectionViewCell.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/AppBannerView.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/AppBannerView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/AppBannerView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/AppBannerView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/AppIconImageView.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/AppIconImageView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/AppIconImageView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/AppIconImageView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/BackgroundTaskManager.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/BackgroundTaskManager.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/BackgroundTaskManager.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/BackgroundTaskManager.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/BannerCollectionViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/BannerCollectionViewCell.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/BannerCollectionViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/BannerCollectionViewCell.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/Button.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/Button.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/Button.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/Button.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/CollapsingTextView.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/CollapsingTextView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/CollapsingTextView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/CollapsingTextView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/ForwardingNavigationController.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/ForwardingNavigationController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/ForwardingNavigationController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/ForwardingNavigationController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/NavigationBar.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/NavigationBar.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/NavigationBar.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/NavigationBar.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/PillButton.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/PillButton.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/PillButton.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/PillButton.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/TextCollectionReusableView.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/TextCollectionReusableView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/TextCollectionReusableView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/TextCollectionReusableView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Components/ToastView.swift b/SideStoreApp/Sources/SideStoreUIKit/Components/ToastView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Components/ToastView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Components/ToastView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Extensions/FileManager+DirectorySize.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/FileManager+DirectorySize.swift
similarity index 93%
rename from SideStoreApp/Sources/SideStoreAppKit/Extensions/FileManager+DirectorySize.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/FileManager+DirectorySize.swift
index 0cf3d09c..df224adc 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Extensions/FileManager+DirectorySize.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Extensions/FileManager+DirectorySize.swift
@@ -7,7 +7,10 @@
//
import Foundation
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
extension FileManager {
func directorySize(at directoryURL: URL) -> Int? {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Extensions/INInteraction+AltStore.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/INInteraction+AltStore.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Extensions/INInteraction+AltStore.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/INInteraction+AltStore.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Extensions/OSLog+SideStore.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/OSLog+SideStore.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Extensions/OSLog+SideStore.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/OSLog+SideStore.swift
diff --git a/SideStoreApp/Sources/SideStoreCore/Extensions/UIApplication+AppExtension.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/UIApplication+AppExtension.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreCore/Extensions/UIApplication+AppExtension.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/UIApplication+AppExtension.swift
diff --git a/SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+AltStore.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/UIColor+AltStore.swift
similarity index 97%
rename from SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+AltStore.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/UIColor+AltStore.swift
index b87d507d..0cd50385 100644
--- a/SideStoreApp/Sources/SideStoreCore/Extensions/UIColor+AltStore.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Extensions/UIColor+AltStore.swift
@@ -7,6 +7,7 @@
//
import UIKit
+import SideStoreCore
public extension UIColor {
private static let colorBundle = Bundle(for: DatabaseManager.self)
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Extensions/UIDevice+Jailbreak.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/UIDevice+Jailbreak.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Extensions/UIDevice+Jailbreak.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/UIDevice+Jailbreak.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Extensions/UIDevice+Vibration.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/UIDevice+Vibration.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Extensions/UIDevice+Vibration.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/UIDevice+Vibration.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Extensions/UIScreen+CompactHeight.swift b/SideStoreApp/Sources/SideStoreUIKit/Extensions/UIScreen+CompactHeight.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Extensions/UIScreen+CompactHeight.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Extensions/UIScreen+CompactHeight.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Managing Apps/AppManager.swift b/SideStoreApp/Sources/SideStoreUIKit/Managing Apps/AppManager.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Managing Apps/AppManager.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Managing Apps/AppManager.swift
index f1333171..a29a095e 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Managing Apps/AppManager.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Managing Apps/AppManager.swift
@@ -19,7 +19,10 @@ import AltSign
import SideKit
import SideStoreCore
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
public extension AppManager {
static let didFetchSourceNotification = Notification.Name("io.altstore.AppManager.didFetchSource")
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Managing Apps/AppManagerErrors.swift b/SideStoreApp/Sources/SideStoreUIKit/Managing Apps/AppManagerErrors.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Managing Apps/AppManagerErrors.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Managing Apps/AppManagerErrors.swift
diff --git a/SideStoreApp/Sources/SideStoreUIKit/Model/AppPermission+UIKIt.swift b/SideStoreApp/Sources/SideStoreUIKit/Model/AppPermission+UIKIt.swift
new file mode 100644
index 00000000..9319f11a
--- /dev/null
+++ b/SideStoreApp/Sources/SideStoreUIKit/Model/AppPermission+UIKIt.swift
@@ -0,0 +1,38 @@
+//
+// AppPermission+UIKit.swift
+// AltStore
+//
+// Created by Riley Testut on 7/23/19.
+// Copyright © 2019 Riley Testut. All rights reserved.
+//
+
+import CoreData
+import SideStoreCore
+import UIKit
+
+// ALTAppPermissionType UIKit Extensions
+public extension ALTAppPermissionType {
+ var icon: UIImage? {
+ switch self {
+ case .photos: return UIImage(systemName: "photo.on.rectangle.angled")
+ case .camera: return UIImage(systemName: "camera.fill")
+ case .location: return UIImage(systemName: "location.fill")
+ case .contacts: return UIImage(systemName: "person.2.fill")
+ case .reminders: return UIImage(systemName: "checklist")
+ case .appleMusic: return UIImage(systemName: "music.note")
+ case .microphone: return UIImage(systemName: "mic.fill")
+ case .speechRecognition: return UIImage(systemName: "waveform.and.mic")
+ case .backgroundAudio: return UIImage(systemName: "speaker.fill")
+ case .backgroundFetch: return UIImage(systemName: "square.and.arrow.down")
+ case .bluetooth: return UIImage(systemName: "wave.3.right")
+ case .network: return UIImage(systemName: "network")
+ case .calendars: return UIImage(systemName: "calendar")
+ case .touchID: return UIImage(systemName: "touchid")
+ case .faceID: return UIImage(systemName: "faceid")
+ case .siri: return UIImage(systemName: "mic.and.signal.meter.fill")
+ case .motion: return UIImage(systemName: "figure.walk.motion")
+ default:
+ return nil
+ }
+ }
+}
diff --git a/SideStoreApp/Sources/SideStoreAppKit/My Apps/InstalledAppsCollectionHeaderView.swift b/SideStoreApp/Sources/SideStoreUIKit/My Apps/InstalledAppsCollectionHeaderView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/My Apps/InstalledAppsCollectionHeaderView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/My Apps/InstalledAppsCollectionHeaderView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/My Apps/MyAppsComponents.swift b/SideStoreApp/Sources/SideStoreUIKit/My Apps/MyAppsComponents.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/My Apps/MyAppsComponents.swift
rename to SideStoreApp/Sources/SideStoreUIKit/My Apps/MyAppsComponents.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/My Apps/MyAppsViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/My Apps/MyAppsViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/My Apps/MyAppsViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/My Apps/MyAppsViewController.swift
index bc6cf379..604095de 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/My Apps/MyAppsViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/My Apps/MyAppsViewController.swift
@@ -14,7 +14,10 @@ import UIKit
import AltSign
import SideStoreCore
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import Nuke
diff --git a/SideStoreApp/Sources/SideStoreAppKit/My Apps/UpdateCollectionViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/My Apps/UpdateCollectionViewCell.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/My Apps/UpdateCollectionViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/My Apps/UpdateCollectionViewCell.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/News/NewsCollectionViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/News/NewsCollectionViewCell.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/News/NewsCollectionViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/News/NewsCollectionViewCell.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/News/NewsViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/News/NewsViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/News/NewsViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/News/NewsViewController.swift
index e8690f10..82122bc0 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/News/NewsViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/News/NewsViewController.swift
@@ -13,7 +13,10 @@ import SideStoreCore
import RoxasUIKit
import Nuke
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
private final class AppBannerFooterView: UICollectionReusableView {
let bannerView = AppBannerView(frame: .zero)
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/Patch App/PatchViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Operations/PatchAppOperation/PatchViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/Patch App/PatchViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Operations/PatchAppOperation/PatchViewController.swift
index 8975f628..9da3108b 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/Patch App/PatchViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Operations/PatchAppOperation/PatchViewController.swift
@@ -12,7 +12,11 @@ import UIKit
import AltSign
import SideStoreCore
import RoxasUIKit
-import os.log
+import SideUIShared
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@available(iOS 14.0, *)
extension PatchViewController {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/Error Log/ErrorLogTableViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/Error Log/ErrorLogTableViewCell.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/Error Log/ErrorLogTableViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/Error Log/ErrorLogTableViewCell.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/Error Log/ErrorLogViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/Error Log/ErrorLogViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/Error Log/ErrorLogViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/Error Log/ErrorLogViewController.swift
index a4cc3f0b..00b4e41d 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Settings/Error Log/ErrorLogViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Settings/Error Log/ErrorLogViewController.swift
@@ -14,7 +14,10 @@ import RoxasUIKit
import SideKit
import Nuke
import QuickLook
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
final class ErrorLogViewController: UITableViewController {
private lazy var dataSource = self.makeDataSource()
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/InsetGroupTableViewCell.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/InsetGroupTableViewCell.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/InsetGroupTableViewCell.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/InsetGroupTableViewCell.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/LicensesViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/LicensesViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/LicensesViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/LicensesViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/PatreonComponents.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/PatreonComponents.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/PatreonComponents.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/PatreonComponents.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/PatreonViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/PatreonViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/PatreonViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/PatreonViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/RefreshAttemptsViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/RefreshAttemptsViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/RefreshAttemptsViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/RefreshAttemptsViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/SettingsHeaderFooterView.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/SettingsHeaderFooterView.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/SettingsHeaderFooterView.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/SettingsHeaderFooterView.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/SettingsViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Settings/SettingsViewController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/SettingsViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Settings/SettingsViewController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/SideStoreAppDelegate.swift b/SideStoreApp/Sources/SideStoreUIKit/SideStoreAppDelegate.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/SideStoreAppDelegate.swift
rename to SideStoreApp/Sources/SideStoreUIKit/SideStoreAppDelegate.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Sources/SourcesViewController.swift b/SideStoreApp/Sources/SideStoreUIKit/Sources/SourcesViewController.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Sources/SourcesViewController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Sources/SourcesViewController.swift
index cfc79723..9b7ce67b 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Sources/SourcesViewController.swift
+++ b/SideStoreApp/Sources/SideStoreUIKit/Sources/SourcesViewController.swift
@@ -11,7 +11,10 @@ import UIKit
import SideStoreCore
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
struct SourceError: LocalizedError {
enum Code {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/TabBarController.swift b/SideStoreApp/Sources/SideStoreUIKit/TabBarController.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/TabBarController.swift
rename to SideStoreApp/Sources/SideStoreUIKit/TabBarController.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Types/ScreenshotProcessor.swift b/SideStoreApp/Sources/SideStoreUIKit/Types/ScreenshotProcessor.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Types/ScreenshotProcessor.swift
rename to SideStoreApp/Sources/SideStoreUIKit/Types/ScreenshotProcessor.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/ALTApplication+AltStoreApp.swift b/SideStoreApp/Sources/SideUIShared/ALTApplication+AltStoreApp.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/ALTApplication+AltStoreApp.swift
rename to SideStoreApp/Sources/SideUIShared/ALTApplication+AltStoreApp.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Analytics/AnalyticsManager.swift b/SideStoreApp/Sources/SideUIShared/Analytics/AnalyticsManager.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Analytics/AnalyticsManager.swift
rename to SideStoreApp/Sources/SideUIShared/Analytics/AnalyticsManager.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/IntentHandler.swift b/SideStoreApp/Sources/SideUIShared/Authentication/Intents/IntentHandler.swift
similarity index 98%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/IntentHandler.swift
rename to SideStoreApp/Sources/SideUIShared/Authentication/Intents/IntentHandler.swift
index e030953a..d030bf89 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/IntentHandler.swift
+++ b/SideStoreApp/Sources/SideUIShared/Authentication/Intents/IntentHandler.swift
@@ -9,7 +9,10 @@
import Foundation
import SideStoreCore
import Intents
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@available(iOS 14, *)
public final class IntentHandler: NSObject, RefreshAllIntentHandling {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/Intents.intentdefinition b/SideStoreApp/Sources/SideUIShared/Authentication/Intents/Intents.intentdefinition
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/Intents.intentdefinition
rename to SideStoreApp/Sources/SideUIShared/Authentication/Intents/Intents.intentdefinition
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/ViewApp.intentdefinition b/SideStoreApp/Sources/SideUIShared/Authentication/Intents/ViewApp.intentdefinition
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/ViewApp.intentdefinition
rename to SideStoreApp/Sources/SideUIShared/Authentication/Intents/ViewApp.intentdefinition
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/ViewAppIntentHandler.swift b/SideStoreApp/Sources/SideUIShared/Authentication/Intents/ViewAppIntentHandler.swift
similarity index 95%
rename from SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/ViewAppIntentHandler.swift
rename to SideStoreApp/Sources/SideUIShared/Authentication/Intents/ViewAppIntentHandler.swift
index 280c1809..e0d5cfc9 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Authentication/Intents/ViewAppIntentHandler.swift
+++ b/SideStoreApp/Sources/SideUIShared/Authentication/Intents/ViewAppIntentHandler.swift
@@ -8,7 +8,10 @@
import Intents
import SideStoreCore
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@available(iOS 14, *)
public class ViewAppIntentHandler: NSObject, ViewAppIntentHandling {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Consts/Consts+Proxy.swift b/SideStoreApp/Sources/SideUIShared/Consts/Consts+Proxy.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Consts/Consts+Proxy.swift
rename to SideStoreApp/Sources/SideUIShared/Consts/Consts+Proxy.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Consts/Consts.swift b/SideStoreApp/Sources/SideUIShared/Consts/Consts.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Consts/Consts.swift
rename to SideStoreApp/Sources/SideUIShared/Consts/Consts.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/AuthenticationOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/AuthenticationOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/AuthenticationOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/AuthenticationOperation.swift
index c8174912..10653168 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/AuthenticationOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/AuthenticationOperation.swift
@@ -9,7 +9,10 @@
import Foundation
import Network
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import AltSign
import SideStoreCore
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/BackgroundRefreshAppsOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/BackgroundRefreshAppsOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/BackgroundRefreshAppsOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/BackgroundRefreshAppsOperation.swift
index c6d3ae2d..0d0ef1d1 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/BackgroundRefreshAppsOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/BackgroundRefreshAppsOperation.swift
@@ -8,7 +8,10 @@
import CoreData
import UIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import SideStoreCore
import EmotionalDamage
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/BackupAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/BackupAppOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/BackupAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/BackupAppOperation.swift
index b5296dd8..b34128a9 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/BackupAppOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/BackupAppOperation.swift
@@ -10,7 +10,10 @@ import Foundation
import AltSign
import SideStoreCore
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
extension BackupAppOperation {
enum Action: String {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/DeactivateAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/DeactivateAppOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/DeactivateAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/DeactivateAppOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/DownloadAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/DownloadAppOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/DownloadAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/DownloadAppOperation.swift
index 4acb6b96..b3e529f7 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/DownloadAppOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/DownloadAppOperation.swift
@@ -13,7 +13,10 @@ import AltSign
import SideKit
import SideStoreCore
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
private extension DownloadAppOperation {
struct DependencyError: ALTLocalizedError {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/EnableJITOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/EnableJITOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/EnableJITOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/EnableJITOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/FetchAnisetteDataOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/FetchAnisetteDataOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/FetchAnisetteDataOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/FetchAnisetteDataOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/FetchAppIDsOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/FetchAppIDsOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/FetchAppIDsOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/FetchAppIDsOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/FetchProvisioningProfilesOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/FetchProvisioningProfilesOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/FetchProvisioningProfilesOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/FetchProvisioningProfilesOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/FetchSourceOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/FetchSourceOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/FetchSourceOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/FetchSourceOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/FetchTrustedSourcesOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/FetchTrustedSourcesOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/FetchTrustedSourcesOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/FetchTrustedSourcesOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/InstallAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/InstallAppOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/InstallAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/InstallAppOperation.swift
index 8e3fdab9..286ec994 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/InstallAppOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/InstallAppOperation.swift
@@ -13,7 +13,10 @@ import SideStoreCore
import RoxasUIKit
import MiniMuxer
import minimuxer
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@objc(InstallAppOperation)
final class InstallAppOperation: ResultOperation {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/Operation.swift b/SideStoreApp/Sources/SideUIShared/Operations/Operation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/Operation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/Operation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/OperationContexts.swift b/SideStoreApp/Sources/SideUIShared/Operations/OperationContexts.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/OperationContexts.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/OperationContexts.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/OperationError.swift b/SideStoreApp/Sources/SideUIShared/Operations/OperationError.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/OperationError.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/OperationError.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/Patch App/PatchAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/Patch App/PatchAppOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/Patch App/PatchAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/Patch App/PatchAppOperation.swift
index ebb19052..c2caa8c4 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/Patch App/PatchAppOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/Patch App/PatchAppOperation.swift
@@ -16,6 +16,8 @@ import AltSign
import SideStoreCore
import RoxasUIKit
+import iMobileDevice
+
@available(iOS 14, *)
protocol PatchAppContext {
var bundleIdentifier: String { get }
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/RefreshAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/RefreshAppOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/RefreshAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/RefreshAppOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/RefreshGroup.swift b/SideStoreApp/Sources/SideUIShared/Operations/RefreshGroup.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/RefreshGroup.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/RefreshGroup.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/RemoveAppBackupOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/RemoveAppBackupOperation.swift
similarity index 97%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/RemoveAppBackupOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/RemoveAppBackupOperation.swift
index 2024477f..299a6d62 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/RemoveAppBackupOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/RemoveAppBackupOperation.swift
@@ -7,7 +7,10 @@
//
import Foundation
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@objc(RemoveAppBackupOperation)
final class RemoveAppBackupOperation: ResultOperation {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/RemoveAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/RemoveAppOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/RemoveAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/RemoveAppOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/ResignAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/ResignAppOperation.swift
similarity index 99%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/ResignAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/ResignAppOperation.swift
index efdf50f5..b9c9014d 100644
--- a/SideStoreApp/Sources/SideStoreAppKit/Operations/ResignAppOperation.swift
+++ b/SideStoreApp/Sources/SideUIShared/Operations/ResignAppOperation.swift
@@ -11,7 +11,10 @@ import RoxasUIKit
import AltSign
import SideStoreCore
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
@objc(ResignAppOperation)
final class ResignAppOperation: ResultOperation {
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/SendAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/SendAppOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/SendAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/SendAppOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/UpdatePatronsOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/UpdatePatronsOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/UpdatePatronsOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/UpdatePatronsOperation.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Operations/VerifyAppOperation.swift b/SideStoreApp/Sources/SideUIShared/Operations/VerifyAppOperation.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Operations/VerifyAppOperation.swift
rename to SideStoreApp/Sources/SideUIShared/Operations/VerifyAppOperation.swift
diff --git a/SideStoreApp/Sources/SideUIShared/Patreon/PatreonAPI+UIApplication.swift b/SideStoreApp/Sources/SideUIShared/Patreon/PatreonAPI+UIApplication.swift
new file mode 100644
index 00000000..422e23a0
--- /dev/null
+++ b/SideStoreApp/Sources/SideUIShared/Patreon/PatreonAPI+UIApplication.swift
@@ -0,0 +1,19 @@
+//
+// PatreonAPI+UIApplication.swift
+// AltStore
+//
+// Created by Riley Testut on 8/20/19.
+// Copyright © 2019 Riley Testut. All rights reserved.
+//
+
+import AuthenticationServices
+import CoreData
+import Foundation
+import SideStoreCore
+
+@available(iOS 13.0, *)
+extension PatreonAPI: ASWebAuthenticationPresentationContextProviding {
+ public func presentationAnchor(for _: ASWebAuthenticationSession) -> ASPresentationAnchor {
+ UIApplication.alt_shared?.keyWindow ?? UIWindow()
+ }
+}
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Settings/AnisetteManager.swift b/SideStoreApp/Sources/SideUIShared/Settings/AnisetteManager.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Settings/AnisetteManager.swift
rename to SideStoreApp/Sources/SideUIShared/Settings/AnisetteManager.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Types/LoadingState.swift b/SideStoreApp/Sources/SideUIShared/Types/LoadingState.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Types/LoadingState.swift
rename to SideStoreApp/Sources/SideUIShared/Types/LoadingState.swift
diff --git a/SideStoreApp/Sources/SideStoreAppKit/Types/Managed.swift b/SideStoreApp/Sources/SideUIShared/Types/Managed.swift
similarity index 100%
rename from SideStoreApp/Sources/SideStoreAppKit/Types/Managed.swift
rename to SideStoreApp/Sources/SideUIShared/Types/Managed.swift
diff --git a/SideStoreApp/Sources/SideWidgetKit/SideWidget.swift b/SideStoreApp/Sources/SideWidgetKit/SideWidget.swift
index 7067e190..d4257418 100644
--- a/SideStoreApp/Sources/SideWidgetKit/SideWidget.swift
+++ b/SideStoreApp/Sources/SideWidgetKit/SideWidget.swift
@@ -15,7 +15,10 @@ import AltSign
import SideStoreCore
import Roxas
import RoxasUIKit
-import os.log
+import OSLog
+#if canImport(Logging)
+import Logging
+#endif
import class SideStoreAppKit.ViewAppIntent