Sfoglia il codice sorgente

Merge branch 'develop_v1.2' of git.kdan.cc:Mac_PDF/PDF_Office into develop_v1.2

tangchao 1 anno fa
parent
commit
f33e752bf7
14 ha cambiato i file con 165 aggiunte e 83 eliminazioni
  1. 11 11
      PDF Office/PDF Master/Class/KMLightMember/Config/KMLightMemberConfig.swift
  2. 4 6
      PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/KMComparativeTableViewController.swift
  3. 25 11
      PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/KMComparativeView.swift
  4. 11 10
      PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/View/KMComparativeViewCollectionItem.swift
  5. 1 1
      PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/View/KMComparativeViewCollectionItem.xib
  6. 3 0
      PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/View/KMComparativeViewCollectionItemItem.swift
  7. 2 2
      PDF Office/PDF Master/Class/KMLightMember/Controller/Login&Register/View/KMLoginView.xib
  8. 11 17
      PDF Office/PDF Master/Class/KMLightMember/Controller/SubscriptionView/WaterMark/KMSubscribeWaterMarkWindowController.swift
  9. 22 10
      PDF Office/PDF Master/Class/KMLightMember/Controller/SubscriptionView/WaterMark/View/KMSubscribeWaterMarkView.swift
  10. 55 3
      PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift
  11. 11 0
      PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/KMPurchaseManager.swift
  12. 1 2
      PDF Office/PDF Master/Class/KMLightMember/Tools/Alert/KMPurchaseAlertView.xib
  13. 1 1
      PDF Office/PDF Master/Info.plist
  14. 7 9
      PDF Office/PDF Master/Third Pard Library/FirebaseAnalytics/GoogleService-Info.plist

+ 11 - 11
PDF Office/PDF Master/Class/KMLightMember/Config/KMLightMemberConfig.swift

@@ -11,18 +11,18 @@ class KMLightMemberConfig: NSObject {
     var isDebug: Bool = true
     var kServerURL: String {
         get {
-//            #if DEBUG
-//            if self.isDebug {
-                //测试服务器
+            #if DEBUG
+            if self.isDebug {
+//                测试服务器
                 return "http://139.196.160.101:8081"
-//            } else {
-//                //正式服务器
-//                return "https://pdfmaster.pdfreaderpro.com"
-//            }
-//            #else
-//            //正式服务器
-//            return "https://pdfmaster.pdfreaderpro.com"
-//            #endif
+            } else {
+                //正式服务器
+                return "https://pdfmaster.pdfreaderpro.com"
+            }
+            #else
+            //正式服务器
+            return "https://pdfmaster.pdfreaderpro.com"
+            #endif
             
         }
     }

+ 4 - 6
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/KMComparativeTableViewController.swift

@@ -109,7 +109,7 @@ class KMComparativeTableViewController: NSWindowController {
         comparativeController = controller
         comparativeMainWindow = window
         
-        if type == .loginSuccess {
+        if type == .loginSuccess && KMLightMemberManager.manager.purchaseState != .subscription {
             controller.subscribeAction(controller: controller)
         }
         return controller
@@ -245,13 +245,11 @@ class KMComparativeTableViewController: NSWindowController {
                         KMPrint("订阅成功")
                         comparativeController = nil
                         comparativeMainWindow?.endSheet(controller.window!)
-                        comparativeMainWindow = nil
                         controller.close()
 
-                        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) {
-                            if NSApp.mainWindow != nil {
-                                _ = KMSubscribeSuccessWindowController.show(window: NSApp.mainWindow!)
-                            }
+                        if comparativeMainWindow != nil {
+                            _ = KMSubscribeSuccessWindowController.show(window: comparativeMainWindow!)
+                            comparativeMainWindow = nil
                         }
                     } else {
                         KMComparativeTableViewController.purchasefailed(view: comparativeController?.comparativeView, state: error)

+ 25 - 11
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/KMComparativeView.swift

@@ -41,31 +41,39 @@ class KMComparativeView: KMBaseXibView {
             "describe": "Simply log in and get benefits.",
             "content": [
                 ["title": "AI translate, rewrite, correction",
-                 "state": 0],
+                 "state": 0,
+                 "color": "#551CCD"],
                 ["title": "Save without watermark",
-                 "state": 0],
+                 "state": 0,
+                 "color": "#252629"],
                 ["title": "Convert with 10 pages per file",
-                 "state": 2],
+                 "state": 2,
+                 "color": "#252629"],
                 ["title": "Basic functions like annotation and viewing",
-                 "state": 2]
+                 "state": 2,
+                 "color": "#252629"]
             ],
             "buttonTitle": "Free Trial"
         ],
         [
             "type": 1,
             "title": "Yearly Plan",
-            "subtitle": "$39.99",
+            "subtitle": "$79.99",
             "describe": "Save 50%@ for the first year, auto-renew at %@. Billed yearly.",
             "productId": PRODUCT_1,
             "content": [
                 ["title": "AI translate, rewrite, correction",
-                 "state": 1],
+                 "state": 1,
+                 "color": "#551CCD"],
                 ["title": "Save without watermark",
-                 "state": 1],
+                 "state": 1,
+                 "color": "#252629"],
                 ["title": "Convert PDF to Office without limitation",
-                 "state": 1],
+                 "state": 1,
+                 "color": "#252629"],
                 ["title": "Unlock all premium features",
-                 "state": 1]
+                 "state": 1,
+                 "color": "#252629"]
             ],
             "buttonTitle": "Buy Now"
         ]
@@ -73,6 +81,8 @@ class KMComparativeView: KMBaseXibView {
     
     let popover = NSPopover()
     
+    var isSubscription: Bool = false
+    
     override func setup() {
         super.setup()
         
@@ -132,8 +142,11 @@ class KMComparativeView: KMBaseXibView {
     override func reloadData() {
         self.beginLoading(backgroundColor: NSColor.black.withAlphaComponent(0.2))
         KMInAppPurchaseManager.manager.fetchProducts { [weak self] isSuccess, products, error in
-            self?.endLoading()
-            self?.collectionView.reloadData()
+            KMPurchaseManager.manager.checkSubscriptionStatus({ [weak self] isSubscription in
+                self?.isSubscription = isSubscription
+                self?.endLoading()
+                self?.collectionView.reloadData()
+            })
         }
     }
     
@@ -205,6 +218,7 @@ extension KMComparativeView: NSCollectionViewDataSource {
     public func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
 //        let data = self.dataArray[indexPath.item]
         let view = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMComparativeViewCollectionItem"), for: indexPath) as! KMComparativeViewCollectionItem
+        view.isSubscription = isSubscription
         view.data = self.dataArray[indexPath.section] as! [String : Any]
         view.doneAction = { [unowned self] view, data in
             if data["type"] as! Int == 0 {

+ 11 - 10
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/View/KMComparativeViewCollectionItem.swift

@@ -24,6 +24,7 @@ class KMComparativeViewCollectionItem: NSCollectionViewItem {
     @IBOutlet weak var iconImageView: NSImageView!
     
     var doneAction: KMComparativeViewCollectionItemDoneAction?
+    var isSubscription: Bool = false
     var data: [String: Any] = [:] {
         didSet {
             self.reloadData()
@@ -127,7 +128,7 @@ class KMComparativeViewCollectionItem: NSCollectionViewItem {
             
             if data["type"] as! Int == 1 {
                 self.describeLabel.isHidden = false
-                self.iconImageView.isHidden = false
+                self.iconImageView.isHidden = true
                 
                 self.subtitleLabel.textColor = NSColor(hex: "#252629")
                 self.doneContentView.backgroundColor(NSColor(hex: "#FF852E"))
@@ -136,13 +137,6 @@ class KMComparativeViewCollectionItem: NSCollectionViewItem {
                 self.doneButton.font = NSFont.SFProTextSemibold(16)
                 self.describeLabel.stringValue = "Save 50% for the first year, auto-renew at $79.9. Billed yearly."
                 
-                if KMLightMemberManager.manager.purchaseState == .trialExpired ||
-                    KMLightMemberManager.manager.purchaseState == .subscriptionExpired {
-                    self.iconImageView.isHidden = true
-                } else {
-                    self.iconImageView.isHidden = false
-                }
-                
                 self.updatePrice()
                 
             } else {
@@ -176,12 +170,19 @@ class KMComparativeViewCollectionItem: NSCollectionViewItem {
                 KMPrint(product.introductoryPrice?.price)
                 KMPrint(product.price)
                 KMPrint("-----------------------------")
+        
                 let currencySymbol: String = product.priceLocale.currencySymbol ?? "$"
                 let currencyCode: String = product.priceLocale.currencyCode ?? "$"
                 let price: String = product.introductoryPrice?.price.description ?? "39.9"
                 let originPrice: String = product.price.description
-                self.subtitleLabel.stringValue = "\(currencyCode)\(price)"
-//                self.describeLabel.stringValue = "\(currencyCode)\(originPrice) \(describe)"
+                
+                if self.isSubscription {
+                    self.iconImageView.isHidden = true
+                    self.subtitleLabel.stringValue = "\(currencyCode)\(originPrice)"
+                } else {
+                    self.iconImageView.isHidden = false
+                    self.subtitleLabel.stringValue = "\(currencyCode)\(price)"
+                }
                 
                 let paragraphStyle = NSMutableParagraphStyle()
                 paragraphStyle.lineHeightMultiple = 1.32

+ 1 - 1
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/View/KMComparativeViewCollectionItem.xib

@@ -134,7 +134,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="sHp-vc-P9l">
+                <imageView hidden="YES" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="sHp-vc-P9l">
                     <rect key="frame" x="67" y="383" width="80" height="24"/>
                     <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="Badge" id="aiz-s6-Vnu"/>
                 </imageView>

+ 3 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeView/View/KMComparativeViewCollectionItemItem.swift

@@ -25,6 +25,7 @@ class KMComparativeViewCollectionItemItem: NSCollectionViewItem {
     
     func reloadData() {
         if data.count != 0 {
+            let color = NSColor(hex: data["color"] as! String)
             let state: Int = data["state"] as? Int ?? 0
             if state == 2 {
                 self.iconImageView.image = NSImage(named: "icon_info")
@@ -34,6 +35,8 @@ class KMComparativeViewCollectionItemItem: NSCollectionViewItem {
                 self.iconImageView.image = NSImage(named: "tips 1")
             }
             
+            self.titleLabel.textColor = color
+            
             let string = NSLocalizedString(data["title"] as! String, comment: "")
             
             let paragraphStyle = NSMutableParagraphStyle()

+ 2 - 2
PDF Office/PDF Master/Class/KMLightMember/Controller/Login&Register/View/KMLoginView.xib

@@ -146,11 +146,11 @@ DQ
                                     <constraints>
                                         <constraint firstAttribute="height" constant="24" id="3gs-kE-D1v"/>
                                     </constraints>
-                                    <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="fsY-op-cRp">
+                                    <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="fsY-op-cRp">
                                         <rect key="frame" x="-100" y="-100" width="225" height="15"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                     </scroller>
-                                    <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="jnd-eF-0ZU">
+                                    <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="jnd-eF-0ZU">
                                         <rect key="frame" x="-100" y="-100" width="15" height="24"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                     </scroller>

+ 11 - 17
PDF Office/PDF Master/Class/KMLightMember/Controller/SubscriptionView/WaterMark/KMSubscribeWaterMarkWindowController.swift

@@ -133,17 +133,19 @@ class KMSubscribeWaterMarkWindowController: NSWindowController {
                         subscribeWaterMarkMainWindow?.endSheet(controller.window!)
                         controller.window?.close()
                         subscribeWaterMarkController = nil
-                        subscribeWaterMarkMainWindow = nil
+//                        subscribeWaterMarkMainWindow = nil
                         
-                        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) {
-                            if NSApp.mainWindow != nil {
-                                let controller = KMSubscribeSuccessWindowController.show(window: NSApp.mainWindow!)
-                                controller.closeAction = { controller in
-                                    controller.closeWindow()
-                                    completion(true, false, false)
-                                }
+                        if subscribeWaterMarkMainWindow != nil {
+                            let controller = KMSubscribeSuccessWindowController.show(window: subscribeWaterMarkMainWindow!)
+                            controller.closeAction = { controller in
+                                controller.closeWindow()
+                                completion(true, false, false)
                             }
+                            subscribeWaterMarkMainWindow = nil
+                        } else {
+                            completion(true, false, false)
                         }
+                        
                     } else {
                         KMComparativeTableViewController.purchasefailed(view: subscribeWaterMarkController?.waterMarkView, state: error)
                         completion(false, false, false)
@@ -162,15 +164,7 @@ class KMSubscribeWaterMarkWindowController: NSWindowController {
                         subscribeWaterMarkController = nil
                         subscribeWaterMarkMainWindow = nil
                         
-                        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) {
-                            if NSApp.mainWindow != nil {
-                                let controller = KMSubscribeSuccessWindowController.show(window: NSApp.mainWindow!)
-                                controller.closeAction = { controller in
-                                    controller.closeWindow()
-                                    completion(true, false, false)
-                                }
-                            }
-                        }
+                        completion(true, false, false)
                     } else {
                         if error != .restoreSuccess {
                             KMComparativeTableViewController.purchasefailed(view: subscribeWaterMarkController?.waterMarkView, state: error)

+ 22 - 10
PDF Office/PDF Master/Class/KMLightMember/Controller/SubscriptionView/WaterMark/View/KMSubscribeWaterMarkView.swift

@@ -55,6 +55,7 @@ class KMSubscribeWaterMarkView: KMBaseXibView {
     ]
     
     let popover = NSPopover()
+    var isSubscription: Bool = false
     
     override func setup() {
         self.closeBox.moveCallback = { [weak self] (mouseEntered, mouseBox) in
@@ -159,8 +160,11 @@ class KMSubscribeWaterMarkView: KMBaseXibView {
         
         self.beginLoading(backgroundColor: NSColor.black.withAlphaComponent(0.2))
         KMInAppPurchaseManager.manager.fetchProducts { [weak self] isSuccess, products, error in
-            self?.endLoading()
-            self?.updatePrice()
+            KMPurchaseManager.manager.checkSubscriptionStatus({ [weak self] isSubscription in
+                self?.isSubscription = isSubscription
+                self?.endLoading()
+                self?.updatePrice()
+            })
         }
 #endif
 
@@ -169,13 +173,14 @@ class KMSubscribeWaterMarkView: KMBaseXibView {
         self.restoreButton.isHidden = true
 //        self.textView.isHidden = true
 #endif
-        if KMLightMemberManager.manager.purchaseState == .trialExpired ||
-            KMLightMemberManager.manager.purchaseState == .subscriptionExpired {
-            self.discountImageView.isHidden = true
-        } else {
-            self.discountImageView.isHidden = false
-        }
-            
+        self.discountImageView.isHidden = true
+        
+//        if KMLightMemberManager.manager.purchaseState == .trialExpired ||
+//            KMLightMemberManager.manager.purchaseState == .subscriptionExpired {
+//            self.discountImageView.isHidden = true
+//        } else {
+//            self.discountImageView.isHidden = false
+//        }
     }
     
     func updatePrice() {
@@ -191,7 +196,14 @@ class KMSubscribeWaterMarkView: KMBaseXibView {
                 let currencyCode: String = product.priceLocale.currencyCode ?? "$"
                 let price: String = product.introductoryPrice?.price.description ?? "39.9"
                 let originPrice: String = product.price.description ?? "79.9"
-                self.subscribeLabel.stringValue = "\(currencyCode)\(price) / year"
+                
+                if isSubscription {
+                    self.discountImageView.isHidden = true
+                    self.subscribeLabel.stringValue = "\(currencyCode)\(originPrice) / year"
+                } else {
+                    self.discountImageView.isHidden = false
+                    self.subscribeLabel.stringValue = "\(currencyCode)\(price) / year"
+                }
             }
         }
     }

+ 55 - 3
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift

@@ -65,6 +65,7 @@ class KMInAppPurchaseManager: NSObject {
     public static let manager = KMInAppPurchaseManager()
     
     var restoreCompletion: KMPurchaseRestoreCompletion?
+    var checkSubscriptionStatusCompletion: KMPurchaseRestoreCompletion?
     var fetchProductCompletion: KMPurchaseFetchProductCompletion?
     var purchaseProductCompletion: KMPurchaseCompletion?
     var availableProducts: [SKProduct] = []
@@ -77,9 +78,11 @@ class KMInAppPurchaseManager: NSObject {
 
     var orderId: String?
     var isPurchase: Bool = false
+    var isCheckSubscriptionStatus = false
     
     deinit {
         isPurchase = false
+        isCheckSubscriptionStatus = false
         SKPaymentQueue.default().remove(self)
     }
     
@@ -167,6 +170,32 @@ class KMInAppPurchaseManager: NSObject {
             }
         }
     }
+    
+    //判断是否订阅过
+    func checkSubscriptionStatus(_ completion: @escaping KMPurchaseCheckSubscriptionStatusCompletion) {
+        self.isCheckSubscriptionStatus = true
+        self.restorePurchases { [weak self] isSuccess, error in
+            if isSuccess {
+                let paymentQueue = SKPaymentQueue.default()
+                let transactions = paymentQueue.transactions
+                
+                for transaction in transactions {
+                    if transaction.transactionState == .purchased ||
+                        transaction.transactionState == .restored {
+                        // 找到已购买或已恢复的交易,表示用户已订阅
+                        DispatchQueue.main.async {
+                            completion(true)
+                        }
+                        return
+                    }
+                }
+                DispatchQueue.main.async {
+                    completion(false)
+                }
+            }
+            self?.isCheckSubscriptionStatus = false
+        }
+    }
 }
 
 extension KMInAppPurchaseManager: SKProductsRequestDelegate {
@@ -204,6 +233,16 @@ extension KMInAppPurchaseManager: SKProductsRequestDelegate {
 }
 
 extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
+    func paymentQueueDidChangeStorefront(_ queue: SKPaymentQueue) {
+        KMPrint("paymentQueueDidChangeStorefront")
+    }
+
+    
+    // Sent when entitlements for a user have changed and access to the specified IAPs has been revoked.
+    func paymentQueue(_ queue: SKPaymentQueue, didRevokeEntitlementsForProductIdentifiers productIdentifiers: [String]) {
+        KMPrint("didRevokeEntitlementsForProductIdentifiers")
+    }
+    
     func paymentQueue(_ queue: SKPaymentQueue, shouldAddStorePayment payment: SKPayment, for product: SKProduct) -> Bool {
         // Handle the purchase intent here
         // Return true to allow the purchase or false to deny it
@@ -211,7 +250,10 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
     }
     
     func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
-        KMPrint("服务器返回数据")
+        KMPrint("苹果服务器返回数据")
+        if isCheckSubscriptionStatus {
+            return
+        }
         if transactions.count > 0 {
             var resultTransaction = transactions.first!
             var isExist = false
@@ -242,10 +284,16 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
                 }
             }
             if !isExist {
-                handleError(transaction: resultTransaction)
+                self.handleAction(state: .productCorrespondenceFailed)
             }
         } else {
-            handleError(transaction: nil)
+            self.handleAction(state: .productCorrespondenceFailed)
+        }
+        
+        for transaction in queue.transactions {
+            if transaction.transactionState != .purchasing {
+                SKPaymentQueue.default().finishTransaction(transaction)
+            }
         }
     }
     
@@ -353,6 +401,9 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
 
     func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
         KMPrint("paymentQueueRestoreCompletedTransactionsFinished")
+        if isCheckSubscriptionStatus {
+            restoreCompletion?(true,.success)
+        }
         // 获取购买凭证
         if let receiptURL = Bundle.main.appStoreReceiptURL,
            let receiptData = try? Data(contentsOf: receiptURL) {
@@ -363,6 +414,7 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
     }
     
     func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: Error) {
+        restoreCompletion?(false,.success)
         KMPrint("restoreCompletedTransactionsFailedWithError")
     }
     

+ 11 - 0
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/KMPurchaseManager.swift

@@ -22,6 +22,7 @@ import Cocoa
 typealias KMPurchaseCompletion = (_ isSuccess: Bool, _ error: KMInAppPurchaseState) -> Void
 typealias KMPurchaseFetchProductCompletion = (_ isSuccess: Bool, _ products: Array<Any>, _ error: KMInAppPurchaseState?) -> Void
 typealias KMPurchaseRestoreCompletion = (_ isSuccess: Bool, _ error: KMInAppPurchaseState) -> Void
+typealias KMPurchaseCheckSubscriptionStatusCompletion = (_ isSubscription: Bool) -> Void
 class KMPurchaseManager: NSObject {
     public static let manager = KMPurchaseManager()
     
@@ -114,6 +115,16 @@ class KMPurchaseManager: NSObject {
 #if VERSION_DMG
         KMDMGPurchaseManager.manager.restorePurchases()
         KMPrint("正在restore DMG")
+#endif
+    }
+    
+    func checkSubscriptionStatus(_ completion: @escaping KMPurchaseCheckSubscriptionStatusCompletion) {
+#if VERSION_FREE
+        return KMInAppPurchaseManager.manager.checkSubscriptionStatus(completion)
+#endif
+        
+#if VERSION_DMG
+        return false
 #endif
     }
 }

+ 1 - 2
PDF Office/PDF Master/Class/KMLightMember/Tools/Alert/KMPurchaseAlertView.xib

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
-        <deployment identifier="macosx"/>
         <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21701"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -34,7 +33,7 @@
                         <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ojP-eQ-jrF">
                             <rect key="frame" x="38" y="16" width="177" height="16"/>
                             <textFieldCell key="cell" lineBreakMode="clipping" title="阿萨德发斯蒂芬去玩儿武器二" id="eZd-NL-okI">
-                                <font key="font" size="13" name=".PingFangSC-Regular"/>
+                                <font key="font" metaFont="system"/>
                                 <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                             </textFieldCell>

+ 1 - 1
PDF Office/PDF Master/Info.plist

@@ -308,7 +308,7 @@
 	<key>Fabric</key>
 	<dict>
 		<key>APIKey</key>
-		<string>AIzaSyDex9auPUJBSvPMMu4UhIAtpwwzKutdmiQ</string>
+		<string>AIzaSyCalcVW-WrKHxsm4O-AU6MjV31fI9CLaLY</string>
 		<key>Kits</key>
 		<array>
 			<dict>

+ 7 - 9
PDF Office/PDF Master/Third Pard Library/FirebaseAnalytics/GoogleService-Info.plist

@@ -3,21 +3,21 @@
 <plist version="1.0">
 <dict>
 	<key>CLIENT_ID</key>
-	<string>956267872181-qb5rg2s8aghsn8c5ub1qri8o3o5i8o6k.apps.googleusercontent.com</string>
+	<string>850957615648-3tdp8r5023ej4fhduuub6fl80ralmftl.apps.googleusercontent.com</string>
 	<key>REVERSED_CLIENT_ID</key>
-	<string>com.googleusercontent.apps.956267872181-qb5rg2s8aghsn8c5ub1qri8o3o5i8o6k</string>
+	<string>com.googleusercontent.apps.850957615648-3tdp8r5023ej4fhduuub6fl80ralmftl</string>
 	<key>API_KEY</key>
-	<string>AIzaSyDex9auPUJBSvPMMu4UhIAtpwwzKutdmiQ</string>
+	<string>AIzaSyCalcVW-WrKHxsm4O-AU6MjV31fI9CLaLY</string>
 	<key>GCM_SENDER_ID</key>
-	<string>956267872181</string>
+	<string>850957615648</string>
 	<key>PLIST_VERSION</key>
 	<string>1</string>
 	<key>BUNDLE_ID</key>
 	<string>com.pdftechnologies.pdfreader.mac</string>
 	<key>PROJECT_ID</key>
-	<string>peerless-clock-269502</string>
+	<string>pdf-master-mac-app-store</string>
 	<key>STORAGE_BUCKET</key>
-	<string>peerless-clock-269502.appspot.com</string>
+	<string>pdf-master-mac-app-store.appspot.com</string>
 	<key>IS_ADS_ENABLED</key>
 	<false></false>
 	<key>IS_ANALYTICS_ENABLED</key>
@@ -29,8 +29,6 @@
 	<key>IS_SIGNIN_ENABLED</key>
 	<true></true>
 	<key>GOOGLE_APP_ID</key>
-	<string>1:956267872181:ios:18262b4ddbd0365ceda3fc</string>
-	<key>DATABASE_URL</key>
-	<string>https://peerless-clock-269502.firebaseio.com</string>
+	<string>1:850957615648:ios:08fdeb33ff0aa4667cb245</string>
 </dict>
 </plist>