@@ -329,8 +329,43 @@ class InjectConfiguration: ObservableObject {
329
329
guard let conf = remoteConf else {
330
330
return false
331
331
}
332
- let package = conf. appList. first { $0. packageName. allStrings. contains ( package ) }
333
- guard package != nil else {
332
+ let packageDetail = conf. appList. first { $0. packageName. allStrings. contains ( package ) }
333
+ guard packageDetail != nil else {
334
+ // 这种情况适用于软件存在,但是 Bundle ID 改变了,而导致无法注入
335
+ // 这部分纯纯的为了兼容好目前的 config.json
336
+ // FIXME: 未来会移除,因为这种情况不应该存在. 应该在 packageName 中使用数组来支持多个 Bundle ID,而不是单个字符串
337
+ let localPackageInfo = softwareManager. appListCache [ package ]
338
+ if localPackageInfo != nil {
339
+ let app = conf. appList. first { $0. appBaseLocate == localPackageInfo? . path. replacingOccurrences ( of: " /Contents " , with: " " ) }
340
+ if app != nil {
341
+ print ( " [*] Found \( package ) in local cache, try to add to supported list... " )
342
+ let newApp = AppList (
343
+ packageName: . string( package ) ,
344
+ appBaseLocate: app? . appBaseLocate,
345
+ bridgeFile: app? . bridgeFile,
346
+ injectFile: app? . injectFile,
347
+ needCopyToAppDir: app? . needCopyToAppDir,
348
+ noSignTarget: app? . noSignTarget,
349
+ autoHandleHelper: app? . autoHandleHelper,
350
+ helperFile: app? . helperFile,
351
+ tccutil: app? . tccutil,
352
+ forQiuChenly: app? . forQiuChenly,
353
+ onlysh: app? . onlysh,
354
+ extraShell: app? . extraShell,
355
+ smExtra: app? . smExtra,
356
+ componentApp: app? . componentApp,
357
+ deepSignApp: app? . deepSignApp,
358
+ noDeep: app? . noDeep,
359
+ entitlements: app? . entitlements,
360
+ useOptool: app? . useOptool,
361
+ autoHandleSetapp: app? . autoHandleSetapp,
362
+ keygen: app? . keygen
363
+ )
364
+ remoteConf!. appList. append ( newApp)
365
+ print ( " [*] Added \( package ) to supported list. " )
366
+ return true
367
+ }
368
+ }
334
369
return false
335
370
}
336
371
return true
@@ -354,7 +389,7 @@ struct InjectConfigurationModel: Codable, Equatable {
354
389
let project , author : String
355
390
let version : Double
356
391
let basePublicConfig : BasePublicConfig
357
- let appList : [ AppList ]
392
+ var appList : [ AppList ]
358
393
359
394
enum CodingKeys : String , CodingKey {
360
395
case project
0 commit comments