mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-14 17:23:25 +01:00
[AltServer] Fixes installing AltPlugin after uninstalling it
Bundle(url:) is cached, so even if AltPlugin is deleted Bundle(url:) will still return a non-nil value. Instead, we now directly check whether a directory exists at pluginURL to determine if AltPlugin is installed.
This commit is contained in:
@@ -66,10 +66,11 @@ class PluginManager
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
// If Mail plug-in is not yet installed, then there is no update available.
|
// If Mail plug-in is not yet installed, then there is no update available.
|
||||||
guard let bundle = Bundle(url: pluginURL) else { return completionHandler(.success(false)) }
|
var isDirectory: ObjCBool = false
|
||||||
|
guard FileManager.default.fileExists(atPath: pluginURL.path, isDirectory: &isDirectory), isDirectory.boolValue else { return completionHandler(.success(false)) }
|
||||||
|
|
||||||
// Load Info.plist from disk because Bundle.infoDictionary is cached by system.
|
// Load Info.plist from disk because Bundle.infoDictionary is cached by system.
|
||||||
let infoDictionaryURL = bundle.bundleURL.appendingPathComponent("Contents/Info.plist")
|
let infoDictionaryURL = pluginURL.appendingPathComponent("Contents/Info.plist")
|
||||||
guard let infoDictionary = NSDictionary(contentsOf: infoDictionaryURL) as? [String: Any],
|
guard let infoDictionary = NSDictionary(contentsOf: infoDictionaryURL) as? [String: Any],
|
||||||
let localVersion = infoDictionary["CFBundleShortVersionString"] as? String
|
let localVersion = infoDictionary["CFBundleShortVersionString"] as? String
|
||||||
else { throw CocoaError(.fileReadCorruptFile, userInfo: [NSURLErrorKey: infoDictionaryURL]) }
|
else { throw CocoaError(.fileReadCorruptFile, userInfo: [NSURLErrorKey: infoDictionaryURL]) }
|
||||||
|
|||||||
Reference in New Issue
Block a user