diff --git a/Sora/SoraApp.swift b/Sora/SoraApp.swift index 3587eb1..8833a7d 100644 --- a/Sora/SoraApp.swift +++ b/Sora/SoraApp.swift @@ -148,6 +148,16 @@ class AppInfo: NSObject { @objc func getDisplayName() -> String { return Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ?? Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as! String } + + @objc func isValidApp() -> Bool { + let bundleId = getBundleIdentifier().lowercased() + let displayName = getDisplayName().lowercased() + + let hasValidBundleId = bundleId.contains("sulfur") + let hasValidDisplayName = displayName == "sora" || displayName == "sulfur" + + return hasValidBundleId && hasValidDisplayName + } } class AppDelegate: NSObject, UIApplicationDelegate { diff --git a/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift b/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift index 791af6f..6855fb9 100644 --- a/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift +++ b/Sora/Utils/Extensions/JavaScriptCore+Extensions.swift @@ -30,6 +30,7 @@ extension JSContext { Logger.shared.log("JavaScript log: \(message)", type: "Debug") } self.setObject(logFunction, forKeyedSubscript: "log" as NSString) + self.setObject(appInfoBridge, forKeyedSubscript: "AppInfo" as NSString) } func setupNativeFetch() {