Browse Source

Merge branch 'develop_PDFReaderPro_V4.7.0' of git.kdan.cc:Mac_PDF/PDF_Office into develop_PDFReaderPro_V4.7.0

tangchao 3 months ago
parent
commit
5655f36309

+ 1 - 1
PDF Office/PDF Master/Class/AIInfo/AIPurchaseWindowController/AIPurchaseWindowController.swift

@@ -61,7 +61,7 @@ class AIPurchaseWindowController: NSWindowController, NSWindowDelegate {
         
         self.titleLabel.stringValue = NSLocalizedString("Purchase AI Tools", comment: "")
         self.subTitleLabel.stringValue = NSLocalizedString("Level up your PDF workflow with AI assistant. Unlock advanced features like AI Summarize, AI Translate, AI Rewrite, AI Proofread. ", comment: "")
-        self.priceDesLabel.stringValue = NSLocalizedString("Purchase for 50 credits within 30 days", comment: "")
+        self.priceDesLabel.stringValue = NSLocalizedString("Auto-renewal | 50 credits/month | Cancel anytime", comment: "")
         self.restoreButton.title = NSLocalizedString("Restore", comment: "")
         self.privacyButton.title = NSLocalizedString("Privacy Policy", comment: "")
         self.termOfButton.title = NSLocalizedString("Terms of Service", comment: "")

+ 23 - 21
PDF Office/PDF Master/MemberCenter/Model/KMMemberInfo.swift

@@ -464,11 +464,10 @@ import Cocoa
                             if KMMemberInfo.shared.vip_levels == "3" {
                                 return .dmg_type38
                             }
-                        } else if KMMemberInfo.shared.vip_status == 4 { // 试用过期
-                            // 全平台高级版年订阅
-                            if KMMemberInfo.shared.vip_levels == "3" {
-                                return .dmg_type37
-                            }
+                        } else if KMMemberInfo.shared.canTrail == false &&
+                                    KMMemberInfo.shared.vip_levels == "1" &&
+                                    KMMemberInfo.shared.vip_status != 2 { // 试用过期
+                            return .dmg_type37
                         }
                     } else { // 有标准版License、无转档License 19 - 33
                         if KMMemberInfo.shared.canTrail && KMMemberInfo.shared.vip_levels == "1" { // 免费
@@ -532,11 +531,10 @@ import Cocoa
                             if KMMemberInfo.shared.vip_levels == "3" {
                                 return .dmg_type23
                             }
-                        } else if KMMemberInfo.shared.vip_status == 4 { // 试用过期
-                            // 全平台高级版年订阅
-                            if KMMemberInfo.shared.vip_levels == "3" {
-                                return .dmg_type22
-                            }
+                        } else if KMMemberInfo.shared.canTrail == false &&
+                                    KMMemberInfo.shared.vip_levels == "1" &&
+                                    KMMemberInfo.shared.vip_status != 2 { // 试用过期
+                            return .dmg_type22
                         }
                     }
                 } else { // 未绑定License 4 - 18
@@ -601,11 +599,10 @@ import Cocoa
                         if KMMemberInfo.shared.vip_levels == "3" {
                             return .dmg_type10  
                         }
-                    } else if KMMemberInfo.shared.vip_status == 4 { // 试用过期
-                        // 全平台高级版年订阅
-                        if KMMemberInfo.shared.vip_levels == "3" {
-                            return .dmg_type11
-                        }
+                    } else if KMMemberInfo.shared.canTrail == false &&
+                                KMMemberInfo.shared.vip_levels == "1" &&
+                                KMMemberInfo.shared.vip_status != 2 { // 试用过期
+                        return .dmg_type11
                     }
                 }
             } else {
@@ -650,6 +647,11 @@ import Cocoa
                 if KMMemberInfo.shared.canTrail && KMMemberInfo.shared.vip_levels == "1" {
                     return .lite_type1
                 }
+                
+                if(KMMemberInfo.shared.canTrail == false && KMMemberInfo.shared.vip_levels == "1" && KMMemberInfo.shared.vip_status != 2) { //试用过期
+                    return .lite_type3
+                }
+                
                 if KMMemberInfo.shared.vip_status == 3 {
                     return .lite_type2
                 } else if KMMemberInfo.shared.vip_status == 4 {
@@ -659,7 +661,7 @@ import Cocoa
                 } else if KMMemberInfo.shared.vip_paymentModel == "1" && KMMemberInfo.shared.vip_payType == 0 && KMMemberInfo.shared.vip_status == 1 {
                     return .lite_type8
                 }
-                if KMMemberInfo.shared.vip_paymentModel == "2" {
+                if KMMemberInfo.shared.vip_paymentModel == "2" && KMMemberInfo.shared.vip_status == 1  { //永久买断
                     return .lite_type5
                 } else {
                     if KMMemberInfo.shared.vip_cycle == 4 && platformsArray.count == 4 {
@@ -791,7 +793,7 @@ import Cocoa
                     } else if userScenarioType == .lite_type5 ||
                         userScenarioType == .lite_type4  ||
                                 userScenarioType == .lite_type8 {
-                        if(platformsArray.contains("mac")) { //购买了
+                        if(platformsArray.contains("mac") && KMMemberInfo.shared.vip_levels == "3") { //购买了
                             return true
                         }
                     } else if userScenarioType == .lite_type6 || userScenarioType == .lite_type12 {
@@ -995,8 +997,8 @@ import Cocoa
                 KMMemberInfo.shared.vip_levels != "3" {
                 let alert = NSAlert()
                 alert.alertStyle = .critical
-                alert.informativeText = NSLocalizedString("Contact Us", comment: "")
-                alert.addButton(withTitle: NSLocalizedString("OK", comment: ""))
+                alert.informativeText = NSLocalizedString("Sorry, you do not have the rights to this paid feature and cannot use it. If you have any questions, please contact customer service at support@pdfreaderpro.com", comment: "")
+                alert.addButton(withTitle: NSLocalizedString("Got it", comment: ""))
                 alert.runModal()
             }
         }
@@ -1049,8 +1051,8 @@ import Cocoa
                 KMMemberInfo.shared.vip_levels != "3" {
                 let alert = NSAlert()
                 alert.alertStyle = .critical
-                alert.informativeText = NSLocalizedString("Contact Us", comment: "")
-                alert.addButton(withTitle: NSLocalizedString("OK", comment: ""))
+                alert.informativeText = NSLocalizedString("Sorry, you do not have the rights to this paid feature and cannot use it. If you have any questions, please contact customer service at support@pdfreaderpro.com", comment: "")
+                alert.addButton(withTitle: NSLocalizedString("Got it", comment: ""))
                 alert.runModal()
             }
         }

+ 0 - 1
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.swift

@@ -123,7 +123,6 @@ class KMUserInfoViewController: NSViewController {
             callback?(success,resDic)
             if success {
                 KMMemberInfo.shared.isLogin = true
-                NotificationCenter.default.post(name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil)
             } else {
                 KMMemberInfo.shared.isLogin = false
             }

+ 74 - 16
PDF Office/PDF Master/MemberCenter/ViewModel/KMProductModel.swift

@@ -165,6 +165,56 @@ class KMProductModel: ObservableObject {
         
     }
     
+    
+    /**
+     @abstract 获取DMG产品价格(美元)
+     */
+    func getDMGPrice(productCode: String) -> String {
+        guard let productModels = dmgProductDatas?.listingProducts else { return "" }
+        for model in productModels {
+            if model.code == "productCode" {
+                return model.price.stringValue
+            }
+        }
+        return ""
+    }
+    /**
+     @abstract 获取DMG产品价格(人民币)
+     */
+    func getDMGCNYPrice(productCode: String) -> String {
+        guard let productModels = dmgProductDatas?.listingProducts else { return "" }
+        for model in productModels {
+            if model.code == "productCode" {
+                return model.cnyPrice.stringValue
+            }
+        }
+        return ""
+    }
+    /**
+     @abstract 获取DMG产品折扣价格(美元)
+     */
+    func getDMGDisplayPrice(productCode: String) -> String {
+        guard let productModels = dmgProductDatas?.listingProducts else { return "" }
+        for model in productModels {
+            if model.code == "productCode" {
+                return model.displayPrice.stringValue
+            }
+        }
+        return ""
+    }
+    /**
+     @abstract 获取DMG产品折扣价格(人民币)
+     */
+    func getDMGDisplayCNYPrice(productCode: String) -> String {
+        guard let productModels = dmgProductDatas?.listingProducts else { return "" }
+        for model in productModels {
+            if model.code == "productCode" {
+                return model.displayCnyPrice.stringValue
+            }
+        }
+        return ""
+    }
+    
     /**
      @abstract 获取登录用户价格(建立订单时需要用到)
      @param productId 购买的产品id
@@ -460,38 +510,46 @@ class KMProductModel: ObservableObject {
                 return IAPProductsManager.default().advancedAdd2DevicesAllAccessPack12months_pro.price()
             }
         } else if type == .pdfReaderProStandard_dmg {
-            return "79.99"
+            return getDMGPrice(productCode: "PDF Reader Pro Standard - Annual Plan")
         } else if type == .pdfReaderProAdvanced_dmg {
-            return "99.99"
+            return getDMGPrice(productCode: "PDF Reader Pro Advanced - Annual Plan")
         } else if type == .pdfReaderProPermanent_dmg {
-            return "119.99"
+            return getDMGPrice(productCode: "PDF Reader Pro Permanent")
         } else if type == .pdfReaderProAIAnnual_dmg {
-            return "125.99"
+            return getDMGPrice(productCode: "PDF Reader Pro AI - Annual Plan")
         } else if type == .pdfReaderProAIMonthly_dmg {
-            return "14.99"
+            return getDMGPrice(productCode: "PDF Reader Pro AI - Monthly Plan")
         } else if type == .pdfToOffice_dmg {
-            return "29.99"
+            return getDMGPrice(productCode: "PDF to Office")
         } else if type == .add2Device_dmg {
-            return "39.99"
+            return getDMGPrice(productCode: "Add 2-Device · Advanced Annual")
         } else if type == .add3Device_dmg {
-            return "49.99"
+            return getDMGPrice(productCode: "Add 3-Device · Advanced Annual")
         }
         return ""
     }
     
     func appstorePurchaseAction(_ tag: Int, _ complete: @escaping AppstorePurchaseComplete) -> Void {
         if state == .dmg_Base {
-            if tag == 0 {
-                
+            var code = ""
+            if tag == 1 {
+                code = "PDF Reader Pro Standard - Annual Plan"
             } else if tag == 3 {
-                
+                code = "PDF Reader Pro Permanent"
             } else {
-                
+                code = "PDF Reader Pro Advanced - Annual Plan"
             }
+            let embeddedWC = KMPurchaseEmbeddedWindowController.currentCode(code)
+            embeddedWC.showWindow(nil)
+            embeddedWC.window?.center()
         } else if state == .dmg_Upgrades1 {
-            
+            let embeddedWC = KMPurchaseEmbeddedWindowController.currentCode("Add 2-Device · Advanced Annual")
+            embeddedWC.showWindow(nil)
+            embeddedWC.window?.center()
         } else if state == .dmg_Upgrades2 {
-            
+            let embeddedWC = KMPurchaseEmbeddedWindowController.currentCode("Add 3-Device · Advanced Annual")
+            embeddedWC.showWindow(nil)
+            embeddedWC.window?.center()
         } else if state == .lite_Base {
             if tag == 0 {
                 if isPurchaseSwitch { membershipPurchase(.fourDevicesAllAccessPackNew12months_lite) }
@@ -792,7 +850,7 @@ class KMProductModel: ObservableObject {
             return [
                 "Benefit",
                 ["Supported platforms",                                                 "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows", "mac"],
-                ["Maximum number of accessible devices",                                "2 devices",                    "4 devices",                    "4 devices",                    "2 devices",    "1 devices"],
+                ["Maximum number of accessible devices",                                "4 devices",                    "4 devices",                    "4 devices",                    "2 devices",    "1 devices"],
                 "PDF to Office",
                 ["Convert PDFs to Word, HTML, TXT, JPEG or PNG files",                  "Only first 10 pages",          "Standard",                     "Advanced",                     "Advanced",     "Advanced"],
                 ["Turn PDF to PPT, Excel, RTF, CSV, and more",                          "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
@@ -844,7 +902,7 @@ class KMProductModel: ObservableObject {
             return [
                 "Benefit",
                 ["Supported platforms",                                                 "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows", "mac"],
-                ["Maximum number of accessible devices",                                "2 devices",                    "4 devices",                    "4 devices",                    "2 devices",    "1 devices"],
+                ["Maximum number of accessible devices",                                "4 devices",                    "4 devices",                    "4 devices",                    "2 devices",    "1 devices"],
                 "PDF to Office",
                 ["Convert PDFs to Word, HTML, TXT, JPEG or PNG files",                  "Only first 10 pages",          "Standard",                     "Advanced",                     "Advanced",     "Advanced"],
                 ["Turn PDF to PPT, Excel, RTF, CSV, and more",                          "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],

+ 0 - 29
PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.swift

@@ -1061,39 +1061,10 @@ class KMProductCompareWC: NSWindowController {
     }
     
     @IBAction func appstorePurchaseAction(_ sender: NSButton) {
-#if VERSION_DMG
-        let model = KMProductModel.shared
-        
-        var product : KMListingProductsModel?
-        let productsWithMember : [KMListingProductsModel] = model.dmgLastGetProductPriceInfos?.listingProducts ?? []
-        let products : [KMListingProductsModel] = model.dmgProductDatas?.listingProducts ?? []
-        if KMMemberInfo.shared.isLogin {
-            if productsWithMember.count > 0{
-                product = productsWithMember.first
-            } else {
-                if products.count > 0{
-                    product = products[3]
-                } else {
-                    product = KMListingProductsModel()
-                }
-            }
-        } else {
-            if products.count > 0{
-                product = products.first
-            } else {
-                product = KMListingProductsModel()
-            }
-        }
-        
-        let embeddedWC = KMPurchaseEmbeddedWindowController.currentCode(product?.code ?? "")
-        embeddedWC.showWindow(nil)
-        embeddedWC.window?.center()
-#else
         model.appstorePurchaseAction(sender.tag) { [weak self] success, msg in
             guard let self = self else { return }
 
         }
-#endif
     }
     
     // MARK: - InAppPurchaseManager Notification

+ 3 - 1
PDF Office/PDF Master/Strings/en.lproj/Localizable.strings

@@ -4235,6 +4235,7 @@
 "Are you a student or a professor? %@ / Want a volume purchase? Please %@." = "Are you a student or a professor? %@ / Want a volume purchase? Please %@.";
 "Get Special Offer" = "Get Special Offer";
 "Contact Us" = "Contact Us";
+"Sorry, you do not have the rights to this paid feature and cannot use it. If you have any questions, please contact customer service at support@pdfreaderpro.com" = "Sorry, you do not have the rights to this paid feature and cannot use it. If you have any questions, please contact customer service at support@pdfreaderpro.com";
 
 "Add or remove marked" = "Add or remove marked";
 "--> If you haven't accessed your benefits after purchasing, please restart the APP." = "--> If you haven't accessed your benefits after purchasing, please restart the APP.";
@@ -4272,6 +4273,7 @@
 "Maximum number of accessible devices" = "Maximum number of accessible devices";
 
 "2 devices" = "2 devices";
-"4 devices" = "2 devices";
+"4 devices" = "4 devices";
 
 "Password cannot exceed 30 characters." = "Password cannot exceed 30 characters.";
+"Auto-renewal | 50 credits/month | Cancel anytime" = "Auto-renewal | 50 credits/month | Cancel anytime";

+ 2 - 1
PDF Office/PDF Master/Strings/zh-Hans.lproj/Localizable.strings

@@ -1755,7 +1755,7 @@
 "Feed back"= "意见回馈";
 "Contact us" = "联系我们";
 "Contact Us" = "联系我们";
-
+"Sorry, you do not have the rights to this paid feature and cannot use it. If you have any questions, please contact customer service at support@pdfreaderpro.com" = "您没有此付费功能权益,暂无法使用,如有疑问,可联系客服 support@pdfreaderpro.com";
 // 桌机版本
 "Free Trial" = "免费试用";
 "Enter your name" = "请输入您的用户名";
@@ -4177,3 +4177,4 @@
 "4 devices" = "4台设备";
 
 "Password cannot exceed 30 characters." = "密码不能超过30个字符。";
+"Auto-renewal | 50 credits/month | Cancel anytime" = "自动续订|每月50点数|可随时取消";

+ 2 - 0
PDF Office/PDF Master/Strings/zh-Hant.lproj/Localizable.strings

@@ -1702,6 +1702,7 @@
 "Feed back"= "意見回饋";
 "Contact Us" = "聯絡我們";
 "Contact us" = "聯絡我們";
+"Sorry, you do not have the rights to this paid feature and cannot use it. If you have any questions, please contact customer service at support@pdfreaderpro.com" = "您沒有此付費功能權益,暫無法使用,如有疑問,可聯絡客服 support@pdfreaderpro.com";
 
 "Connection Error" = "連線失敗";
 "Please make sure your internet connection is available." = "請確認您的網路連線狀況。";
@@ -4307,3 +4308,4 @@
 "4 devices" = "4台設備";
 
 "Password cannot exceed 30 characters." = "密碼不能超過30個字元。";
+"Auto-renewal | 50 credits/month | Cancel anytime" = "自動續訂|每月50點|可隨時取消";

+ 0 - 16
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -799,9 +799,6 @@
 		9F33C9F02CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */; };
 		9F33C9F12CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */; };
 		9F33C9F22CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */; };
-		9F33C9F32CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */; };
-		9F33C9F42CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */; };
-		9F33C9F52CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */; };
 		9F33C9F72CDB3FB40080D3C2 /* KMProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */; };
 		9F33C9F82CDB3FB40080D3C2 /* KMProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */; };
 		9F33C9F92CDB3FB40080D3C2 /* KMProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */; };
@@ -3062,9 +3059,6 @@
 		BB0B2CD82B04AE560088FFD8 /* LeftSideView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB0B2CD72B04AE560088FFD8 /* LeftSideView.xib */; };
 		BB0B2CD92B04AE560088FFD8 /* LeftSideView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB0B2CD72B04AE560088FFD8 /* LeftSideView.xib */; };
 		BB0B2CDA2B04AE560088FFD8 /* LeftSideView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB0B2CD72B04AE560088FFD8 /* LeftSideView.xib */; };
-		BB0FE0342B734DD1001E0F88 /* AIConfigWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB0FE0212B734DD1001E0F88 /* AIConfigWindowController.xib */; };
-		BB0FE0352B734DD1001E0F88 /* AIConfigWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB0FE0212B734DD1001E0F88 /* AIConfigWindowController.xib */; };
-		BB0FE0362B734DD1001E0F88 /* AIConfigWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB0FE0212B734DD1001E0F88 /* AIConfigWindowController.xib */; };
 		BB0FE0372B734DD1001E0F88 /* AIConfigWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB0FE0222B734DD1001E0F88 /* AIConfigWindowController.swift */; };
 		BB0FE0382B734DD1001E0F88 /* AIConfigWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB0FE0222B734DD1001E0F88 /* AIConfigWindowController.swift */; };
 		BB0FE0392B734DD1001E0F88 /* AIConfigWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB0FE0222B734DD1001E0F88 /* AIConfigWindowController.swift */; };
@@ -6075,7 +6069,6 @@
 		9F33C9E12CDB05010080D3C2 /* KMOpenDMGPopupBootWC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOpenDMGPopupBootWC.xib; sourceTree = "<group>"; };
 		9F33C9E82CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOpenDMGPopBootModel.swift; sourceTree = "<group>"; };
 		9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMProductCompareWC.swift; sourceTree = "<group>"; };
-		9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMProductCompareWC.xib; sourceTree = "<group>"; };
 		9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMProductModel.swift; sourceTree = "<group>"; };
 		9F39B9432A661ED500930ACA /* KMHomeScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMHomeScrollView.swift; sourceTree = "<group>"; };
 		9F3A48C32C8017FA0047F565 /* KMPurchaseEmbeddedWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPurchaseEmbeddedWindowController.swift; sourceTree = "<group>"; };
@@ -6916,7 +6909,6 @@
 		BB0A55202A30968900B6E84B /* KMDesignBaseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDesignBaseView.swift; sourceTree = "<group>"; };
 		BB0A823129C00400002C5C1B /* KMCommonEnum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCommonEnum.swift; sourceTree = "<group>"; };
 		BB0B2CD72B04AE560088FFD8 /* LeftSideView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LeftSideView.xib; sourceTree = "<group>"; };
-		BB0FE0212B734DD1001E0F88 /* AIConfigWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AIConfigWindowController.xib; sourceTree = "<group>"; };
 		BB0FE0222B734DD1001E0F88 /* AIConfigWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AIConfigWindowController.swift; sourceTree = "<group>"; };
 		BB0FE0242B734DD1001E0F88 /* AITipIconView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AITipIconView.xib; sourceTree = "<group>"; };
 		BB0FE0252B734DD1001E0F88 /* AITipIconView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AITipIconView.swift; sourceTree = "<group>"; };
@@ -9133,7 +9125,6 @@
 				9F93494B2CE25F8900BC3E1C /* KMFreeGetAIWC.swift */,
 				9F93494C2CE25F8900BC3E1C /* KMFreeGetAIWC.xib */,
 				9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */,
-				9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */,
 				03063B5B2CE3908C006DB603 /* KMMemberCenterWindowController.swift */,
 				03063B5C2CE3908C006DB603 /* KMMemberCenterWindowController.xib */,
 				9F33C9DF2CDB04460080D3C2 /* DMG */,
@@ -11835,7 +11826,6 @@
 			isa = PBXGroup;
 			children = (
 				BB0FE0222B734DD1001E0F88 /* AIConfigWindowController.swift */,
-				BB0FE0212B734DD1001E0F88 /* AIConfigWindowController.xib */,
 				BBB789632BE8BF2300F7E09C /* AINewConfigWindowController.swift */,
 				BBB789602BE8BF2300F7E09C /* AINewConfigWindowController.xib */,
 				BBB789612BE8BF2300F7E09C /* AIChatInfoManager */,
@@ -15154,7 +15144,6 @@
 				AD2D74B029F0CEB300EDC5E4 /* KMCancellationWindowController.xib in Resources */,
 				9F4ACED12CC79D0B005CF727 /* MemberCenter.xcassets in Resources */,
 				9F0ACC072C883464009574D5 /* KMEmbeddedPaymentPopWC.xib in Resources */,
-				9F33C9F32CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */,
 				ADD1B6F02946C06C00C3FFF7 /* KMPrintChoosePageSizeSizeView.xib in Resources */,
 				BBFE6E602930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
 				BBFBE6C228DD7B98008B2335 /* Assets.xcassets in Resources */,
@@ -15256,7 +15245,6 @@
 				AD3AAD792B0DCEB600DE5FE7 /* KMCompareSaveView.xib in Resources */,
 				ADBC2D15299CCD10006280C8 /* KMTextfieldButton.xib in Resources */,
 				ADFCEB4B2B4FBA440001EBAF /* ProRemoteConfigDefaults.plist in Resources */,
-				BB0FE0342B734DD1001E0F88 /* AIConfigWindowController.xib in Resources */,
 				BB031B632C47BB080099F7AD /* KMUserFeekbackWindowController.xib in Resources */,
 				BBD1F77F296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib in Resources */,
 				BBB3769E2B10A7FD009539CC /* a_4a.png in Resources */,
@@ -15738,7 +15726,6 @@
 				8997011228F40842009AF911 /* KMOutlineViewController.xib in Resources */,
 				9F4ACED22CC79D0B005CF727 /* MemberCenter.xcassets in Resources */,
 				BB0FE0562B734DD1001E0F88 /* AIUserInfoController.xib in Resources */,
-				9F33C9F42CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */,
 				9FF816E22AFA5BA80087EFC5 /* KMAnnotationTableViewController.xib in Resources */,
 				BB1B0AE72B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				BBB3769C2B10A7FD009539CC /* a_2a.png in Resources */,
@@ -15984,7 +15971,6 @@
 				9F8810A12B5762BD00F69815 /* KMAnnotationButtonOptionsViewController.xib in Resources */,
 				89D2D2FF294C806000BFF5FE /* KMPDFThumbnailItem.xib in Resources */,
 				BBA9223C2B4E97540061057A /* KMPurchaseLimitWindowController.xib in Resources */,
-				BB0FE0352B734DD1001E0F88 /* AIConfigWindowController.xib in Resources */,
 				ADE8BC3429F9261900570F89 /* KMSearchCellView.xib in Resources */,
 				AD1FE8392BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib in Resources */,
 				ADFCEB4C2B4FBA440001EBAF /* ProRemoteConfigDefaults.plist in Resources */,
@@ -16428,7 +16414,6 @@
 				BB031B652C47BB080099F7AD /* KMUserFeekbackWindowController.xib in Resources */,
 				ADFCEB4D2B4FBA440001EBAF /* ProRemoteConfigDefaults.plist in Resources */,
 				ADC63E4D2A49BEDD00854E02 /* KMSubscribeWaterMarkCollectionItem.xib in Resources */,
-				BB0FE0362B734DD1001E0F88 /* AIConfigWindowController.xib in Resources */,
 				BB5DF1F62959C9F00025CDA1 /* KMHeaderFooterPropertyMainController.xib in Resources */,
 				AD3AAD722B0DCC6800DE5FE7 /* KMCompareSaveWindow.xib in Resources */,
 				9F221ED429A85D3700978A59 /* KMDesignBase.xib in Resources */,
@@ -16733,7 +16718,6 @@
 				BBC2BCCB295DA8F30036B983 /* KMCropPreviewController.xib in Resources */,
 				BB1B0AE82B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				ADD272D629B9CFE20032B5D6 /* KMLightNoNetworkView.xib in Resources */,
-				9F33C9F52CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */,
 				BB2EDF51296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib in Resources */,
 				BBB376A32B10A7FD009539CC /* a_2b.png in Resources */,
 				9F4ACEAE2CC60273005CF727 /* MemberCenterLocalizable.strings in Resources */,