From d292edffd1264918e6a83d3d2a0fb8cfde80e3ca Mon Sep 17 00:00:00 2001 From: ny Date: Tue, 12 May 2026 00:41:16 -0400 Subject: [PATCH] fix: Sharing ipa files to SideStore --- AltStore/SceneDelegate.swift | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/AltStore/SceneDelegate.swift b/AltStore/SceneDelegate.swift index 27b3e8c1..e2f76619 100644 --- a/AltStore/SceneDelegate.swift +++ b/AltStore/SceneDelegate.swift @@ -87,9 +87,22 @@ private extension SceneDelegate if context.url.isFileURL { guard context.url.pathExtension.lowercased() == "ipa" else { return } + if !context.url.startAccessingSecurityScopedResource() { return } + defer { context.url.stopAccessingSecurityScopedResource() } + + let temporaryDirectory = FileManager.default.uniqueTemporaryURL() + do { + try FileManager.default.createDirectory(at: temporaryDirectory, withIntermediateDirectories: true, attributes: nil) } + catch { return } + + let ipa = temporaryDirectory.appendingPathComponent(context.url.lastPathComponent) + + do { + try FileManager.default.copyItem(at: context.url, to: ipa) + } catch { return } DispatchQueue.main.async { - NotificationCenter.default.post(name: AppDelegate.importAppDeepLinkNotification, object: nil, userInfo: [AppDelegate.importAppDeepLinkURLKey: context.url]) + NotificationCenter.default.post(name: AppDelegate.importAppDeepLinkNotification, object: nil, userInfo: [AppDelegate.importAppDeepLinkURLKey: ipa]) } } else