mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-10 23:33:29 +01:00
Preserve device specific keys in Info.plist
Apple's Info.plist support platform and device specific keys to augment existing keys. For example `UISupportedInterfaceOrientations~ipad` replaces `UISupportedInterfaceOrientations` when running on an iPad. By using Bundle.infoDictionary, Apple will pre-process the Info.plist and replace any key with its device specific variant. Since AltStore does not support iPad, this will strip out any iPad specific keys for the installing app. We add an extension Bundle.completeInfoDictionary that will return the original de-serialized dictionary including all the device specific keys. See: https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9
This commit is contained in:
@@ -181,7 +181,7 @@ private extension DatabaseManager
|
||||
|
||||
let infoPlistURL = temporaryFileURL.appendingPathComponent("Info.plist")
|
||||
|
||||
guard var infoDictionary = Bundle.main.infoDictionary else { throw ALTError(.missingInfoPlist) }
|
||||
guard var infoDictionary = Bundle.main.completeInfoDictionary else { throw ALTError(.missingInfoPlist) }
|
||||
infoDictionary[kCFBundleIdentifierKey as String] = StoreApp.altstoreAppID
|
||||
try (infoDictionary as NSDictionary).write(to: infoPlistURL)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user