diff --git a/AltServer/AppDelegate.swift b/AltServer/AppDelegate.swift index 0f2468e5..55b686dd 100644 --- a/AltServer/AppDelegate.swift +++ b/AltServer/AppDelegate.swift @@ -12,6 +12,25 @@ import UserNotifications import AltSign import LaunchAtLogin +import STPrivilegedTask + +enum PluginError: LocalizedError +{ + case installationScriptNotFound + case failedToRun(Int) + case scriptError(String) + + var errorDescription: String? { + switch self + { + case .installationScriptNotFound: return NSLocalizedString("The installation script could not be found.", comment: "") + case .failedToRun(let errorCode): return String(format: NSLocalizedString("The installation script could not be run. (%@)", comment: ""), NSNumber(value: errorCode)) + case .scriptError(let output): return output + } + } +} + +private let pluginURL = URL(fileURLWithPath: "/Library/Mail/Bundles/AltPlugin.mailbundle") @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { @@ -25,10 +44,16 @@ class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet private var appMenu: NSMenu! @IBOutlet private var connectedDevicesMenu: NSMenu! @IBOutlet private var launchAtLoginMenuItem: NSMenuItem! + @IBOutlet private var installMailPluginMenuItem: NSMenuItem! private weak var authenticationAppleIDTextField: NSTextField? private weak var authenticationPasswordTextField: NSSecureTextField? - + + private var isMailPluginInstalled: Bool { + let isMailPluginInstalled = FileManager.default.fileExists(atPath: pluginURL.path) + return isMailPluginInstalled + } + func applicationDidFinishLaunching(_ aNotification: Notification) { UserDefaults.standard.registerDefaults() @@ -81,6 +106,18 @@ private extension AppDelegate self.launchAtLoginMenuItem.state = LaunchAtLogin.isEnabled ? .on : .off self.launchAtLoginMenuItem.action = #selector(AppDelegate.toggleLaunchAtLogin(_:)) + if FileManager.default.fileExists(atPath: pluginURL.path) + { + self.installMailPluginMenuItem.title = NSLocalizedString("Uninstall Mail Plug-in", comment: "") + } + else + { + self.installMailPluginMenuItem.title = NSLocalizedString("Install Mail Plug-in", comment: "") + } + + self.installMailPluginMenuItem.target = self + self.installMailPluginMenuItem.action = #selector(AppDelegate.handleInstallMailPluginMenuItem(_:)) + let x = button.frame.origin.x let y = button.frame.origin.y - 5 @@ -142,6 +179,13 @@ private extension AppDelegate let password = passwordTextField.stringValue let device = self.connectedDevices[index] + + if !self.isMailPluginInstalled + { + let result = self.installMailPlugin() + guard result else { return } + } + ALTDeviceManager.shared.installAltStore(to: device, appleID: username, password: password) { (result) in switch result { @@ -192,6 +236,74 @@ private extension AppDelegate LaunchAtLogin.isEnabled.toggle() } + + @objc func handleInstallMailPluginMenuItem(_ item: NSMenuItem) + { + installMailPlugin() + } + + @discardableResult + func installMailPlugin() -> Bool + { + do + { + let previouslyInstalled = self.isMailPluginInstalled + + if !previouslyInstalled + { + let alert = NSAlert() + alert.messageText = NSLocalizedString("Install Mail Plug-in", comment: "") + alert.informativeText = NSLocalizedString("AltServer requires a Mail plug-in in order to retrieve necessary information about your Apple ID. Would you like to install it now?", comment: "") + + alert.addButton(withTitle: NSLocalizedString("Install Plug-in", comment: "")) + alert.addButton(withTitle: NSLocalizedString("Cancel", comment: "")) + + NSRunningApplication.current.activate(options: .activateIgnoringOtherApps) + + let response = alert.runModal() + guard response == .alertFirstButtonReturn else { return false } + } + + guard let scriptURL = Bundle.main.url(forResource: self.isMailPluginInstalled ? "UninstallPlugin" : "InstallPlugin", withExtension: "sh") else { throw PluginError.installationScriptNotFound } + + try FileManager.default.setAttributes([.posixPermissions: 0o777], ofItemAtPath: scriptURL.path) + + let task = STPrivilegedTask() + task.setLaunchPath(scriptURL.path) + task.setCurrentDirectoryPath(scriptURL.deletingLastPathComponent().path) + + let errorCode = task.launch() + guard errorCode == 0 else { throw PluginError.failedToRun(Int(errorCode)) } + + task.waitUntilExit() + + if + let outputData = task.outputFileHandle()?.readDataToEndOfFile(), + let outputString = String(data: outputData, encoding: .utf8), !outputString.isEmpty + { + throw PluginError.scriptError(outputString) + } + + if !previouslyInstalled && self.isMailPluginInstalled + { + let alert = NSAlert() + alert.messageText = NSLocalizedString("Mail Plug-in Installed", comment: "") + alert.informativeText = NSLocalizedString("Please restart Mail and enable AltPlugin in Mail's Preferences. Mail must be running when installing or refreshing apps with AltServer.", comment: "") + alert.runModal() + } + + return true + } + catch + { + let alert = NSAlert() + alert.messageText = self.isMailPluginInstalled ? NSLocalizedString("Failed to Uninstall Mail Plug-in", comment: "") : NSLocalizedString("Failed to Install Mail Plug-in", comment: "") + alert.informativeText = error.localizedDescription + alert.runModal() + + return false + } + } } extension AppDelegate: NSMenuDelegate diff --git a/AltServer/Base.lproj/Main.storyboard b/AltServer/Base.lproj/Main.storyboard index c7903d48..bd5523f7 100644 --- a/AltServer/Base.lproj/Main.storyboard +++ b/AltServer/Base.lproj/Main.storyboard @@ -1,7 +1,8 @@ - + - + + @@ -10,11 +11,11 @@ - + - + @@ -26,7 +27,7 @@ - + @@ -61,6 +62,7 @@ + @@ -98,6 +100,9 @@ + + + diff --git a/AltServer/Info.plist b/AltServer/Info.plist index 68c22e19..89d8a0a7 100644 --- a/AltServer/Info.plist +++ b/AltServer/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 2 + 3 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) LSUIElement diff --git a/AltServer/InstallPlugin.sh b/AltServer/InstallPlugin.sh new file mode 100644 index 00000000..6e387b99 --- /dev/null +++ b/AltServer/InstallPlugin.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# InstallAltPlugin.sh +# AltStore +# +# Created by Riley Testut on 11/16/19. +# Copyright © 2019 Riley Testut. All rights reserved. + +mkdir -p /Library/Mail/Bundles +cp -r AltPlugin.mailbundle /Library/Mail/Bundles +defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1 diff --git a/AltServer/UninstallPlugin.sh b/AltServer/UninstallPlugin.sh new file mode 100644 index 00000000..5d3ab257 --- /dev/null +++ b/AltServer/UninstallPlugin.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# UninstallPlugin.sh +# AltStore +# +# Created by Riley Testut on 11/16/19. +# Copyright © 2019 Riley Testut. All rights reserved. + +rm -rf /Library/Mail/Bundles/AltPlugin.mailbundle diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj index 160cb12f..fefdd940 100644 --- a/AltStore.xcodeproj/project.pbxproj +++ b/AltStore.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + A8BCEBEAC0620CF80A2FD26D /* Pods_AltServer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3822AB1C4CF1D4CDF7445D /* Pods_AltServer.framework */; }; BF0201BA22C2EFA3000B93E4 /* AltSign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5AB3A72285FE6C00DC914B /* AltSign.framework */; }; BF0201BB22C2EFA3000B93E4 /* AltSign.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF5AB3A72285FE6C00DC914B /* AltSign.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF0201BD22C2EFBC000B93E4 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF4713A422976CFC00784A2F /* openssl.framework */; }; @@ -113,6 +114,8 @@ BF4588882298DD3F00BD7491 /* libxml2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = BF4588872298DD3F00BD7491 /* libxml2.tbd */; }; BF4713A522976D1E00784A2F /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF4713A422976CFC00784A2F /* openssl.framework */; }; BF4713A622976D1E00784A2F /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF4713A422976CFC00784A2F /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF4C7F2523801F0800B2556E /* AltSign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF9B63C5229DD44D002F0A62 /* AltSign.framework */; }; + BF4C7F27238086EB00B2556E /* InstallPlugin.sh in Resources */ = {isa = PBXBuildFile; fileRef = BF4C7F26238086EB00B2556E /* InstallPlugin.sh */; }; BF54E8212315EF0D000AE0D8 /* ALTPatreonBenefitType.m in Sources */ = {isa = PBXBuildFile; fileRef = BF54E8202315EF0D000AE0D8 /* ALTPatreonBenefitType.m */; }; BF5AB3A82285FE7500DC914B /* AltSign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5AB3A72285FE6C00DC914B /* AltSign.framework */; }; BF5AB3A92285FE7500DC914B /* AltSign.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF5AB3A72285FE6C00DC914B /* AltSign.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -195,6 +198,7 @@ BFD5D6F4230DDB0A007955AB /* Campaign.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD5D6F3230DDB0A007955AB /* Campaign.swift */; }; BFD5D6F6230DDB12007955AB /* Tier.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD5D6F5230DDB12007955AB /* Tier.swift */; }; BFD6B03322DFF20800B86064 /* MyAppsComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD6B03222DFF20800B86064 /* MyAppsComponents.swift */; }; + BFD80D572380C0F700B9C227 /* UninstallPlugin.sh in Resources */ = {isa = PBXBuildFile; fileRef = BFD80D562380C0F700B9C227 /* UninstallPlugin.sh */; }; BFDB5B1622EE90D300F74113 /* Date+RelativeDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDB5B1522EE90D300F74113 /* Date+RelativeDate.swift */; }; BFDB5B2622EFBBEA00F74113 /* BrowseCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BFDB5B2522EFBBEA00F74113 /* BrowseCollectionViewCell.xib */; }; BFDB6A0522A9AFB2007EA6D6 /* Fetchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFDB6A0422A9AFB2007EA6D6 /* Fetchable.swift */; }; @@ -305,6 +309,8 @@ /* Begin PBXFileReference section */ 1039C07E517311FC499A0B64 /* Pods_AltStore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AltStore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 11611D46F8A7C8B928E8156B /* Pods-AltServer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltServer.debug.xcconfig"; path = "Target Support Files/Pods-AltServer/Pods-AltServer.debug.xcconfig"; sourceTree = ""; }; + 589BA531D903B28F292063E5 /* Pods-AltServer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltServer.release.xcconfig"; path = "Target Support Files/Pods-AltServer/Pods-AltServer.release.xcconfig"; sourceTree = ""; }; A136EE677716B80768E9F0A2 /* Pods-AltStore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltStore.release.xcconfig"; path = "Target Support Files/Pods-AltStore/Pods-AltStore.release.xcconfig"; sourceTree = ""; }; BF02419322F2156E00129732 /* RefreshAttempt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefreshAttempt.swift; sourceTree = ""; }; BF02419522F2199300129732 /* RefreshAttemptsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefreshAttemptsViewController.swift; sourceTree = ""; }; @@ -417,6 +423,7 @@ BF4588872298DD3F00BD7491 /* libxml2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libxml2.tbd; sourceTree = DEVELOPER_DIR; }; BF4588962298DE6E00BD7491 /* libzip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libzip.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BF4713A422976CFC00784A2F /* openssl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = openssl.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BF4C7F26238086EB00B2556E /* InstallPlugin.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = InstallPlugin.sh; sourceTree = ""; }; BF54E81F2315EF0D000AE0D8 /* ALTPatreonBenefitType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ALTPatreonBenefitType.h; sourceTree = ""; }; BF54E8202315EF0D000AE0D8 /* ALTPatreonBenefitType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ALTPatreonBenefitType.m; sourceTree = ""; }; BF5AB3A72285FE6C00DC914B /* AltSign.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AltSign.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -507,6 +514,7 @@ BFD5D6F3230DDB0A007955AB /* Campaign.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Campaign.swift; sourceTree = ""; }; BFD5D6F5230DDB12007955AB /* Tier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tier.swift; sourceTree = ""; }; BFD6B03222DFF20800B86064 /* MyAppsComponents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyAppsComponents.swift; sourceTree = ""; }; + BFD80D562380C0F700B9C227 /* UninstallPlugin.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = UninstallPlugin.sh; sourceTree = ""; }; BFDB5B1522EE90D300F74113 /* Date+RelativeDate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+RelativeDate.swift"; sourceTree = ""; }; BFDB5B2522EFBBEA00F74113 /* BrowseCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BrowseCollectionViewCell.xib; sourceTree = ""; }; BFDB6A0422A9AFB2007EA6D6 /* Fetchable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fetchable.swift; sourceTree = ""; }; @@ -550,6 +558,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + BF4C7F2523801F0800B2556E /* AltSign.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -563,6 +572,14 @@ BF4588472298D4B000BD7491 /* libimobiledevice.a in Frameworks */, BF0201BD22C2EFBC000B93E4 /* openssl.framework in Frameworks */, BF0201BA22C2EFA3000B93E4 /* AltSign.framework in Frameworks */, + A8BCEBEAC0620CF80A2FD26D /* Pods_AltServer.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BF5C5FC2237DF5AE00EDD0C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -586,6 +603,8 @@ children = ( EA79A60285C6AF5848AA16E9 /* Pods-AltStore.debug.xcconfig */, A136EE677716B80768E9F0A2 /* Pods-AltStore.release.xcconfig */, + 11611D46F8A7C8B928E8156B /* Pods-AltServer.debug.xcconfig */, + 589BA531D903B28F292063E5 /* Pods-AltServer.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -831,6 +850,8 @@ isa = PBXGroup; children = ( BF458693229872EA00BD7491 /* Assets.xcassets */, + BF4C7F26238086EB00B2556E /* InstallPlugin.sh */, + BFD80D562380C0F700B9C227 /* UninstallPlugin.sh */, ); name = Resources; sourceTree = ""; @@ -1194,15 +1215,18 @@ isa = PBXNativeTarget; buildConfigurationList = BF45869A229872EA00BD7491 /* Build configuration list for PBXNativeTarget "AltServer" */; buildPhases = ( + FACBF95CCAAAB7121E1D92C8 /* [CP] Check Pods Manifest.lock */, BF458689229872EA00BD7491 /* Sources */, BF45868B229872EA00BD7491 /* Resources */, BF4588462298D4AA00BD7491 /* Frameworks */, BF0201BC22C2EFA3000B93E4 /* Embed Frameworks */, BF7FDA2C23203B6B00B5D3A4 /* Copy Launcher App */, + 98BF22D155DBAEA97544E3E6 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( + BFBFFB272380C72F00993A4A /* PBXTargetDependency */, BF1E315E22A0621F00370A3C /* PBXTargetDependency */, BF4588452298D48B00BD7491 /* PBXTargetDependency */, ); @@ -1341,8 +1365,17 @@ buildActionMask = 2147483647; files = ( BFBFFB252380C71600993A4A /* AltPlugin.mailbundle in Resources */, + BFD80D572380C0F700B9C227 /* UninstallPlugin.sh in Resources */, BF458694229872EA00BD7491 /* Assets.xcassets in Resources */, BF458697229872EA00BD7491 /* Main.storyboard in Resources */, + BF4C7F27238086EB00B2556E /* InstallPlugin.sh in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BF5C5FC3237DF5AE00EDD0C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1368,6 +1401,28 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 98BF22D155DBAEA97544E3E6 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-AltServer/Pods-AltServer-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/STPrivilegedTask/STPrivilegedTask.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + ); + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/STPrivilegedTask.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AltServer/Pods-AltServer-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; B8F37E08B55D2C9C4E2B1B4E /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1410,6 +1465,28 @@ shellPath = /bin/sh; shellScript = "\"${PROJECT_DIR}/Carthage/Build/Mac/LaunchAtLogin.framework/Resources/copy-helper.sh\"\n"; }; + FACBF95CCAAAB7121E1D92C8 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-AltServer-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; FFB93342C7EB2021A1FFFB6A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1705,9 +1782,11 @@ }; BF45869B229872EA00BD7491 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 11611D46F8A7C8B928E8156B /* Pods-AltServer.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = AltServer/AltServer.entitlements; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; @@ -1755,9 +1834,11 @@ }; BF45869C229872EA00BD7491 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 589BA531D903B28F292063E5 /* Pods-AltServer.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = AltServer/AltServer.entitlements; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; diff --git a/Podfile b/Podfile index ddf29f6a..305c217e 100644 --- a/Podfile +++ b/Podfile @@ -10,3 +10,13 @@ target 'AltStore' do pod 'Nuke', '~> 7.0' end + +target 'AltServer' do + platform :macos, '10.14' + + use_frameworks! + + # Pods for AltServer + pod 'STPrivilegedTask' + +end \ No newline at end of file diff --git a/Podfile.lock b/Podfile.lock index 1ae9bda2..84029ed6 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,20 +1,24 @@ PODS: - KeychainAccess (3.2.0) - Nuke (7.6.3) + - STPrivilegedTask (1.0.1) DEPENDENCIES: - KeychainAccess (~> 3.2.0) - Nuke (~> 7.0) + - STPrivilegedTask SPEC REPOS: https://github.com/cocoapods/specs.git: - KeychainAccess - Nuke + - STPrivilegedTask SPEC CHECKSUMS: KeychainAccess: 3b1bf8a77eb4c6ea1ce9404c292e48f948954c6b Nuke: 44130e95e09463f8773ae4b96b90de1eba6b3350 + STPrivilegedTask: 103f97827454e786074640cf89d303be344498c7 -PODFILE CHECKSUM: 4ad739b1f5db7e51cf8ffbc410963811f20b9b17 +PODFILE CHECKSUM: 53094cc13ea2b40dac4885cca874406388e86f5b COCOAPODS: 1.6.1 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 1ae9bda2..84029ed6 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,20 +1,24 @@ PODS: - KeychainAccess (3.2.0) - Nuke (7.6.3) + - STPrivilegedTask (1.0.1) DEPENDENCIES: - KeychainAccess (~> 3.2.0) - Nuke (~> 7.0) + - STPrivilegedTask SPEC REPOS: https://github.com/cocoapods/specs.git: - KeychainAccess - Nuke + - STPrivilegedTask SPEC CHECKSUMS: KeychainAccess: 3b1bf8a77eb4c6ea1ce9404c292e48f948954c6b Nuke: 44130e95e09463f8773ae4b96b90de1eba6b3350 + STPrivilegedTask: 103f97827454e786074640cf89d303be344498c7 -PODFILE CHECKSUM: 4ad739b1f5db7e51cf8ffbc410963811f20b9b17 +PODFILE CHECKSUM: 53094cc13ea2b40dac4885cca874406388e86f5b COCOAPODS: 1.6.1 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 0092d201..bdbc055a 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,306 +7,409 @@ objects = { /* Begin PBXBuildFile section */ - 28D13F190EB5775B84610175B00949EA /* Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66E0693BEDE8CE4AD731BBDA0CAF76B1 /* Internal.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 2BDA3925B88A286ADD939151942CE66B /* ImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB78EC364D47B2F846FE295F4FF03748 /* ImageView.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 334177B6CBF893B3F401D647A79748D2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */; }; - 349173DC1A05E1C225BE2218FE1A92DE /* Pods-AltStore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E327C07AB276BA6A2D102E9C1697127 /* Pods-AltStore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37B5F51CB3FBCC86DD87D89E488F65E7 /* ImageTaskMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFB8C86DF1618F0847C64F795ED481DC /* ImageTaskMetrics.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 3D426F510FB3AD2E11C049F32BD72674 /* ImageDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 120DDD33C8844BEE1EC96C4C9CD2E821 /* ImageDecoding.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 517D8C8928ADE3DDF1D4D8B5278A5920 /* KeychainAccess-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 21C9EC20F1FC5E9BEC2FE69D1708FA1F /* KeychainAccess-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 552ECDC3881263B7B31F05F8DED17B87 /* ImagePipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 930F6A819392907A5BB85CC4B725EA47 /* ImagePipeline.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 5FDA40753A64D56E734E3A10F98BF16F /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0129EC06D5726BC1481C14706F422AAB /* ImageCache.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 67A97FF007F0DB034E9153DCC408C0A8 /* DataLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73E94415756FCFA45AAABA95247C470D /* DataLoader.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 69F858108A29BF9E1E10E874F98E1ECB /* Nuke-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C8760B598757239C1268DD0FFA5F25A8 /* Nuke-dummy.m */; }; - 90EAF8A14078A1192F29D3372E3D4C98 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = A43A8A22652762605F745962AD523D98 /* Keychain.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - A82DF7004D25FBC1F0CC884A5FFA2448 /* ImagePreheater.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE53493439E4F70CF5112624095A1D9B /* ImagePreheater.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - B13C1F9B80AC7FC91B582F153504BB0C /* ImageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80200203D381988E2B915E5AD52585C2 /* ImageRequest.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - B790F997F299478EDD6E5D68792E4FE1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */; }; - C20D442B8EA8D6CFC673C2D83811AE54 /* Nuke-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3279D6493D2AA6C8B6E3E2AED8FBD5BD /* Nuke-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC2B3106754467ACFCFA3C87CCCBCF2C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */; }; - E2EBC05CCE1809F4D2DD7919DD1D3FA3 /* ImageProcessing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96790E373A18127130405D5122A95 /* ImageProcessing.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - EB0B5E2792DFA319A10E1093D125B2CD /* KeychainAccess-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 30E66D199ED15E5478F5AC21DC53D423 /* KeychainAccess-dummy.m */; }; - FA30DD6859CA3CDB8F5A94F22D0A2AEA /* Pods-AltStore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA992F3CD252F411AB654418D9A02F6 /* Pods-AltStore-dummy.m */; }; - FC8838FEFFD890A1347EAC958C263A39 /* DataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A00C297DE9E8B599AD9F1EEF46467B /* DataCache.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 0A18CFC96BA1E3D7DF11145FABF1E64E /* DataLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75CAE79AFDCB292836F9246765A4E2B7 /* DataLoader.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1C76D68F93326986512254FD62BADC96 /* STPrivilegedTask-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA6ECC05CF0E036E51BEDDDEE39E34BE /* STPrivilegedTask-dummy.m */; }; + 37EF20140753D50E70CF77C62F3728CF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 460E94EA0C2D277E85C54DD0FAD14B40 /* Foundation.framework */; }; + 4BC2A440F56B2681B7CE91EE8EBFC894 /* Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3321CEEBEA0CEF0BB252C7AE905C3001 /* Internal.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 4C82270848F0DA3B405407378689AF6D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BC764BBFDCD7CE97883287D2DAA1514 /* Security.framework */; }; + 555230EED3297385AA76A59513B390CA /* STPrivilegedTask-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A591D858C87CC3F3923B4D96FDC477F9 /* STPrivilegedTask-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 57E7588C7E69A7D306360A22C9D6FF5E /* Pods-AltStore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A17AA38CCF105AAA06998806AC39209 /* Pods-AltStore-dummy.m */; }; + 5A8E10AA29B392DAE441976836D393A5 /* KeychainAccess-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A230B1FAB007804DA89D78D0FA7F0054 /* KeychainAccess-dummy.m */; }; + 5C563C8FC51EFC2FF0A59C6CD5BE439E /* Pods-AltStore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83383601F23F79713570A2083C24B025 /* Pods-AltStore-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D68B76EC70C7CD88977C7BBA5C47B1A /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CECE56E895F24B7AFE3EA7808B6F7A2 /* ImageCache.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 7B3FEE69FB3BB60E1E56611DA122C203 /* STPrivilegedTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A48A5BB5FB7915A7C54EC51B17532FC /* STPrivilegedTask.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 84799F206FB756858DA1341F7AEC702F /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03F30152E99321D2D6E99FF2DEF03859 /* Keychain.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 850767D3E05032D2CF0E8972AFA2BB81 /* Pods-AltServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A06359399112FD4C18B6135E4A948C6 /* Pods-AltServer-dummy.m */; }; + 879AADFC0E22BDB7716910D0A3369C77 /* ImageTaskMetrics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07B9E4301F98C4DEE543E6A7B88C80AE /* ImageTaskMetrics.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 87A66BE797FE126185C9FEB113AD1AAE /* ImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91453A50C27F8E9EB8FE2993CB30FB0D /* ImageView.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 8D6722BD6426F3E66CBD894A443832CD /* Nuke-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 07340B62F295A587BF8A58518EE669CA /* Nuke-dummy.m */; }; + 92B9A2B19BE39566C6CACFD26BF134C4 /* KeychainAccess-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D45542D2A09DADBB7A7BC8733D986886 /* KeychainAccess-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96F79411300DB3B1280948E2B165AA03 /* ImageProcessing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E89612EC040EF8DA0943FC36F82A80E /* ImageProcessing.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 9B3853F97F020FD13063BBA1688D52FE /* ImageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 404AEF5B079A6331A26A3A3D78936842 /* ImageRequest.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + A89E4CB6D4DA5995FC9042B861542338 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D60FE9AFA650EB270A4FA15C1DBEDBEB /* Cocoa.framework */; }; + B84369E539EDE5956657E2ED55F9FA47 /* Nuke-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D6495A1FC6A57B6404E3F6682A8A591 /* Nuke-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBC205B18AC4F860384AA48EB62E3151 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 460E94EA0C2D277E85C54DD0FAD14B40 /* Foundation.framework */; }; + C19654E5869F26968FE04867EBE0AA93 /* ImagePipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = E92FE787EBE028D77C7A3F4E0430D0B6 /* ImagePipeline.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + CD958F72EC7E81579C3C4E9553417E98 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D60FE9AFA650EB270A4FA15C1DBEDBEB /* Cocoa.framework */; }; + CF920935C6D30430A43066B25CC006B1 /* ImageDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7022E847BEA4F6A4DCEC8E9DD5F6B910 /* ImageDecoding.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + D1AF4602637FA0CCD336D08A60CA142D /* DataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130A581823C370F2C58C11C14AC6452F /* DataCache.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + DEF47628554B43A1BECFA49B6A813DE4 /* STPrivilegedTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F95229BB7E76CBC42A2FA7B207DBE77 /* STPrivilegedTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3A62D17ED4B3A3FB5557C9DB7A7BC18 /* Pods-AltServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 58ECE69E3F3C8DC2413652F49AE587F8 /* Pods-AltServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8395200A45B1D891CABD0675CDFEB7B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 460E94EA0C2D277E85C54DD0FAD14B40 /* Foundation.framework */; }; + FA2127BC3DA61718740A7405E7BBE85E /* ImagePreheater.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B9CB9841E89DFB22DDF4CC552FC2AB /* ImagePreheater.swift */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - AD39C269955D15DECE2E26D76D8F960F /* PBXContainerItemProxy */ = { + 3895BFEFA1F8BAB69DF11C154E9DA338 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = A1A0FE2A9E90F5B42D68DD55E0C304C7; + remoteGlobalIDString = 3F895CBA524B654D3F837F25BFBE2262; + remoteInfo = KeychainAccess; + }; + C08AA1ABDB4BA9BB2BE4BBD9106AA301 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A6293B46682B3506C97B73C333967DDB; remoteInfo = Nuke; }; - CFD447BAF8DC06711C8BC4811B91984F /* PBXContainerItemProxy */ = { + EFBE2C59B8488171E755174CED4C9912 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 743DE9690D42CC3F72C67102B7359738; - remoteInfo = KeychainAccess; + remoteGlobalIDString = DF5F2EB2C6CB11FD907D712C4CE4753E; + remoteInfo = STPrivilegedTask; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0129EC06D5726BC1481C14706F422AAB /* ImageCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageCache.swift; path = Sources/ImageCache.swift; sourceTree = ""; }; - 0C9645075E504CEEC1C7CAACE8C8EA53 /* Pods_AltStore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AltStore.framework; path = "Pods-AltStore.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 120DDD33C8844BEE1EC96C4C9CD2E821 /* ImageDecoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDecoding.swift; path = Sources/ImageDecoding.swift; sourceTree = ""; }; - 184E7D8A7431E86209F239AF275FB5BC /* KeychainAccess-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-prefix.pch"; sourceTree = ""; }; - 21C9EC20F1FC5E9BEC2FE69D1708FA1F /* KeychainAccess-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-umbrella.h"; sourceTree = ""; }; - 2328FF2674C8B599E2BB09D8C69B279D /* Nuke-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Nuke-Info.plist"; sourceTree = ""; }; - 2E327C07AB276BA6A2D102E9C1697127 /* Pods-AltStore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AltStore-umbrella.h"; sourceTree = ""; }; - 300ED185B63C7F43AB741EBBE581DAF2 /* Nuke.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Nuke.modulemap; sourceTree = ""; }; - 30E66D199ED15E5478F5AC21DC53D423 /* KeychainAccess-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KeychainAccess-dummy.m"; sourceTree = ""; }; - 3279D6493D2AA6C8B6E3E2AED8FBD5BD /* Nuke-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nuke-umbrella.h"; sourceTree = ""; }; - 38D1B55A07DBA5790862EE8B2E01C5D1 /* Nuke.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Nuke.xcconfig; sourceTree = ""; }; - 41B96790E373A18127130405D5122A95 /* ImageProcessing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProcessing.swift; path = Sources/ImageProcessing.swift; sourceTree = ""; }; - 4843B92A84439464FA074CC95A8880D8 /* Pods-AltStore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AltStore-Info.plist"; sourceTree = ""; }; - 4D6A329382B92AAA01398C8A3C5DD70D /* KeychainAccess.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.xcconfig; sourceTree = ""; }; - 5E00599D3500D180E1F2B95D3B2BC02F /* Pods-AltStore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltStore.release.xcconfig"; sourceTree = ""; }; - 6264F18955EC17CB030280BE362255F7 /* Nuke-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nuke-prefix.pch"; sourceTree = ""; }; - 66E0693BEDE8CE4AD731BBDA0CAF76B1 /* Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Internal.swift; path = Sources/Internal.swift; sourceTree = ""; }; - 66F63F25A9CD988A2201B85E7E6C0B93 /* Pods-AltStore.release-beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltStore.release-beta.xcconfig"; sourceTree = ""; }; - 6AB6967B2AEBE949A35F74CD4CC72B2B /* Nuke.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nuke.framework; path = Nuke.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 73E94415756FCFA45AAABA95247C470D /* DataLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataLoader.swift; path = Sources/DataLoader.swift; sourceTree = ""; }; - 7516850C0456BB0775EA8037DA2021E6 /* KeychainAccess.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KeychainAccess.modulemap; sourceTree = ""; }; - 80200203D381988E2B915E5AD52585C2 /* ImageRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageRequest.swift; path = Sources/ImageRequest.swift; sourceTree = ""; }; - 8A5EAB132E36193E128F6730E436B84C /* Pods-AltStore-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AltStore-frameworks.sh"; sourceTree = ""; }; - 8F99797505FBF73DE7E56D58C952F826 /* Pods-AltStore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltStore.debug.xcconfig"; sourceTree = ""; }; - 930F6A819392907A5BB85CC4B725EA47 /* ImagePipeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePipeline.swift; path = Sources/ImagePipeline.swift; sourceTree = ""; }; + 03F30152E99321D2D6E99FF2DEF03859 /* Keychain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Keychain.swift; path = Lib/KeychainAccess/Keychain.swift; sourceTree = ""; }; + 0723E8A7126214E29EFD1891FD7EDB2D /* Pods-AltServer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AltServer-Info.plist"; sourceTree = ""; }; + 07340B62F295A587BF8A58518EE669CA /* Nuke-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nuke-dummy.m"; sourceTree = ""; }; + 07B9E4301F98C4DEE543E6A7B88C80AE /* ImageTaskMetrics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageTaskMetrics.swift; path = Sources/ImageTaskMetrics.swift; sourceTree = ""; }; + 0A48A5BB5FB7915A7C54EC51B17532FC /* STPrivilegedTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = STPrivilegedTask.m; sourceTree = ""; }; + 0AC21C6A5E4079613CEDF02A77AE884F /* Pods-AltStore-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AltStore-frameworks.sh"; sourceTree = ""; }; + 0E89612EC040EF8DA0943FC36F82A80E /* ImageProcessing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProcessing.swift; path = Sources/ImageProcessing.swift; sourceTree = ""; }; + 130A581823C370F2C58C11C14AC6452F /* DataCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataCache.swift; path = Sources/DataCache.swift; sourceTree = ""; }; + 1F95229BB7E76CBC42A2FA7B207DBE77 /* STPrivilegedTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = STPrivilegedTask.h; sourceTree = ""; }; + 24E0B05007F4DBEAB7A4AB71077CBAD8 /* Nuke.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Nuke.framework; path = Nuke.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3321CEEBEA0CEF0BB252C7AE905C3001 /* Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Internal.swift; path = Sources/Internal.swift; sourceTree = ""; }; + 33CB1213585AC2B854BD9AAD275B5893 /* KeychainAccess-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-prefix.pch"; sourceTree = ""; }; + 404AEF5B079A6331A26A3A3D78936842 /* ImageRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageRequest.swift; path = Sources/ImageRequest.swift; sourceTree = ""; }; + 44D542343E3A9F403456E96FCA3D13B1 /* Pods-AltServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AltServer.modulemap"; sourceTree = ""; }; + 460E94EA0C2D277E85C54DD0FAD14B40 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 4A06359399112FD4C18B6135E4A948C6 /* Pods-AltServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AltServer-dummy.m"; sourceTree = ""; }; + 4E5F55EE622E13A90D434324A0441B07 /* Pods-AltServer-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AltServer-acknowledgements.plist"; sourceTree = ""; }; + 4FD621967366F2DCDCAB78CF61A5ED83 /* Pods-AltServer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltServer.debug.xcconfig"; sourceTree = ""; }; + 58ECE69E3F3C8DC2413652F49AE587F8 /* Pods-AltServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AltServer-umbrella.h"; sourceTree = ""; }; + 591A1B224DF8EF47570A1F5D0E2CF4B1 /* Pods-AltStore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AltStore.modulemap"; sourceTree = ""; }; + 5BC19E4A9B6259D18B1ECF87F12AA725 /* Pods-AltStore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltStore.debug.xcconfig"; sourceTree = ""; }; + 5BC764BBFDCD7CE97883287D2DAA1514 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 6221FF4E83102F521C8A16F968C89978 /* STPrivilegedTask-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "STPrivilegedTask-Info.plist"; sourceTree = ""; }; + 65B321319586C748AF1C855726B038FF /* Pods_AltStore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AltStore.framework; path = "Pods-AltStore.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6D17C73A48E8A8999380439FBF1BA3C7 /* Nuke.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Nuke.modulemap; sourceTree = ""; }; + 6D562A7CADE361DD45844AF9EF2478E2 /* Pods-AltServer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltServer.release.xcconfig"; sourceTree = ""; }; + 7022E847BEA4F6A4DCEC8E9DD5F6B910 /* ImageDecoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDecoding.swift; path = Sources/ImageDecoding.swift; sourceTree = ""; }; + 75CAE79AFDCB292836F9246765A4E2B7 /* DataLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataLoader.swift; path = Sources/DataLoader.swift; sourceTree = ""; }; + 764FAB09B8E55225AC0435EF27B49EDC /* KeychainAccess.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KeychainAccess.modulemap; sourceTree = ""; }; + 7828EDB7B42670F026DFFAE23CF1A15B /* Pods-AltServer-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AltServer-frameworks.sh"; sourceTree = ""; }; + 7CECE56E895F24B7AFE3EA7808B6F7A2 /* ImageCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageCache.swift; path = Sources/ImageCache.swift; sourceTree = ""; }; + 7F62011535C21E4CDC4E1680499CA67B /* STPrivilegedTask-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "STPrivilegedTask-prefix.pch"; sourceTree = ""; }; + 83383601F23F79713570A2083C24B025 /* Pods-AltStore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AltStore-umbrella.h"; sourceTree = ""; }; + 855B350CD1C1DC2FC1598CCE8CF1AA5F /* Pods-AltStore-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AltStore-Info.plist"; sourceTree = ""; }; + 8EFA668870D2823F4986D104135AAF75 /* STPrivilegedTask.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = STPrivilegedTask.framework; path = STPrivilegedTask.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 91453A50C27F8E9EB8FE2993CB30FB0D /* ImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageView.swift; path = Sources/ImageView.swift; sourceTree = ""; }; + 916715571D11F109EC64C595F7413366 /* Nuke-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nuke-prefix.pch"; sourceTree = ""; }; + 94F7885C7ED5FF08A6CEA48D3D602EBE /* Pods-AltStore-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AltStore-acknowledgements.markdown"; sourceTree = ""; }; + 9A17AA38CCF105AAA06998806AC39209 /* Pods-AltStore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AltStore-dummy.m"; sourceTree = ""; }; + 9D6495A1FC6A57B6404E3F6682A8A591 /* Nuke-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nuke-umbrella.h"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A43A8A22652762605F745962AD523D98 /* Keychain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Keychain.swift; path = Lib/KeychainAccess/Keychain.swift; sourceTree = ""; }; - C431A286A0FBD5ABC174CD2D2C6F580D /* Pods-AltStore-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AltStore-acknowledgements.markdown"; sourceTree = ""; }; - C8760B598757239C1268DD0FFA5F25A8 /* Nuke-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nuke-dummy.m"; sourceTree = ""; }; - CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - CE25E735A3141268149C914715951E48 /* Pods-AltStore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AltStore.modulemap"; sourceTree = ""; }; - CE53493439E4F70CF5112624095A1D9B /* ImagePreheater.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePreheater.swift; path = Sources/ImagePreheater.swift; sourceTree = ""; }; - CE86F606176D6FB0C3EE9D15055C3449 /* KeychainAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = KeychainAccess.framework; path = KeychainAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D1A00C297DE9E8B599AD9F1EEF46467B /* DataCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DataCache.swift; path = Sources/DataCache.swift; sourceTree = ""; }; - DB78EC364D47B2F846FE295F4FF03748 /* ImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageView.swift; path = Sources/ImageView.swift; sourceTree = ""; }; - DEA992F3CD252F411AB654418D9A02F6 /* Pods-AltStore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AltStore-dummy.m"; sourceTree = ""; }; - E3E4DE1BC1956639046E594D42A3F31C /* Pods-AltStore.debug-beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltStore.debug-beta.xcconfig"; sourceTree = ""; }; - E9852793F007CB834DA358B4D47C32C1 /* KeychainAccess-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "KeychainAccess-Info.plist"; sourceTree = ""; }; - F748502C109FAA9864B309F02907FD40 /* Pods-AltStore-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AltStore-acknowledgements.plist"; sourceTree = ""; }; - FFB8C86DF1618F0847C64F795ED481DC /* ImageTaskMetrics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageTaskMetrics.swift; path = Sources/ImageTaskMetrics.swift; sourceTree = ""; }; + A230B1FAB007804DA89D78D0FA7F0054 /* KeychainAccess-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KeychainAccess-dummy.m"; sourceTree = ""; }; + A3B9CB9841E89DFB22DDF4CC552FC2AB /* ImagePreheater.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePreheater.swift; path = Sources/ImagePreheater.swift; sourceTree = ""; }; + A591D858C87CC3F3923B4D96FDC477F9 /* STPrivilegedTask-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "STPrivilegedTask-umbrella.h"; sourceTree = ""; }; + A70213FB68D6ECBB9B3ADD57172443AB /* Pods-AltServer-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AltServer-acknowledgements.markdown"; sourceTree = ""; }; + BA6ECC05CF0E036E51BEDDDEE39E34BE /* STPrivilegedTask-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "STPrivilegedTask-dummy.m"; sourceTree = ""; }; + BC3F0F6B69D621D81A4CD1E513BDCFD4 /* KeychainAccess.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.xcconfig; sourceTree = ""; }; + C2BCD16A1413425A64DBA83409F90378 /* Nuke.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Nuke.xcconfig; sourceTree = ""; }; + C316B99589E26DCA47E8C6DAADD69A4B /* STPrivilegedTask.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = STPrivilegedTask.modulemap; sourceTree = ""; }; + D45542D2A09DADBB7A7BC8733D986886 /* KeychainAccess-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-umbrella.h"; sourceTree = ""; }; + D4C091043EE52D54282C3F02922C8C9B /* Pods-AltStore-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AltStore-acknowledgements.plist"; sourceTree = ""; }; + D60FE9AFA650EB270A4FA15C1DBEDBEB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + E03576C63AE3E39719998BB2BAEEBCA4 /* KeychainAccess-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "KeychainAccess-Info.plist"; sourceTree = ""; }; + E5FBDBA1A09F3FE8DCD92584B515259F /* Nuke-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Nuke-Info.plist"; sourceTree = ""; }; + E7DF39C97D4B0B260B429153895C5D31 /* KeychainAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = KeychainAccess.framework; path = KeychainAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E92FE787EBE028D77C7A3F4E0430D0B6 /* ImagePipeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePipeline.swift; path = Sources/ImagePipeline.swift; sourceTree = ""; }; + EAC9C2E47F5E6B97839BDBC1B7CCAED7 /* Pods-AltStore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AltStore.release.xcconfig"; sourceTree = ""; }; + F3CCDBA2DD16EFAA102D94421CFA0F79 /* Pods_AltServer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_AltServer.framework; path = "Pods-AltServer.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + F5D685C053BD0F777E1F9F7CD97DAB57 /* STPrivilegedTask.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = STPrivilegedTask.xcconfig; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 083028BA75836FDE5DFA52C043EE2E76 /* Frameworks */ = { + 0204952869C178798435A612AAEB2876 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CC2B3106754467ACFCFA3C87CCCBCF2C /* Foundation.framework in Frameworks */, + A89E4CB6D4DA5995FC9042B861542338 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 45D5E87A5D14BAF389FF2AC9053451D9 /* Frameworks */ = { + A149A7E612695478C38AD26433C59758 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B790F997F299478EDD6E5D68792E4FE1 /* Foundation.framework in Frameworks */, + CD958F72EC7E81579C3C4E9553417E98 /* Cocoa.framework in Frameworks */, + 4C82270848F0DA3B405407378689AF6D /* Security.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 67DDA5492E2BF9342736635BB8C42795 /* Frameworks */ = { + ABDA17563D8ADDC2F0C97AEEC1190FF4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 334177B6CBF893B3F401D647A79748D2 /* Foundation.framework in Frameworks */, + 37EF20140753D50E70CF77C62F3728CF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DF4A1E02828950F7A135CEFD372F8141 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBC205B18AC4F860384AA48EB62E3151 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FDED646FFE773E48D6F071CBE9862359 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E8395200A45B1D891CABD0675CDFEB7B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 21AFD5ACB5E55904BC69293508B530A1 /* Products */ = { + 14E298E7613CB2C40A36BDACB8304435 /* KeychainAccess */ = { isa = PBXGroup; children = ( - CE86F606176D6FB0C3EE9D15055C3449 /* KeychainAccess.framework */, - 6AB6967B2AEBE949A35F74CD4CC72B2B /* Nuke.framework */, - 0C9645075E504CEEC1C7CAACE8C8EA53 /* Pods_AltStore.framework */, - ); - name = Products; - sourceTree = ""; - }; - 2B2AE941DB406AD8A970C81548FC9AAF /* KeychainAccess */ = { - isa = PBXGroup; - children = ( - A43A8A22652762605F745962AD523D98 /* Keychain.swift */, - 36EE934D53885C39396738E704938F81 /* Support Files */, + 03F30152E99321D2D6E99FF2DEF03859 /* Keychain.swift */, + C565EB64F617C736CA952238B335E51F /* Support Files */, ); name = KeychainAccess; path = KeychainAccess; sourceTree = ""; }; - 2DC7385AB79082B50861A611E3CA7F1D /* Targets Support Files */ = { + 1B8944A45D3F188D8A99672A9E44D1D4 /* Pods-AltStore */ = { isa = PBXGroup; children = ( - D8FCE2C48B853408EC729B90EEF18DB3 /* Pods-AltStore */, + 591A1B224DF8EF47570A1F5D0E2CF4B1 /* Pods-AltStore.modulemap */, + 94F7885C7ED5FF08A6CEA48D3D602EBE /* Pods-AltStore-acknowledgements.markdown */, + D4C091043EE52D54282C3F02922C8C9B /* Pods-AltStore-acknowledgements.plist */, + 9A17AA38CCF105AAA06998806AC39209 /* Pods-AltStore-dummy.m */, + 0AC21C6A5E4079613CEDF02A77AE884F /* Pods-AltStore-frameworks.sh */, + 855B350CD1C1DC2FC1598CCE8CF1AA5F /* Pods-AltStore-Info.plist */, + 83383601F23F79713570A2083C24B025 /* Pods-AltStore-umbrella.h */, + 5BC19E4A9B6259D18B1ECF87F12AA725 /* Pods-AltStore.debug.xcconfig */, + EAC9C2E47F5E6B97839BDBC1B7CCAED7 /* Pods-AltStore.release.xcconfig */, ); - name = "Targets Support Files"; + name = "Pods-AltStore"; + path = "Target Support Files/Pods-AltStore"; sourceTree = ""; }; - 3295775C592A786F74EE2052B6E3051C /* Pods */ = { + 234969DD16E03B63425A9FA94A634C24 /* Support Files */ = { isa = PBXGroup; children = ( - 2B2AE941DB406AD8A970C81548FC9AAF /* KeychainAccess */, - 774F9F24FAF6CE3286E3A242DB35F8F9 /* Nuke */, - ); - name = Pods; - sourceTree = ""; - }; - 36EE934D53885C39396738E704938F81 /* Support Files */ = { - isa = PBXGroup; - children = ( - 7516850C0456BB0775EA8037DA2021E6 /* KeychainAccess.modulemap */, - 4D6A329382B92AAA01398C8A3C5DD70D /* KeychainAccess.xcconfig */, - 30E66D199ED15E5478F5AC21DC53D423 /* KeychainAccess-dummy.m */, - E9852793F007CB834DA358B4D47C32C1 /* KeychainAccess-Info.plist */, - 184E7D8A7431E86209F239AF275FB5BC /* KeychainAccess-prefix.pch */, - 21C9EC20F1FC5E9BEC2FE69D1708FA1F /* KeychainAccess-umbrella.h */, + 6D17C73A48E8A8999380439FBF1BA3C7 /* Nuke.modulemap */, + C2BCD16A1413425A64DBA83409F90378 /* Nuke.xcconfig */, + 07340B62F295A587BF8A58518EE669CA /* Nuke-dummy.m */, + E5FBDBA1A09F3FE8DCD92584B515259F /* Nuke-Info.plist */, + 916715571D11F109EC64C595F7413366 /* Nuke-prefix.pch */, + 9D6495A1FC6A57B6404E3F6682A8A591 /* Nuke-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/KeychainAccess"; + path = "../Target Support Files/Nuke"; sourceTree = ""; }; - 774F9F24FAF6CE3286E3A242DB35F8F9 /* Nuke */ = { + 4DACFB02785084EBE54F10FC7A84EE97 /* STPrivilegedTask */ = { isa = PBXGroup; children = ( - D1A00C297DE9E8B599AD9F1EEF46467B /* DataCache.swift */, - 73E94415756FCFA45AAABA95247C470D /* DataLoader.swift */, - 0129EC06D5726BC1481C14706F422AAB /* ImageCache.swift */, - 120DDD33C8844BEE1EC96C4C9CD2E821 /* ImageDecoding.swift */, - 930F6A819392907A5BB85CC4B725EA47 /* ImagePipeline.swift */, - CE53493439E4F70CF5112624095A1D9B /* ImagePreheater.swift */, - 41B96790E373A18127130405D5122A95 /* ImageProcessing.swift */, - 80200203D381988E2B915E5AD52585C2 /* ImageRequest.swift */, - FFB8C86DF1618F0847C64F795ED481DC /* ImageTaskMetrics.swift */, - DB78EC364D47B2F846FE295F4FF03748 /* ImageView.swift */, - 66E0693BEDE8CE4AD731BBDA0CAF76B1 /* Internal.swift */, - EB150DDBA5B5D2EDA82314D4C277EFD1 /* Support Files */, + 1F95229BB7E76CBC42A2FA7B207DBE77 /* STPrivilegedTask.h */, + 0A48A5BB5FB7915A7C54EC51B17532FC /* STPrivilegedTask.m */, + CAD46286DB9B0CAE7DED7E2AA17DBCB6 /* Support Files */, + ); + name = STPrivilegedTask; + path = STPrivilegedTask; + sourceTree = ""; + }; + 6534E44C7D6DE873D34857AB5A83036C /* Nuke */ = { + isa = PBXGroup; + children = ( + 130A581823C370F2C58C11C14AC6452F /* DataCache.swift */, + 75CAE79AFDCB292836F9246765A4E2B7 /* DataLoader.swift */, + 7CECE56E895F24B7AFE3EA7808B6F7A2 /* ImageCache.swift */, + 7022E847BEA4F6A4DCEC8E9DD5F6B910 /* ImageDecoding.swift */, + E92FE787EBE028D77C7A3F4E0430D0B6 /* ImagePipeline.swift */, + A3B9CB9841E89DFB22DDF4CC552FC2AB /* ImagePreheater.swift */, + 0E89612EC040EF8DA0943FC36F82A80E /* ImageProcessing.swift */, + 404AEF5B079A6331A26A3A3D78936842 /* ImageRequest.swift */, + 07B9E4301F98C4DEE543E6A7B88C80AE /* ImageTaskMetrics.swift */, + 91453A50C27F8E9EB8FE2993CB30FB0D /* ImageView.swift */, + 3321CEEBEA0CEF0BB252C7AE905C3001 /* Internal.swift */, + 234969DD16E03B63425A9FA94A634C24 /* Support Files */, ); name = Nuke; path = Nuke; sourceTree = ""; }; - 9B055D0CFEA43187E72B03DED11F5662 /* iOS */ = { + 77129020417B3404D7D856290BB2C955 /* iOS */ = { isa = PBXGroup; children = ( - CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */, + 460E94EA0C2D277E85C54DD0FAD14B40 /* Foundation.framework */, ); name = iOS; sourceTree = ""; }; + B87483E81D8E8CCEF73ED7B7A3AC585A /* Pods-AltServer */ = { + isa = PBXGroup; + children = ( + 44D542343E3A9F403456E96FCA3D13B1 /* Pods-AltServer.modulemap */, + A70213FB68D6ECBB9B3ADD57172443AB /* Pods-AltServer-acknowledgements.markdown */, + 4E5F55EE622E13A90D434324A0441B07 /* Pods-AltServer-acknowledgements.plist */, + 4A06359399112FD4C18B6135E4A948C6 /* Pods-AltServer-dummy.m */, + 7828EDB7B42670F026DFFAE23CF1A15B /* Pods-AltServer-frameworks.sh */, + 0723E8A7126214E29EFD1891FD7EDB2D /* Pods-AltServer-Info.plist */, + 58ECE69E3F3C8DC2413652F49AE587F8 /* Pods-AltServer-umbrella.h */, + 4FD621967366F2DCDCAB78CF61A5ED83 /* Pods-AltServer.debug.xcconfig */, + 6D562A7CADE361DD45844AF9EF2478E2 /* Pods-AltServer.release.xcconfig */, + ); + name = "Pods-AltServer"; + path = "Target Support Files/Pods-AltServer"; + sourceTree = ""; + }; + BEAF173CF7BAF5537488976CEC756DA3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 77129020417B3404D7D856290BB2C955 /* iOS */, + C144F767BF34EE20ED230CCF4C4EA47C /* OS X */, + ); + name = Frameworks; + sourceTree = ""; + }; + C144F767BF34EE20ED230CCF4C4EA47C /* OS X */ = { + isa = PBXGroup; + children = ( + D60FE9AFA650EB270A4FA15C1DBEDBEB /* Cocoa.framework */, + 5BC764BBFDCD7CE97883287D2DAA1514 /* Security.framework */, + ); + name = "OS X"; + sourceTree = ""; + }; + C565EB64F617C736CA952238B335E51F /* Support Files */ = { + isa = PBXGroup; + children = ( + 764FAB09B8E55225AC0435EF27B49EDC /* KeychainAccess.modulemap */, + BC3F0F6B69D621D81A4CD1E513BDCFD4 /* KeychainAccess.xcconfig */, + A230B1FAB007804DA89D78D0FA7F0054 /* KeychainAccess-dummy.m */, + E03576C63AE3E39719998BB2BAEEBCA4 /* KeychainAccess-Info.plist */, + 33CB1213585AC2B854BD9AAD275B5893 /* KeychainAccess-prefix.pch */, + D45542D2A09DADBB7A7BC8733D986886 /* KeychainAccess-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/KeychainAccess"; + sourceTree = ""; + }; + CAD46286DB9B0CAE7DED7E2AA17DBCB6 /* Support Files */ = { + isa = PBXGroup; + children = ( + C316B99589E26DCA47E8C6DAADD69A4B /* STPrivilegedTask.modulemap */, + F5D685C053BD0F777E1F9F7CD97DAB57 /* STPrivilegedTask.xcconfig */, + BA6ECC05CF0E036E51BEDDDEE39E34BE /* STPrivilegedTask-dummy.m */, + 6221FF4E83102F521C8A16F968C89978 /* STPrivilegedTask-Info.plist */, + 7F62011535C21E4CDC4E1680499CA67B /* STPrivilegedTask-prefix.pch */, + A591D858C87CC3F3923B4D96FDC477F9 /* STPrivilegedTask-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/STPrivilegedTask"; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, - 3295775C592A786F74EE2052B6E3051C /* Pods */, - 21AFD5ACB5E55904BC69293508B530A1 /* Products */, - 2DC7385AB79082B50861A611E3CA7F1D /* Targets Support Files */, + BEAF173CF7BAF5537488976CEC756DA3 /* Frameworks */, + D18652FEC2F0B930BEB2097F9A3CE630 /* Pods */, + F6511C25707DC2C24FD046FB7D4900C8 /* Products */, + DB3F905BDA837A2C76ED41F5F49087B7 /* Targets Support Files */, ); sourceTree = ""; }; - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + D18652FEC2F0B930BEB2097F9A3CE630 /* Pods */ = { isa = PBXGroup; children = ( - 9B055D0CFEA43187E72B03DED11F5662 /* iOS */, + 14E298E7613CB2C40A36BDACB8304435 /* KeychainAccess */, + 6534E44C7D6DE873D34857AB5A83036C /* Nuke */, + 4DACFB02785084EBE54F10FC7A84EE97 /* STPrivilegedTask */, ); - name = Frameworks; + name = Pods; sourceTree = ""; }; - D8FCE2C48B853408EC729B90EEF18DB3 /* Pods-AltStore */ = { + DB3F905BDA837A2C76ED41F5F49087B7 /* Targets Support Files */ = { isa = PBXGroup; children = ( - CE25E735A3141268149C914715951E48 /* Pods-AltStore.modulemap */, - C431A286A0FBD5ABC174CD2D2C6F580D /* Pods-AltStore-acknowledgements.markdown */, - F748502C109FAA9864B309F02907FD40 /* Pods-AltStore-acknowledgements.plist */, - DEA992F3CD252F411AB654418D9A02F6 /* Pods-AltStore-dummy.m */, - 8A5EAB132E36193E128F6730E436B84C /* Pods-AltStore-frameworks.sh */, - 4843B92A84439464FA074CC95A8880D8 /* Pods-AltStore-Info.plist */, - 2E327C07AB276BA6A2D102E9C1697127 /* Pods-AltStore-umbrella.h */, - 8F99797505FBF73DE7E56D58C952F826 /* Pods-AltStore.debug.xcconfig */, - E3E4DE1BC1956639046E594D42A3F31C /* Pods-AltStore.debug-beta.xcconfig */, - 5E00599D3500D180E1F2B95D3B2BC02F /* Pods-AltStore.release.xcconfig */, - 66F63F25A9CD988A2201B85E7E6C0B93 /* Pods-AltStore.release-beta.xcconfig */, + B87483E81D8E8CCEF73ED7B7A3AC585A /* Pods-AltServer */, + 1B8944A45D3F188D8A99672A9E44D1D4 /* Pods-AltStore */, ); - name = "Pods-AltStore"; - path = "Target Support Files/Pods-AltStore"; + name = "Targets Support Files"; sourceTree = ""; }; - EB150DDBA5B5D2EDA82314D4C277EFD1 /* Support Files */ = { + F6511C25707DC2C24FD046FB7D4900C8 /* Products */ = { isa = PBXGroup; children = ( - 300ED185B63C7F43AB741EBBE581DAF2 /* Nuke.modulemap */, - 38D1B55A07DBA5790862EE8B2E01C5D1 /* Nuke.xcconfig */, - C8760B598757239C1268DD0FFA5F25A8 /* Nuke-dummy.m */, - 2328FF2674C8B599E2BB09D8C69B279D /* Nuke-Info.plist */, - 6264F18955EC17CB030280BE362255F7 /* Nuke-prefix.pch */, - 3279D6493D2AA6C8B6E3E2AED8FBD5BD /* Nuke-umbrella.h */, + E7DF39C97D4B0B260B429153895C5D31 /* KeychainAccess.framework */, + 24E0B05007F4DBEAB7A4AB71077CBAD8 /* Nuke.framework */, + F3CCDBA2DD16EFAA102D94421CFA0F79 /* Pods_AltServer.framework */, + 65B321319586C748AF1C855726B038FF /* Pods_AltStore.framework */, + 8EFA668870D2823F4986D104135AAF75 /* STPrivilegedTask.framework */, ); - name = "Support Files"; - path = "../Target Support Files/Nuke"; + name = Products; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 6C9BC0E1EBB029CCF9FCF9BCA3DCCABA /* Headers */ = { + 35EA24761FC20AE2B8CC8E9670E57DC5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C20D442B8EA8D6CFC673C2D83811AE54 /* Nuke-umbrella.h in Headers */, + 92B9A2B19BE39566C6CACFD26BF134C4 /* KeychainAccess-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - C2C2B06A8D0F49E746C5A773EF1F902E /* Headers */ = { + 65D299017BD89093B64A6AF1DF738157 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 517D8C8928ADE3DDF1D4D8B5278A5920 /* KeychainAccess-umbrella.h in Headers */, + B84369E539EDE5956657E2ED55F9FA47 /* Nuke-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E5779EF7ACF2BDC5BCC261AD773096ED /* Headers */ = { + 7522BE9816145D8929AB7004233B9278 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 349173DC1A05E1C225BE2218FE1A92DE /* Pods-AltStore-umbrella.h in Headers */, + E3A62D17ED4B3A3FB5557C9DB7A7BC18 /* Pods-AltServer-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F09707CA8FEC9C9CA3D3FB54498E2B1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 555230EED3297385AA76A59513B390CA /* STPrivilegedTask-umbrella.h in Headers */, + DEF47628554B43A1BECFA49B6A813DE4 /* STPrivilegedTask.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CA8BA33762FB1F287ACE7B5F5361361E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5C563C8FC51EFC2FF0A59C6CD5BE439E /* Pods-AltStore-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 2DB6F1AF8C5EF6674B24A1A79C312CC2 /* Pods-AltStore */ = { + 3F895CBA524B654D3F837F25BFBE2262 /* KeychainAccess */ = { isa = PBXNativeTarget; - buildConfigurationList = AD314FBC3F6506674DFCE7740C865A38 /* Build configuration list for PBXNativeTarget "Pods-AltStore" */; + buildConfigurationList = DE15D3D37E993FBD358414CD9F51D3B6 /* Build configuration list for PBXNativeTarget "KeychainAccess" */; buildPhases = ( - E5779EF7ACF2BDC5BCC261AD773096ED /* Headers */, - 6D54C1BE5B08200A65C0A9BD24067D29 /* Sources */, - 083028BA75836FDE5DFA52C043EE2E76 /* Frameworks */, - CCD6A26BEA073910291BBC1196DCD922 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DAD3F07DA1E890F783206250078BEFC1 /* PBXTargetDependency */, - E1EAE61BBAB8A420A80568158A84881E /* PBXTargetDependency */, - ); - name = "Pods-AltStore"; - productName = "Pods-AltStore"; - productReference = 0C9645075E504CEEC1C7CAACE8C8EA53 /* Pods_AltStore.framework */; - productType = "com.apple.product-type.framework"; - }; - 743DE9690D42CC3F72C67102B7359738 /* KeychainAccess */ = { - isa = PBXNativeTarget; - buildConfigurationList = 234E01EB07F8E60EFF0CD01984D0DB09 /* Build configuration list for PBXNativeTarget "KeychainAccess" */; - buildPhases = ( - C2C2B06A8D0F49E746C5A773EF1F902E /* Headers */, - 0871C06E1324EB138833F5102E0B27E0 /* Sources */, - 67DDA5492E2BF9342736635BB8C42795 /* Frameworks */, - B720DE672B1A4B91CFFD8D83B72D81D1 /* Resources */, + 35EA24761FC20AE2B8CC8E9670E57DC5 /* Headers */, + BED7319EC5283C148574010E5AB999C0 /* Sources */, + FDED646FFE773E48D6F071CBE9862359 /* Frameworks */, + 153594991ADE9BDDE5FB6C2FDB474216 /* Resources */, ); buildRules = ( ); @@ -314,17 +417,36 @@ ); name = KeychainAccess; productName = KeychainAccess; - productReference = CE86F606176D6FB0C3EE9D15055C3449 /* KeychainAccess.framework */; + productReference = E7DF39C97D4B0B260B429153895C5D31 /* KeychainAccess.framework */; productType = "com.apple.product-type.framework"; }; - A1A0FE2A9E90F5B42D68DD55E0C304C7 /* Nuke */ = { + 9FF56DA41C8D40ADF80074E967B9BCD3 /* Pods-AltServer */ = { isa = PBXNativeTarget; - buildConfigurationList = 8EDAE7E1598DBD84B64F6E6498E0F85C /* Build configuration list for PBXNativeTarget "Nuke" */; + buildConfigurationList = 503DAD29AD134CA3D7B66DFE0B218E4A /* Build configuration list for PBXNativeTarget "Pods-AltServer" */; buildPhases = ( - 6C9BC0E1EBB029CCF9FCF9BCA3DCCABA /* Headers */, - A2CF0DE37F4BBE8E8FFC2F36F4F6F709 /* Sources */, - 45D5E87A5D14BAF389FF2AC9053451D9 /* Frameworks */, - E9E4F9C2F7538965A493A2CFD847A2C0 /* Resources */, + 7522BE9816145D8929AB7004233B9278 /* Headers */, + 5AF1675D8E574F0B2245A2D1CA0AFCFB /* Sources */, + 0204952869C178798435A612AAEB2876 /* Frameworks */, + 723DD743AC935FC2C55D3947B29ACC3A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 38196C023C5938F767B10363EB20B520 /* PBXTargetDependency */, + ); + name = "Pods-AltServer"; + productName = "Pods-AltServer"; + productReference = F3CCDBA2DD16EFAA102D94421CFA0F79 /* Pods_AltServer.framework */; + productType = "com.apple.product-type.framework"; + }; + A6293B46682B3506C97B73C333967DDB /* Nuke */ = { + isa = PBXNativeTarget; + buildConfigurationList = B7033C3F5480C9769E718E1F13B2716B /* Build configuration list for PBXNativeTarget "Nuke" */; + buildPhases = ( + 65D299017BD89093B64A6AF1DF738157 /* Headers */, + 876A7D7DB025A5564DA9E3E075AF114A /* Sources */, + ABDA17563D8ADDC2F0C97AEEC1190FF4 /* Frameworks */, + B59C37B929FF009500F79859910E42D5 /* Resources */, ); buildRules = ( ); @@ -332,7 +454,45 @@ ); name = Nuke; productName = Nuke; - productReference = 6AB6967B2AEBE949A35F74CD4CC72B2B /* Nuke.framework */; + productReference = 24E0B05007F4DBEAB7A4AB71077CBAD8 /* Nuke.framework */; + productType = "com.apple.product-type.framework"; + }; + ADDE9B18CB22BDBFE81CDA0BD4FDA590 /* Pods-AltStore */ = { + isa = PBXNativeTarget; + buildConfigurationList = B8810C5C21F2ADE6A3B505A9C49E78A6 /* Build configuration list for PBXNativeTarget "Pods-AltStore" */; + buildPhases = ( + CA8BA33762FB1F287ACE7B5F5361361E /* Headers */, + 3A900BB464741FA7A6022FAAD89DF071 /* Sources */, + DF4A1E02828950F7A135CEFD372F8141 /* Frameworks */, + 468C740CFE588F51DAD34AF0BA3320F8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 449A8AC2DD1D7034AC060D2E9EAB443C /* PBXTargetDependency */, + 701929F2CB443A5BF858E1C515F0F81A /* PBXTargetDependency */, + ); + name = "Pods-AltStore"; + productName = "Pods-AltStore"; + productReference = 65B321319586C748AF1C855726B038FF /* Pods_AltStore.framework */; + productType = "com.apple.product-type.framework"; + }; + DF5F2EB2C6CB11FD907D712C4CE4753E /* STPrivilegedTask */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7D7BEE69C536855072A71BAC235E6DA1 /* Build configuration list for PBXNativeTarget "STPrivilegedTask" */; + buildPhases = ( + 9F09707CA8FEC9C9CA3D3FB54498E2B1 /* Headers */, + 4D973BE7AEB944D0BDF59CD39E1E5EDF /* Sources */, + A149A7E612695478C38AD26433C59758 /* Frameworks */, + 6D731466F3E1C278227537765EAAE4DA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = STPrivilegedTask; + productName = STPrivilegedTask; + productReference = 8EFA668870D2823F4986D104135AAF75 /* STPrivilegedTask.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -352,33 +512,49 @@ en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 21AFD5ACB5E55904BC69293508B530A1 /* Products */; + productRefGroup = F6511C25707DC2C24FD046FB7D4900C8 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 743DE9690D42CC3F72C67102B7359738 /* KeychainAccess */, - A1A0FE2A9E90F5B42D68DD55E0C304C7 /* Nuke */, - 2DB6F1AF8C5EF6674B24A1A79C312CC2 /* Pods-AltStore */, + 3F895CBA524B654D3F837F25BFBE2262 /* KeychainAccess */, + A6293B46682B3506C97B73C333967DDB /* Nuke */, + 9FF56DA41C8D40ADF80074E967B9BCD3 /* Pods-AltServer */, + ADDE9B18CB22BDBFE81CDA0BD4FDA590 /* Pods-AltStore */, + DF5F2EB2C6CB11FD907D712C4CE4753E /* STPrivilegedTask */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - B720DE672B1A4B91CFFD8D83B72D81D1 /* Resources */ = { + 153594991ADE9BDDE5FB6C2FDB474216 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - CCD6A26BEA073910291BBC1196DCD922 /* Resources */ = { + 468C740CFE588F51DAD34AF0BA3320F8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - E9E4F9C2F7538965A493A2CFD847A2C0 /* Resources */ = { + 6D731466F3E1C278227537765EAAE4DA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723DD743AC935FC2C55D3947B29ACC3A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B59C37B929FF009500F79859910E42D5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -388,100 +564,86 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 0871C06E1324EB138833F5102E0B27E0 /* Sources */ = { + 3A900BB464741FA7A6022FAAD89DF071 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 90EAF8A14078A1192F29D3372E3D4C98 /* Keychain.swift in Sources */, - EB0B5E2792DFA319A10E1093D125B2CD /* KeychainAccess-dummy.m in Sources */, + 57E7588C7E69A7D306360A22C9D6FF5E /* Pods-AltStore-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6D54C1BE5B08200A65C0A9BD24067D29 /* Sources */ = { + 4D973BE7AEB944D0BDF59CD39E1E5EDF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FA30DD6859CA3CDB8F5A94F22D0A2AEA /* Pods-AltStore-dummy.m in Sources */, + 1C76D68F93326986512254FD62BADC96 /* STPrivilegedTask-dummy.m in Sources */, + 7B3FEE69FB3BB60E1E56611DA122C203 /* STPrivilegedTask.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A2CF0DE37F4BBE8E8FFC2F36F4F6F709 /* Sources */ = { + 5AF1675D8E574F0B2245A2D1CA0AFCFB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FC8838FEFFD890A1347EAC958C263A39 /* DataCache.swift in Sources */, - 67A97FF007F0DB034E9153DCC408C0A8 /* DataLoader.swift in Sources */, - 5FDA40753A64D56E734E3A10F98BF16F /* ImageCache.swift in Sources */, - 3D426F510FB3AD2E11C049F32BD72674 /* ImageDecoding.swift in Sources */, - 552ECDC3881263B7B31F05F8DED17B87 /* ImagePipeline.swift in Sources */, - A82DF7004D25FBC1F0CC884A5FFA2448 /* ImagePreheater.swift in Sources */, - E2EBC05CCE1809F4D2DD7919DD1D3FA3 /* ImageProcessing.swift in Sources */, - B13C1F9B80AC7FC91B582F153504BB0C /* ImageRequest.swift in Sources */, - 37B5F51CB3FBCC86DD87D89E488F65E7 /* ImageTaskMetrics.swift in Sources */, - 2BDA3925B88A286ADD939151942CE66B /* ImageView.swift in Sources */, - 28D13F190EB5775B84610175B00949EA /* Internal.swift in Sources */, - 69F858108A29BF9E1E10E874F98E1ECB /* Nuke-dummy.m in Sources */, + 850767D3E05032D2CF0E8972AFA2BB81 /* Pods-AltServer-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 876A7D7DB025A5564DA9E3E075AF114A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D1AF4602637FA0CCD336D08A60CA142D /* DataCache.swift in Sources */, + 0A18CFC96BA1E3D7DF11145FABF1E64E /* DataLoader.swift in Sources */, + 5D68B76EC70C7CD88977C7BBA5C47B1A /* ImageCache.swift in Sources */, + CF920935C6D30430A43066B25CC006B1 /* ImageDecoding.swift in Sources */, + C19654E5869F26968FE04867EBE0AA93 /* ImagePipeline.swift in Sources */, + FA2127BC3DA61718740A7405E7BBE85E /* ImagePreheater.swift in Sources */, + 96F79411300DB3B1280948E2B165AA03 /* ImageProcessing.swift in Sources */, + 9B3853F97F020FD13063BBA1688D52FE /* ImageRequest.swift in Sources */, + 879AADFC0E22BDB7716910D0A3369C77 /* ImageTaskMetrics.swift in Sources */, + 87A66BE797FE126185C9FEB113AD1AAE /* ImageView.swift in Sources */, + 4BC2A440F56B2681B7CE91EE8EBFC894 /* Internal.swift in Sources */, + 8D6722BD6426F3E66CBD894A443832CD /* Nuke-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BED7319EC5283C148574010E5AB999C0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 84799F206FB756858DA1341F7AEC702F /* Keychain.swift in Sources */, + 5A8E10AA29B392DAE441976836D393A5 /* KeychainAccess-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - DAD3F07DA1E890F783206250078BEFC1 /* PBXTargetDependency */ = { + 38196C023C5938F767B10363EB20B520 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = STPrivilegedTask; + target = DF5F2EB2C6CB11FD907D712C4CE4753E /* STPrivilegedTask */; + targetProxy = EFBE2C59B8488171E755174CED4C9912 /* PBXContainerItemProxy */; + }; + 449A8AC2DD1D7034AC060D2E9EAB443C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = KeychainAccess; - target = 743DE9690D42CC3F72C67102B7359738 /* KeychainAccess */; - targetProxy = CFD447BAF8DC06711C8BC4811B91984F /* PBXContainerItemProxy */; + target = 3F895CBA524B654D3F837F25BFBE2262 /* KeychainAccess */; + targetProxy = 3895BFEFA1F8BAB69DF11C154E9DA338 /* PBXContainerItemProxy */; }; - E1EAE61BBAB8A420A80568158A84881E /* PBXTargetDependency */ = { + 701929F2CB443A5BF858E1C515F0F81A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Nuke; - target = A1A0FE2A9E90F5B42D68DD55E0C304C7 /* Nuke */; - targetProxy = AD39C269955D15DECE2E26D76D8F960F /* PBXContainerItemProxy */; + target = A6293B46682B3506C97B73C333967DDB /* Nuke */; + targetProxy = C08AA1ABDB4BA9BB2BE4BBD9106AA301 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 17C5A620120A40C556EF537345DEE22F /* Release */ = { + 1780628C629B6316E332253A3502E00D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 38D1B55A07DBA5790862EE8B2E01C5D1 /* Nuke.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Nuke/Nuke-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Nuke/Nuke-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/Nuke/Nuke.modulemap"; - PRODUCT_MODULE_NAME = Nuke; - PRODUCT_NAME = Nuke; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 3C9B009E6A03050A17C19EB237E7ADEC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 38D1B55A07DBA5790862EE8B2E01C5D1 /* Nuke.xcconfig */; + baseConfigurationReference = C2BCD16A1413425A64DBA83409F90378 /* Nuke.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -515,7 +677,83 @@ }; name = Debug; }; - 4093433A309EFE160336AC736594AB22 /* Debug */ = { + 1B71FE595B51621B61D824F01E93ED79 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F5D685C053BD0F777E1F9F7CD97DAB57 /* STPrivilegedTask.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_PREFIX_HEADER = "Target Support Files/STPrivilegedTask/STPrivilegedTask-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/STPrivilegedTask/STPrivilegedTask-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + MODULEMAP_FILE = "Target Support Files/STPrivilegedTask/STPrivilegedTask.modulemap"; + PRODUCT_MODULE_NAME = STPrivilegedTask; + PRODUCT_NAME = STPrivilegedTask; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 47D7F07526A878DBCCA39B0583B8981F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5BC19E4A9B6259D18B1ECF87F12AA725 /* Pods-AltStore.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4DE6215026554D33C154A868A55E5F6B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -567,6 +805,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -579,217 +818,9 @@ }; name = Debug; }; - 461AC5A7A24955E7F2F18C0673330CAE /* Debug-Beta */ = { + 55F18E06825E1BFC1A262F9FC0752F52 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4D6A329382B92AAA01398C8A3C5DD70D /* KeychainAccess.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/KeychainAccess/KeychainAccess-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/KeychainAccess/KeychainAccess-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/KeychainAccess/KeychainAccess.modulemap"; - PRODUCT_MODULE_NAME = KeychainAccess; - PRODUCT_NAME = KeychainAccess; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = "Debug-Beta"; - }; - 49D93B24FAFE2420E5CC359C0621532F /* Release-Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 38D1B55A07DBA5790862EE8B2E01C5D1 /* Nuke.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/Nuke/Nuke-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Nuke/Nuke-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/Nuke/Nuke.modulemap"; - PRODUCT_MODULE_NAME = Nuke; - PRODUCT_NAME = Nuke; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = "Release-Beta"; - }; - 5231E8CF05EAA05D2E741D21DE48D433 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8F99797505FBF73DE7E56D58C952F826 /* Pods-AltStore.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 5AE8AFC967162AFCCE2E7F56787CAC41 /* Release-Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE_BETA=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 4.2; - SYMROOT = "${SRCROOT}/../build"; - }; - name = "Release-Beta"; - }; - 5D71271FFC6C9632D2957AC3F2D476C1 /* Debug-Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E3E4DE1BC1956639046E594D42A3F31C /* Pods-AltStore.debug-beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = "Debug-Beta"; - }; - 7142981F5F3261263DCA0EBB7CCBDB74 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4D6A329382B92AAA01398C8A3C5DD70D /* KeychainAccess.xcconfig */; + baseConfigurationReference = BC3F0F6B69D621D81A4CD1E513BDCFD4 /* KeychainAccess.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -822,7 +853,45 @@ }; name = Debug; }; - 924D56B1D59CD3049300EAEEA256114E /* Release */ = { + 7BF0234E860168900FAD73D1DA0FC108 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F5D685C053BD0F777E1F9F7CD97DAB57 /* STPrivilegedTask.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_PREFIX_HEADER = "Target Support Files/STPrivilegedTask/STPrivilegedTask-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/STPrivilegedTask/STPrivilegedTask-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + MODULEMAP_FILE = "Target Support Files/STPrivilegedTask/STPrivilegedTask.modulemap"; + PRODUCT_MODULE_NAME = STPrivilegedTask; + PRODUCT_NAME = STPrivilegedTask; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 897A85B6EC299BEF285A2E02022849E2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -871,6 +940,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -882,223 +952,9 @@ }; name = Release; }; - 93D1EF8B96998BE855DFD68B3EABCFE8 /* Debug-Beta */ = { + 8BBFD9427B78897F530888A4B7654723 /* Release */ = { isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG_BETA=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - SYMROOT = "${SRCROOT}/../build"; - }; - name = "Debug-Beta"; - }; - 983131707A20076A29EF7F270C2CDBAA /* Release-Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 66F63F25A9CD988A2201B85E7E6C0B93 /* Pods-AltStore.release-beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = "Release-Beta"; - }; - B98279700F15A11DA54865A98F16CC66 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5E00599D3500D180E1F2B95D3B2BC02F /* Pods-AltStore.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D7AA5DA88CBF5E3EE78CF63E76EAD359 /* Release-Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4D6A329382B92AAA01398C8A3C5DD70D /* KeychainAccess.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/KeychainAccess/KeychainAccess-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/KeychainAccess/KeychainAccess-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/KeychainAccess/KeychainAccess.modulemap"; - PRODUCT_MODULE_NAME = KeychainAccess; - PRODUCT_NAME = KeychainAccess; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = "Release-Beta"; - }; - DCE44B1147AAE1B6B0B931639BC94858 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4D6A329382B92AAA01398C8A3C5DD70D /* KeychainAccess.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/KeychainAccess/KeychainAccess-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/KeychainAccess/KeychainAccess-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/KeychainAccess/KeychainAccess.modulemap"; - PRODUCT_MODULE_NAME = KeychainAccess; - PRODUCT_NAME = KeychainAccess; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FA4481EC56628A6ABA0937164595DAD1 /* Debug-Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 38D1B55A07DBA5790862EE8B2E01C5D1 /* Nuke.xcconfig */; + baseConfigurationReference = C2BCD16A1413425A64DBA83409F90378 /* Nuke.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; @@ -1127,54 +983,220 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = "Debug-Beta"; + name = Release; + }; + 945AF1CAB299920118B8BFD9D4B80B75 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EAC9C2E47F5E6B97839BDBC1B7CCAED7 /* Pods-AltStore.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-AltStore/Pods-AltStore.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BC334190485B1F4408F03EDF94A692EF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BC3F0F6B69D621D81A4CD1E513BDCFD4 /* KeychainAccess.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/KeychainAccess/KeychainAccess-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/KeychainAccess/KeychainAccess-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/KeychainAccess/KeychainAccess.modulemap"; + PRODUCT_MODULE_NAME = KeychainAccess; + PRODUCT_NAME = KeychainAccess; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BDD031803E5D22043AFFFEE708DA6670 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6D562A7CADE361DD45844AF9EF2478E2 /* Pods-AltServer.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-AltServer/Pods-AltServer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MODULEMAP_FILE = "Target Support Files/Pods-AltServer/Pods-AltServer.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + C4AEFCED97C5702DC42BC6C56F4AE90C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4FD621967366F2DCDCAB78CF61A5ED83 /* Pods-AltServer.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-AltServer/Pods-AltServer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MODULEMAP_FILE = "Target Support Files/Pods-AltServer/Pods-AltServer.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 234E01EB07F8E60EFF0CD01984D0DB09 /* Build configuration list for PBXNativeTarget "KeychainAccess" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7142981F5F3261263DCA0EBB7CCBDB74 /* Debug */, - 461AC5A7A24955E7F2F18C0673330CAE /* Debug-Beta */, - DCE44B1147AAE1B6B0B931639BC94858 /* Release */, - D7AA5DA88CBF5E3EE78CF63E76EAD359 /* Release-Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4093433A309EFE160336AC736594AB22 /* Debug */, - 93D1EF8B96998BE855DFD68B3EABCFE8 /* Debug-Beta */, - 924D56B1D59CD3049300EAEEA256114E /* Release */, - 5AE8AFC967162AFCCE2E7F56787CAC41 /* Release-Beta */, + 4DE6215026554D33C154A868A55E5F6B /* Debug */, + 897A85B6EC299BEF285A2E02022849E2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8EDAE7E1598DBD84B64F6E6498E0F85C /* Build configuration list for PBXNativeTarget "Nuke" */ = { + 503DAD29AD134CA3D7B66DFE0B218E4A /* Build configuration list for PBXNativeTarget "Pods-AltServer" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3C9B009E6A03050A17C19EB237E7ADEC /* Debug */, - FA4481EC56628A6ABA0937164595DAD1 /* Debug-Beta */, - 17C5A620120A40C556EF537345DEE22F /* Release */, - 49D93B24FAFE2420E5CC359C0621532F /* Release-Beta */, + C4AEFCED97C5702DC42BC6C56F4AE90C /* Debug */, + BDD031803E5D22043AFFFEE708DA6670 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AD314FBC3F6506674DFCE7740C865A38 /* Build configuration list for PBXNativeTarget "Pods-AltStore" */ = { + 7D7BEE69C536855072A71BAC235E6DA1 /* Build configuration list for PBXNativeTarget "STPrivilegedTask" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5231E8CF05EAA05D2E741D21DE48D433 /* Debug */, - 5D71271FFC6C9632D2957AC3F2D476C1 /* Debug-Beta */, - B98279700F15A11DA54865A98F16CC66 /* Release */, - 983131707A20076A29EF7F270C2CDBAA /* Release-Beta */, + 1B71FE595B51621B61D824F01E93ED79 /* Debug */, + 7BF0234E860168900FAD73D1DA0FC108 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B7033C3F5480C9769E718E1F13B2716B /* Build configuration list for PBXNativeTarget "Nuke" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1780628C629B6316E332253A3502E00D /* Debug */, + 8BBFD9427B78897F530888A4B7654723 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B8810C5C21F2ADE6A3B505A9C49E78A6 /* Build configuration list for PBXNativeTarget "Pods-AltStore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 47D7F07526A878DBCCA39B0583B8981F /* Debug */, + 945AF1CAB299920118B8BFD9D4B80B75 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DE15D3D37E993FBD358414CD9F51D3B6 /* Build configuration list for PBXNativeTarget "KeychainAccess" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 55F18E06825E1BFC1A262F9FC0752F52 /* Debug */, + BC334190485B1F4408F03EDF94A692EF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/STPrivilegedTask/LICENSE.txt b/Pods/STPrivilegedTask/LICENSE.txt new file mode 100644 index 00000000..5d6d508b --- /dev/null +++ b/Pods/STPrivilegedTask/LICENSE.txt @@ -0,0 +1,22 @@ + # BSD License + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # * Neither the name of Sveinbjorn Thordarson nor that of any other + # contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Pods/STPrivilegedTask/README.md b/Pods/STPrivilegedTask/README.md new file mode 100644 index 00000000..46c7d726 --- /dev/null +++ b/Pods/STPrivilegedTask/README.md @@ -0,0 +1,58 @@ +# STPrivilegedTask - Objective C class + +An NSTask-like wrapper around AuthorizationExecuteWithPrivileges() in the Security API to run shell commands with root privileges in Mac OS X. + +Example of usage: + +```objective-c +STPrivilegedTask *privilegedTask = [[STPrivilegedTask alloc] init]; + +[privilegedTask setLaunchPath:@"/usr/bin/touch"]; +NSArray *args = [NSArray arrayWithObject:@"/etc/my_test_file"]; +[privilegedTask setArguments:args]; +[privilegedTask setCurrentDirectoryPath:[[NSBundle mainBundle] resourcePath]]; + +//set it off +OSStatus err = [privilegedTask launch]; +if (err != errAuthorizationSuccess) { + if (err == errAuthorizationCanceled) { + NSLog(@"User cancelled"); + } else { + NSLog(@"Something went wrong"); + } +} + +// Read output file handle for data +NSFileHandle *readHandle = [privilegedTask outputFileHandle]; +NSData *outputData = [readHandle readDataToEndOfFile]; +NSString *outputString = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding]; + +``` + +# BSD License + +``` + + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # * Neither the name of Sveinbjorn Thordarson nor that of any other + # contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +``` \ No newline at end of file diff --git a/Pods/STPrivilegedTask/STPrivilegedTask.h b/Pods/STPrivilegedTask/STPrivilegedTask.h new file mode 100644 index 00000000..77932be8 --- /dev/null +++ b/Pods/STPrivilegedTask/STPrivilegedTask.h @@ -0,0 +1,81 @@ +/* + # + # STPrivilegedTask - NSTask-like wrapper around AuthorizationExecuteWithPrivileges + # Copyright (C) 2009-2015 Sveinbjorn Thordarson + # + # BSD License + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # * Neither the name of Sveinbjorn Thordarson nor that of any other + # contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import +#import +#import +#import + +#define STPrivilegedTaskDidTerminateNotification @"STPrivilegedTaskDidTerminateNotification" +//#define TMP_STDERR_TEMPLATE @".authStderr.XXXXXX" + +// Defines error value for when AuthorizationExecuteWithPrivilleges no longer +// exists anyplace. Rather than defining a new enum, we just create a global +// constant +extern const OSStatus errAuthorizationFnNoLongerExists; + +@interface STPrivilegedTask : NSObject +{ + NSArray *arguments; + NSString *cwd; + NSString *launchPath; + BOOL isRunning; + pid_t pid; + int terminationStatus; + NSFileHandle *outputFileHandle; + NSTimer *checkStatusTimer; +} +-(id)initWithLaunchPath:(NSString *)path; +-(id)initWithLaunchPath:(NSString *)path arguments: (NSArray *)args; ++(STPrivilegedTask *)launchedPrivilegedTaskWithLaunchPath:(NSString *)path; ++(STPrivilegedTask *)launchedPrivilegedTaskWithLaunchPath:(NSString *)path arguments:(NSArray *)arguments; +-(NSArray *)arguments; +-(NSString *)currentDirectoryPath; +-(BOOL)isRunning; +-(int)launch; +-(NSString *)launchPath; +-(int)processIdentifier; +-(void)setArguments:(NSArray *)arguments; +-(void)setCurrentDirectoryPath:(NSString *)path; +-(void)setLaunchPath:(NSString *)path; +-(NSFileHandle *)outputFileHandle; +-(void)terminate; // doesn't work +-(int)terminationStatus; +-(void)_checkTaskStatus; +-(void)waitUntilExit; +@end +/*static OSStatus AuthorizationExecuteWithPrivilegesStdErrAndPid ( + AuthorizationRef authorization, + const char *pathToTool, + AuthorizationFlags options, + char * const *arguments, + FILE **communicationsPipe, + FILE **errPipe, + pid_t* processid + );*/ diff --git a/Pods/STPrivilegedTask/STPrivilegedTask.m b/Pods/STPrivilegedTask/STPrivilegedTask.m new file mode 100644 index 00000000..c94c2f02 --- /dev/null +++ b/Pods/STPrivilegedTask/STPrivilegedTask.m @@ -0,0 +1,461 @@ +/* + # + # STPrivilegedTask - NSTask-like wrapper around AuthorizationExecuteWithPrivileges + # Copyright (C) 2009-2015 Sveinbjorn Thordarson + # + # BSD License + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # * Neither the name of Sveinbjorn Thordarson nor that of any other + # contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import "STPrivilegedTask.h" +#import +#import +#import + +/* New error code denoting that AuthorizationExecuteWithPrivileges no longer exists */ +OSStatus const errAuthorizationFnNoLongerExists = -70001; + +@implementation STPrivilegedTask + +- (id)init +{ + if ((self = [super init])) { + launchPath = @""; + cwd = [[NSString alloc] initWithString:[[NSFileManager defaultManager] currentDirectoryPath]]; + arguments = [[NSArray alloc] init]; + isRunning = NO; + outputFileHandle = nil; + } + return self; +} + +-(void)dealloc +{ +#if !__has_feature(objc_arc) + [launchPath release]; + [arguments release]; + [cwd release]; + + if (outputFileHandle != nil) { + [outputFileHandle release]; + } + [super dealloc]; +#endif +} + +-(id)initWithLaunchPath:(NSString *)path arguments:(NSArray *)args +{ + if ((self = [self initWithLaunchPath:path])) { + [self setArguments:args]; + } + return self; +} + +-(id)initWithLaunchPath:(NSString *)path +{ + if ((self = [self init])) { + [self setLaunchPath:path]; + } + return self; +} + +#pragma mark - + ++(STPrivilegedTask *)launchedPrivilegedTaskWithLaunchPath:(NSString *)path arguments:(NSArray *)args +{ + STPrivilegedTask *task = [[STPrivilegedTask alloc] initWithLaunchPath:path arguments:args]; +#if !__has_feature(objc_arc) + [task autorelease]; +#endif + + [task launch]; + [task waitUntilExit]; + return task; +} + ++(STPrivilegedTask *)launchedPrivilegedTaskWithLaunchPath:(NSString *)path +{ + STPrivilegedTask *task = [[STPrivilegedTask alloc] initWithLaunchPath:path]; +#if !__has_feature(objc_arc) + [task autorelease]; +#endif + [task launch]; + [task waitUntilExit]; + return task; +} + +#pragma mark - + +- (NSArray *)arguments +{ + return arguments; +} + +- (NSString *)currentDirectoryPath; +{ + return cwd; +} + +- (BOOL)isRunning +{ + return isRunning; +} + +- (NSString *)launchPath +{ + return launchPath; +} + +- (int)processIdentifier +{ + return pid; +} + +- (int)terminationStatus +{ + return terminationStatus; +} + +- (NSFileHandle *)outputFileHandle; +{ + return outputFileHandle; +} + +#pragma mark - + +-(void)setArguments:(NSArray *)args +{ +#if !__has_feature(objc_arc) + [arguments release]; + [args retain]; +#endif + arguments = args; +} + +-(void)setCurrentDirectoryPath:(NSString *)path +{ +#if !__has_feature(objc_arc) + [cwd release]; + [path retain]; +#endif + cwd = path; +} + +-(void)setLaunchPath:(NSString *)path +{ +#if !__has_feature(objc_arc) + [launchPath release]; + [path retain]; +#endif + launchPath = path; +} + +# pragma mark - + +// return 0 for success +-(int)launch +{ + OSStatus err = noErr; + const char *toolPath = [launchPath fileSystemRepresentation]; + + AuthorizationRef authorizationRef; + AuthorizationItem myItems = {kAuthorizationRightExecute, strlen(toolPath), &toolPath, 0}; + AuthorizationRights myRights = {1, &myItems}; + AuthorizationFlags flags = kAuthorizationFlagDefaults | kAuthorizationFlagInteractionAllowed | kAuthorizationFlagPreAuthorize | kAuthorizationFlagExtendRights; + + NSUInteger numberOfArguments = [arguments count]; + char *args[numberOfArguments + 1]; + FILE *outputFile; + + // Create fn pointer to AuthorizationExecuteWithPrivileges in case it doesn't exist + // in this version of MacOS + static OSStatus (*_AuthExecuteWithPrivsFn)( + AuthorizationRef authorization, const char *pathToTool, AuthorizationFlags options, + char * const *arguments, FILE **communicationsPipe) = NULL; + + // Check to see if we have the correct function in our loaded libraries + if (!_AuthExecuteWithPrivsFn) { + // On 10.7, AuthorizationExecuteWithPrivileges is deprecated. We want + // to still use it since there's no good alternative (without requiring + // code signing). We'll look up the function through dyld and fail if + // it is no longer accessible. If Apple removes the function entirely + // this will fail gracefully. If they keep the function and throw some + // sort of exception, this won't fail gracefully, but that's a risk + // we'll have to take for now. + // Pattern by Andy Kim from Potion Factory LLC + _AuthExecuteWithPrivsFn = dlsym(RTLD_DEFAULT, "AuthorizationExecuteWithPrivileges"); + if (!_AuthExecuteWithPrivsFn) { + // This version of OS X has finally removed this function. Exit with an error. + err = errAuthorizationFnNoLongerExists; + return err; + } + } + + // Use Apple's Authentication Manager APIs to get an Authorization Reference + // These Apple APIs are quite possibly the most horrible of the Mac OS X APIs + + // create authorization reference + err = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &authorizationRef); + if (err != errAuthorizationSuccess) { + return err; + } + + // pre-authorize the privileged operation + err = AuthorizationCopyRights(authorizationRef, &myRights, kAuthorizationEmptyEnvironment, flags, NULL); + if (err != errAuthorizationSuccess) { + return err; + } + + // OK, at this point we have received authorization for the task. + // Let's prepare to launch it + + // first, construct an array of c strings from NSArray w. arguments + for (int i = 0; i < numberOfArguments; i++) { + NSString *argString = arguments[i]; + NSUInteger stringLength = [argString length]; + + args[i] = malloc((stringLength + 1) * sizeof(char)); + snprintf(args[i], stringLength + 1, "%s", [argString fileSystemRepresentation]); + } + args[numberOfArguments] = NULL; + + // change to the current dir specified + char *prevCwd = (char *)getcwd(nil, 0); + chdir([cwd fileSystemRepresentation]); + + //use Authorization Reference to execute script with privileges + err = _AuthExecuteWithPrivsFn(authorizationRef, [launchPath fileSystemRepresentation], kAuthorizationFlagDefaults, args, &outputFile); + + // OK, now we're done executing, let's change back to old dir + chdir(prevCwd); + + // free the malloc'd argument strings + for (int i = 0; i < numberOfArguments; i++) { + free(args[i]); + } + + // free the auth ref + AuthorizationFree(authorizationRef, kAuthorizationFlagDefaults); + + // we return err if execution failed + if (err != errAuthorizationSuccess) { + return err; + } else { + isRunning = YES; + } + + // get file handle for the command output + outputFileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fileno(outputFile) closeOnDealloc:YES]; + pid = fcntl(fileno(outputFile), F_GETOWN, 0); + + // start monitoring task + checkStatusTimer = [NSTimer scheduledTimerWithTimeInterval:0.10 target:self selector:@selector(_checkTaskStatus) userInfo:nil repeats:YES]; + + return err; +} + +- (void)terminate +{ + // This doesn't work without a PID, and we can't get one. Stupid Security API + /* int ret = kill(pid, SIGKILL); + + if (ret != 0) + NSLog(@"Error %d", errno);*/ +} + +// hang until task is done +- (void)waitUntilExit +{ + waitpid([self processIdentifier], &terminationStatus, 0); + isRunning = NO; +} + +#pragma mark - + +// check if privileged task is still running +- (void)_checkTaskStatus +{ + // see if task has terminated + int mypid = waitpid([self processIdentifier], &terminationStatus, WNOHANG); + if (mypid != 0) { + isRunning = NO; + [[NSNotificationCenter defaultCenter] postNotificationName:STPrivilegedTaskDidTerminateNotification object:self]; + [checkStatusTimer invalidate]; + } +} + +#pragma mark - + +- (NSString *)description +{ + NSArray *args = [self arguments]; + NSString *cmd = [[self launchPath] copy]; + + for (int i = 0; i < [args count]; i++) { + cmd = [cmd stringByAppendingFormat:@" %@", args[i]]; + } + + return [[super description] stringByAppendingFormat:@" %@", cmd]; +} + +@end + +/* + * + * Add the Standard err Pipe and Pid support to AuthorizationExecuteWithPrivileges() + * method + * + * @Author: Miklós Fazekas + * Modified Aug 10 2010 by Sveinbjorn Thordarson + * + */ + + +/*static OSStatus AuthorizationExecuteWithPrivilegesStdErrAndPid ( + AuthorizationRef authorization, + const char *pathToTool, + AuthorizationFlags options, + char * const *arguments, + FILE **communicationsPipe, + FILE **errPipe, + pid_t* processid + ) +{ + // get the Apple-approved secure temp directory + NSString *tempFileTemplate = [NSTemporaryDirectory() stringByAppendingPathComponent: TMP_STDERR_TEMPLATE]; + + // copy it into a C string + const char *tempFileTemplateCString = [tempFileTemplate fileSystemRepresentation]; + char *stderrpath = (char *)malloc(strlen(tempFileTemplateCString) + 1); + strcpy(stderrpath, tempFileTemplateCString); + + printf("%s\n", stderrpath); + + // this is the command, it echoes pid and directs stderr output to pipe before running the tool w. args + const char *commandtemplate = "echo $$; \"$@\" 2>%s"; + + if (communicationsPipe == errPipe) + commandtemplate = "echo $$; \"$@\" 2>1"; + else if (errPipe == 0) + commandtemplate = "echo $$; \"$@\""; + + char command[1024]; + char **args; + OSStatus result; + int argcount = 0; + int i; + int stderrfd = 0; + FILE *commPipe = 0; + + // First, create temporary file for stderr + if (errPipe) + { + // create temp file + stderrfd = mkstemp(stderrpath); + + // close and remove it + close(stderrfd); + unlink(stderrpath); + + // create a pipe on the path of the temp file + if (mkfifo(stderrpath,S_IRWXU | S_IRWXG) != 0) + { + fprintf(stderr,"Error mkfifo:%d\n", errno); + return errAuthorizationInternal; + } + + if (stderrfd < 0) + return errAuthorizationInternal; + } + + // Create command to be executed + for (argcount = 0; arguments[argcount] != 0; ++argcount) {} + args = (char**)malloc (sizeof(char*)*(argcount + 5)); + args[0] = "-c"; + snprintf (command, sizeof (command), commandtemplate, stderrpath); + args[1] = command; + args[2] = ""; + args[3] = (char*)pathToTool; + for (i = 0; i < argcount; ++i) { + args[i+4] = arguments[i]; + } + args[argcount+4] = 0; + + // for debugging: log the executed command + printf ("Exec:\n%s", "/bin/sh"); for (i = 0; args[i] != 0; ++i) { printf (" \"%s\"", args[i]); } printf ("\n"); + + // Execute command + result = AuthorizationExecuteWithPrivileges(authorization, "/bin/sh", options, args, &commPipe ); + if (result != noErr) + { + unlink (stderrpath); + return result; + } + + // Read the first line of stdout => it's the pid + { + int stdoutfd = fileno (commPipe); + char pidnum[1024]; + pid_t pid = 0; + int i = 0; + char ch = 0; + + while ((read(stdoutfd, &ch, sizeof(ch)) == 1) && (ch != '\n') && (i < sizeof(pidnum))) + { + pidnum[i++] = ch; + } + pidnum[i] = 0; + + if (ch != '\n') + { + // we shouldn't get there + unlink (stderrpath); + return errAuthorizationInternal; + } + sscanf(pidnum, "%d", &pid); + if (processid) + { + *processid = pid; + } + NSLog(@"Have PID %d", pid); + } + + // + if (errPipe) { + stderrfd = open(stderrpath, O_RDONLY, 0); + // *errPipe = fdopen(stderrfd, "r"); + //Now it's safe to unlink the stderr file, as the opened handle will be still valid + unlink (stderrpath); + } else { + unlink(stderrpath); + } + + if (communicationsPipe) + *communicationsPipe = commPipe; + else + fclose (commPipe); + + NSLog(@"AuthExecNew function over"); + + return noErr; +}*/ diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-Info.plist b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-Info.plist new file mode 100644 index 00000000..2243fe6e --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-acknowledgements.markdown b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-acknowledgements.markdown new file mode 100644 index 00000000..d0fcc690 --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## STPrivilegedTask + + # BSD License + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # * Neither the name of Sveinbjorn Thordarson nor that of any other + # contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-acknowledgements.plist b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-acknowledgements.plist new file mode 100644 index 00000000..5a16c9ec --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-acknowledgements.plist @@ -0,0 +1,61 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + # BSD License + # Redistribution and use in source and binary forms, with or without + # modification, are permitted provided that the following conditions are met: + # * Redistributions of source code must retain the above copyright + # notice, this list of conditions and the following disclaimer. + # * Redistributions in binary form must reproduce the above copyright + # notice, this list of conditions and the following disclaimer in the + # documentation and/or other materials provided with the distribution. + # * Neither the name of Sveinbjorn Thordarson nor that of any other + # contributors may be used to endorse or promote products + # derived from this software without specific prior written permission. + # + # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + # DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + License + BSD + Title + STPrivilegedTask + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-dummy.m b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-dummy.m new file mode 100644 index 00000000..8dd2086f --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_AltServer : NSObject +@end +@implementation PodsDummy_Pods_AltServer +@end diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-frameworks.sh b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-frameworks.sh new file mode 100755 index 00000000..4fae4062 --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-frameworks.sh @@ -0,0 +1,163 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/STPrivilegedTask/STPrivilegedTask.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/STPrivilegedTask/STPrivilegedTask.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-umbrella.h b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-umbrella.h new file mode 100644 index 00000000..bf81095c --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_AltServerVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_AltServerVersionString[]; + diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.debug.xcconfig b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.debug.xcconfig new file mode 100644 index 00000000..819762dd --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.debug.xcconfig @@ -0,0 +1,11 @@ +CODE_SIGN_IDENTITY = +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask/STPrivilegedTask.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask/STPrivilegedTask.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask" +OTHER_LDFLAGS = $(inherited) -framework "STPrivilegedTask" -framework "Security" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.modulemap b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.modulemap new file mode 100644 index 00000000..5e7d63f8 --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.modulemap @@ -0,0 +1,6 @@ +framework module Pods_AltServer { + umbrella header "Pods-AltServer-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.release.xcconfig b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.release.xcconfig new file mode 100644 index 00000000..819762dd --- /dev/null +++ b/Pods/Target Support Files/Pods-AltServer/Pods-AltServer.release.xcconfig @@ -0,0 +1,11 @@ +CODE_SIGN_IDENTITY = +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask/STPrivilegedTask.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask/STPrivilegedTask.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask" +OTHER_LDFLAGS = $(inherited) -framework "STPrivilegedTask" -framework "Security" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-AltStore/Pods-AltStore-frameworks.sh b/Pods/Target Support Files/Pods-AltStore/Pods-AltStore-frameworks.sh index 03857cd2..6d06f83b 100755 --- a/Pods/Target Support Files/Pods-AltStore/Pods-AltStore-frameworks.sh +++ b/Pods/Target Support Files/Pods-AltStore/Pods-AltStore-frameworks.sh @@ -160,14 +160,6 @@ if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/KeychainAccess/KeychainAccess.framework" install_framework "${BUILT_PRODUCTS_DIR}/Nuke/Nuke.framework" fi -if [[ "$CONFIGURATION" == "Debug-Beta" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/KeychainAccess/KeychainAccess.framework" - install_framework "${BUILT_PRODUCTS_DIR}/Nuke/Nuke.framework" -fi -if [[ "$CONFIGURATION" == "Release-Beta" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/KeychainAccess/KeychainAccess.framework" - install_framework "${BUILT_PRODUCTS_DIR}/Nuke/Nuke.framework" -fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait fi diff --git a/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-Info.plist b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-Info.plist new file mode 100644 index 00000000..3c175b60 --- /dev/null +++ b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-dummy.m b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-dummy.m new file mode 100644 index 00000000..f265fd8b --- /dev/null +++ b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_STPrivilegedTask : NSObject +@end +@implementation PodsDummy_STPrivilegedTask +@end diff --git a/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-prefix.pch b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-prefix.pch new file mode 100644 index 00000000..082f8af2 --- /dev/null +++ b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-umbrella.h b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-umbrella.h new file mode 100644 index 00000000..5cd0de60 --- /dev/null +++ b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "STPrivilegedTask.h" + +FOUNDATION_EXPORT double STPrivilegedTaskVersionNumber; +FOUNDATION_EXPORT const unsigned char STPrivilegedTaskVersionString[]; + diff --git a/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask.modulemap b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask.modulemap new file mode 100644 index 00000000..ee88488c --- /dev/null +++ b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask.modulemap @@ -0,0 +1,6 @@ +framework module STPrivilegedTask { + umbrella header "STPrivilegedTask-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask.xcconfig b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask.xcconfig new file mode 100644 index 00000000..896a39c6 --- /dev/null +++ b/Pods/Target Support Files/STPrivilegedTask/STPrivilegedTask.xcconfig @@ -0,0 +1,10 @@ +CODE_SIGN_IDENTITY = +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/STPrivilegedTask +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "Security" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/STPrivilegedTask +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES