Browse Source

【会员】Apple 登录接入(未与服务器对接,无设计)

lizhe 1 year ago
parent
commit
6fe77feda2

+ 36 - 6
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -1144,6 +1144,12 @@
 		AD015FB729AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
 		AD015FB829AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
 		AD015FB929AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
+		AD02573A2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0257392A8601AA00EAD5D5 /* KMLoginManager.swift */; };
+		AD02573B2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0257392A8601AA00EAD5D5 /* KMLoginManager.swift */; };
+		AD02573C2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0257392A8601AA00EAD5D5 /* KMLoginManager.swift */; };
+		AD02573F2A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD02573E2A8601CD00EAD5D5 /* KMAppleLoginManager.swift */; };
+		AD0257402A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD02573E2A8601CD00EAD5D5 /* KMAppleLoginManager.swift */; };
+		AD0257412A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD02573E2A8601CD00EAD5D5 /* KMAppleLoginManager.swift */; };
 		AD032CBA2A525DAC00F1D745 /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */; };
 		AD0E8AB02A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */; };
 		AD0E8AB12A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */; };
@@ -4048,6 +4054,8 @@
 		9FF94F1729A770B500B1EF69 /* KMFillSignShapePanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMFillSignShapePanel.swift; sourceTree = "<group>"; };
 		9FF94F1829A770B500B1EF69 /* KMFillSignShapePanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMFillSignShapePanel.xib; sourceTree = "<group>"; };
 		AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMLightMemberConfig.swift; sourceTree = "<group>"; };
+		AD0257392A8601AA00EAD5D5 /* KMLoginManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMLoginManager.swift; sourceTree = "<group>"; };
+		AD02573E2A8601CD00EAD5D5 /* KMAppleLoginManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAppleLoginManager.swift; sourceTree = "<group>"; };
 		AD032CB62A4E6A7E00F1D745 /* Starscream.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Starscream.framework; sourceTree = "<group>"; };
 		AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMInAppPurchaseManager.swift; sourceTree = "<group>"; };
 		AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDMGPurchaseManager.swift; sourceTree = "<group>"; };
@@ -6154,6 +6162,23 @@
 			path = Config;
 			sourceTree = "<group>";
 		};
+		AD0257382A86015100EAD5D5 /* ThirdPartyLogin */ = {
+			isa = PBXGroup;
+			children = (
+				AD02573D2A8601AF00EAD5D5 /* Apple */,
+				AD0257392A8601AA00EAD5D5 /* KMLoginManager.swift */,
+			);
+			path = ThirdPartyLogin;
+			sourceTree = "<group>";
+		};
+		AD02573D2A8601AF00EAD5D5 /* Apple */ = {
+			isa = PBXGroup;
+			children = (
+				AD02573E2A8601CD00EAD5D5 /* KMAppleLoginManager.swift */,
+			);
+			path = Apple;
+			sourceTree = "<group>";
+		};
 		AD0E8AAD2A31B6F300DBFD3C /* Appstore */ = {
 			isa = PBXGroup;
 			children = (
@@ -7390,6 +7415,7 @@
 		ADE3C1CB29A5A79E00793B13 /* KMLightMember */ = {
 			isa = PBXGroup;
 			children = (
+				AD0257382A86015100EAD5D5 /* ThirdPartyLogin */,
 				ADBC174D2A2991F700959CEE /* InAppPurchase */,
 				AD53B70129ACC63D00D61E81 /* Tools */,
 				AD015FB529AB483200A57062 /* Config */,
@@ -10804,6 +10830,7 @@
 				9F1F82F229373D6E0092C4B4 /* String+KMExtensions.swift in Sources */,
 				BB897236294B38DC0045787C /* KMWatermarkAdjectivePropertyBaseController.swift in Sources */,
 				9F1F82D2292F6D510092C4B4 /* KMPDFInsertPreviewViewController.swift in Sources */,
+				AD02573F2A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */,
 				BB86C1ED28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
 				9F1FE4D229406E4700E952CA /* CTTabView.m in Sources */,
 				89E4E71D2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */,
@@ -11149,6 +11176,7 @@
 				ADD1B6C72942E83000C3FFF7 /* KMPrintBottomView.swift in Sources */,
 				9F0CB4D12986550B00007028 /* KMDesignToken+Width.swift in Sources */,
 				BB8F457E295B00130037EA22 /* KMWatermarkAdjectiveTools.swift in Sources */,
+				AD02573A2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */,
 				BB332D532995D8B500CABB58 /* KMCloudDocumentTools.swift in Sources */,
 				89316837296E436B0073EA59 /* NSImage+CustomImage.m in Sources */,
 				BBA93D3329BF0ECE0044E0DD /* SKKeychain.m in Sources */,
@@ -11515,6 +11543,7 @@
 				BB14700C299DC0D100784A6A /* OIDAuthorizationRequest.m in Sources */,
 				ADE3C1DF29A5AA0B00793B13 /* KMRequestServer.swift in Sources */,
 				BBC3484B2958222C008D2CD1 /* KMBackgroundOutsideView.swift in Sources */,
+				AD0257402A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */,
 				ADBC2CFB299CA6B9006280C8 /* KMPrintDuplexPrintingSetView.swift in Sources */,
 				BBA19F4429ADE6A3001A285A /* KMBookMarkRowView.swift in Sources */,
 				BB32BF242A5EA05900D11348 /* KMAnalytics.swift in Sources */,
@@ -12231,6 +12260,7 @@
 				BB0542162965705D00F2665C /* KMCropTipView.swift in Sources */,
 				896DD4562985FB3200ADE514 /* KMPageDisplayThemeCollectionViewItem.swift in Sources */,
 				BBC348542958465C008D2CD1 /* KMBackgroundFilePropertyInfoController.swift in Sources */,
+				AD02573B2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */,
 				ADD1B70B29471FA500C3FFF7 /* KMPrintChoosePresenter.swift in Sources */,
 				89E93F00299CBDEE00F10F66 /* KMOCRComboBox.m in Sources */,
 				AD8810AA29A8463600178CA1 /* KMAccountInfoWindowController.swift in Sources */,
@@ -12457,6 +12487,7 @@
 				8942F80129260EC700389627 /* KMLeftMethodMode.swift in Sources */,
 				BB14703A299DC0D200784A6A /* OIDAuthorizationResponse.m in Sources */,
 				BBB9B324299A5D6D004F3235 /* KMServicesCloudFile.m in Sources */,
+				AD0257412A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */,
 				BB003037298D356E002DD1A0 /* KMPreferenceMarkupColorView.swift in Sources */,
 				ADB1FE9029752F7000ED072D /* KMBatchBackgroundView.swift in Sources */,
 				BBD7FE062A1323F000F96075 /* KMCustomTableRowView.swift in Sources */,
@@ -12684,6 +12715,7 @@
 				BB0A823429C00400002C5C1B /* KMCommonEnum.swift in Sources */,
 				BB5F8A1029BB04F000365ADB /* GBDeviceInfo_OSX.m in Sources */,
 				F373231B292DF97D0013862C /* CPDFSelection+PDFListView.m in Sources */,
+				AD02573C2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */,
 				BBFE6E89293210AB00142C01 /* KMCompressCellView.swift in Sources */,
 				8931683C296E436B0073EA59 /* KMSignatureWindowController.m in Sources */,
 				BB147040299DC0D200784A6A /* OIDEndSessionResponse.m in Sources */,
@@ -13316,13 +13348,12 @@
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = "PDF Master/PDF_Master.entitlements";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Manual;
+				CODE_SIGN_STYLE = Automatic;
 				COMBINE_HIDPI_IMAGES = YES;
 				COPYING_PRESERVES_HFS_DATA = NO;
 				CURRENT_PROJECT_VERSION = 1;
 				DEFINES_MODULE = YES;
-				DEVELOPMENT_TEAM = "";
-				"DEVELOPMENT_TEAM[sdk=macosx*]" = 4GGQPGRTSV;
+				DEVELOPMENT_TEAM = 4GGQPGRTSV;
 				ENABLE_HARDENED_RUNTIME = YES;
 				EXCLUDED_ARCHS = "";
 				FRAMEWORK_SEARCH_PATHS = (
@@ -13406,13 +13437,12 @@
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = "PDF Master/PDF_Master.entitlements";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Manual;
+				CODE_SIGN_STYLE = Automatic;
 				COMBINE_HIDPI_IMAGES = YES;
 				COPYING_PRESERVES_HFS_DATA = NO;
 				CURRENT_PROJECT_VERSION = 1;
 				DEFINES_MODULE = YES;
-				DEVELOPMENT_TEAM = "";
-				"DEVELOPMENT_TEAM[sdk=macosx*]" = 4GGQPGRTSV;
+				DEVELOPMENT_TEAM = 4GGQPGRTSV;
 				ENABLE_HARDENED_RUNTIME = YES;
 				EXCLUDED_ARCHS = "";
 				FRAMEWORK_SEARCH_PATHS = (

+ 558 - 46
PDF Office/PDF Master.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -3658,6 +3658,21 @@
                   endingLineNumber = "898"
                   offsetFromSymbolStart = "5028">
                </Location>
+               <Location
+                  uuid = "B0B97B1D-C16A-40AC-830E-4908FD434813 - 8cda1206cff3dff3"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMThumbnailViewController.validateMenuItem(__C.NSMenuItem) -&gt; Swift.Bool"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "900"
+                  endingLineNumber = "900"
+                  offsetFromSymbolStart = "2684">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -3856,6 +3871,21 @@
                   endingLineNumber = "876"
                   offsetFromSymbolStart = "648">
                </Location>
+               <Location
+                  uuid = "DC5C13CC-601A-4F45-B3D6-BE8EF4B3C841 - 8cda1206cff3d2db"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMThumbnailViewController.validateMenuItem(__C.NSMenuItem) -&gt; Swift.Bool"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "876"
+                  endingLineNumber = "876"
+                  offsetFromSymbolStart = "576">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -4114,6 +4144,51 @@
                   endingLineNumber = "854"
                   offsetFromSymbolStart = "1236">
                </Location>
+               <Location
+                  uuid = "A9ECAAB1-38BB-4918-83CA-5C22F5C9553C - 7f6f1f9f5f9e599d"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMThumbnailViewController.thumbnailView(thumbanView: PDF_Master.KMThumbnailView, didDragAddFiles: Swift.Array&lt;Foundation.URL&gt;, indexpath: Foundation.IndexPath) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "854"
+                  endingLineNumber = "854"
+                  offsetFromSymbolStart = "276">
+               </Location>
+               <Location
+                  uuid = "A9ECAAB1-38BB-4918-83CA-5C22F5C9553C - 98ee0b0363677de2"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "closure #1 (Swift.Int, Any...) -&gt; () in PDF_Master.KMThumbnailViewController.thumbnailView(thumbanView: PDF_Master.KMThumbnailView, didDragAddFiles: Swift.Array&lt;Foundation.URL&gt;, indexpath: Foundation.IndexPath) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "854"
+                  endingLineNumber = "854"
+                  offsetFromSymbolStart = "1760">
+               </Location>
+               <Location
+                  uuid = "A9ECAAB1-38BB-4918-83CA-5C22F5C9553C - d19d735222d975"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "closure #2 (Swift.Array&lt;__C.CPDFDocument&gt;) -&gt; () in PDF_Master.KMThumbnailViewController.thumbnailView(thumbanView: PDF_Master.KMThumbnailView, didDragAddFiles: Swift.Array&lt;Foundation.URL&gt;, indexpath: Foundation.IndexPath) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "854"
+                  endingLineNumber = "854"
+                  offsetFromSymbolStart = "480">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -4429,6 +4504,21 @@
                   endingLineNumber = "1717"
                   offsetFromSymbolStart = "404">
                </Location>
+               <Location
+                  uuid = "E7F4D56E-1C39-4024-BBA5-68C70086BBFF - d6687c60757e752"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.pdfViewEditingAddTextArea(_: Swift.Optional&lt;__C.CPDFView&gt;, add: Swift.Optional&lt;__C.CPDFPage&gt;, add: __C.CGRect) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1716"
+                  endingLineNumber = "1716"
+                  offsetFromSymbolStart = "244">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -4846,6 +4936,21 @@
                   endingLineNumber = "255"
                   offsetFromSymbolStart = "1096">
                </Location>
+               <Location
+                  uuid = "FBC4E0B0-DE70-486A-8858-24D15EAF919E - 8e41ceb134ba875d"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMSearchViewController.selectAllSearchModel() -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Search/KMSearchViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "255"
+                  endingLineNumber = "255"
+                  offsetFromSymbolStart = "1112">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5032,6 +5137,21 @@
                   endingLineNumber = "584"
                   offsetFromSymbolStart = "192">
                </Location>
+               <Location
+                  uuid = "E22CD419-B76B-42D7-B07F-D287D150D2FB - 5931138e4c04ba1e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMSearchViewController.controlTextDidEndEditing(Foundation.Notification) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Search/KMSearchViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "583"
+                  endingLineNumber = "583"
+                  offsetFromSymbolStart = "804">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5311,6 +5431,21 @@
                   endingLineNumber = "1528"
                   offsetFromSymbolStart = "2240">
                </Location>
+               <Location
+                  uuid = "2237DD70-B8BE-49EA-A4CE-79A8782755B0 - 41c232057cc138ec"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.pdfViewEditingAreaDidChanged(Swift.Optional&lt;__C.CPDFView&gt;) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1528"
+                  endingLineNumber = "1528"
+                  offsetFromSymbolStart = "2200">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -6565,6 +6700,21 @@
                   endingLineNumber = "1947"
                   offsetFromSymbolStart = "796">
                </Location>
+               <Location
+                  uuid = "020BF3CA-E99C-4B40-91D6-260F8E825E98 - 1298c8c9696830b3"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.displaySinglePageScreen(isSinglePage: Swift.Bool, doublePageScreen: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1947"
+                  endingLineNumber = "1947"
+                  offsetFromSymbolStart = "680">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -6823,6 +6973,21 @@
                   endingLineNumber = "1993"
                   offsetFromSymbolStart = "400">
                </Location>
+               <Location
+                  uuid = "36FD2F66-71C8-4346-9D37-D715DD34EA44 - 34a67503baba242f"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.updateNextAndPreViousButtonState() -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1993"
+                  endingLineNumber = "1993"
+                  offsetFromSymbolStart = "1132">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -6991,6 +7156,21 @@
                   endingLineNumber = "1510"
                   offsetFromSymbolStart = "7768">
                </Location>
+               <Location
+                  uuid = "D2E713CE-328E-4EC1-91DC-F6D927095512 - 240bef81fdee5198"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.shareDocument(sender: PDF_Master.KMToolbarViewController, limit: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1510"
+                  endingLineNumber = "1510"
+                  offsetFromSymbolStart = "6108">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -7084,6 +7264,36 @@
                   endingLineNumber = "2160"
                   offsetFromSymbolStart = "6516">
                </Location>
+               <Location
+                  uuid = "E6C993FB-0842-4F52-AE53-E75F3AD220CC - a1d4d1cb41d7233"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doDragAddAnnotationWithEvent:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2161"
+                  endingLineNumber = "2161"
+                  offsetFromSymbolStart = "6044">
+               </Location>
+               <Location
+                  uuid = "E6C993FB-0842-4F52-AE53-E75F3AD220CC - a1d4d1cb41d7233"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doDragAddAnnotationWithEvent:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2161"
+                  endingLineNumber = "2161"
+                  offsetFromSymbolStart = "6048">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -7177,6 +7387,21 @@
                   endingLineNumber = "2246"
                   offsetFromSymbolStart = "1128">
                </Location>
+               <Location
+                  uuid = "8DF43700-9AFC-4D93-AA00-E6A6AF35DC2E - b8845c68496e6dcb"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeLineAnnotationWithEvent:fromPoint:originalStartPoint:originalEndPoint:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2246"
+                  endingLineNumber = "2246"
+                  offsetFromSymbolStart = "776">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -7300,6 +7525,21 @@
                   endingLineNumber = "2333"
                   offsetFromSymbolStart = "2356">
                </Location>
+               <Location
+                  uuid = "31E2802F-4470-4A8B-AA9C-72955A42BC77 - 8dc592bd4f8b95ad"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeAnnotationWithEvent:fromPoint:originalBounds:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2333"
+                  endingLineNumber = "2333"
+                  offsetFromSymbolStart = "1844">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -7378,6 +7618,21 @@
                   endingLineNumber = "2342"
                   offsetFromSymbolStart = "2704">
                </Location>
+               <Location
+                  uuid = "45AC1B80-85C6-4653-8A68-F7B5D967D61C - 8dc592bd4f8b94f4"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeAnnotationWithEvent:fromPoint:originalBounds:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2342"
+                  endingLineNumber = "2342"
+                  offsetFromSymbolStart = "2160">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -7765,6 +8020,21 @@
                   endingLineNumber = "1557"
                   offsetFromSymbolStart = "7276">
                </Location>
+               <Location
+                  uuid = "62BC6468-594C-4A01-ADDD-BBD0C1BEAB50 - 41c232057cc134ce"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.pdfViewEditingAreaDidChanged(Swift.Optional&lt;__C.CPDFView&gt;) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1558"
+                  endingLineNumber = "1558"
+                  offsetFromSymbolStart = "5976">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -9449,6 +9719,21 @@
                   endingLineNumber = "564"
                   offsetFromSymbolStart = "720">
                </Location>
+               <Location
+                  uuid = "3F06B774-FE3C-4BE6-813D-35115B23C005 - 60cb578b228117ad"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMEditPDFTextPropertyViewController.reDefineTextPresuppositionData(redefine: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "566"
+                  endingLineNumber = "566"
+                  offsetFromSymbolStart = "708">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -9587,6 +9872,21 @@
                   endingLineNumber = "601"
                   offsetFromSymbolStart = "4776">
                </Location>
+               <Location
+                  uuid = "055B564F-D2A2-4AC4-8774-CA3F847F5C82 - ed2f954f4846ca9"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMEditPDFTextPropertyViewController.updateFontNameAndStyle(name: Swift.String, style: Swift.String, needChangeListView: Swift.Bool, needSave: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "601"
+                  endingLineNumber = "601"
+                  offsetFromSymbolStart = "4300">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -9773,6 +10073,21 @@
                   endingLineNumber = "298"
                   offsetFromSymbolStart = "2144">
                </Location>
+               <Location
+                  uuid = "3013C1B2-3C06-45CF-B602-42646336EB7B - 726f4bc366187818"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMEditPDFTextPropertyViewController.refreshSelectAreaProperty(needDefaultData: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "298"
+                  endingLineNumber = "298"
+                  offsetFromSymbolStart = "692">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -9866,6 +10181,21 @@
                   endingLineNumber = "582"
                   offsetFromSymbolStart = "1872">
                </Location>
+               <Location
+                  uuid = "762D2148-D0FB-432B-8767-C7AB63AA2233 - ed2f954f4847124"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMEditPDFTextPropertyViewController.updateFontNameAndStyle(name: Swift.String, style: Swift.String, needChangeListView: Swift.Bool, needSave: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "582"
+                  endingLineNumber = "582"
+                  offsetFromSymbolStart = "1476">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -9914,6 +10244,21 @@
                   endingLineNumber = "1321"
                   offsetFromSymbolStart = "44">
                </Location>
+               <Location
+                  uuid = "EB3CC863-CD88-4969-8755-C4ABD9B1445B - e881a33b451605d4"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMMainViewController.recordSaveWatermarkFlag(type: PDF_Master.KMSubscribeWaterMarkType) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1320"
+                  endingLineNumber = "1320"
+                  offsetFromSymbolStart = "156">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -10009,6 +10354,38 @@
             endingLineNumber = "352"
             landmarkName = "sendReceiptToServer(receiptData:transaction:)"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "AF1AFDD3-C06C-41E9-87A0-DA01704543DB - a30bed47f9ef30ba"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "closure #1 (Swift.Bool, Swift.Optional&lt;PDF_Master.Result&gt;) -&gt; () in PDF_Master.KMInAppPurchaseManager.sendReceiptToServer(receiptData: Foundation.Data, transaction: Swift.Optional&lt;__C.SKPaymentTransaction&gt;) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "352"
+                  endingLineNumber = "352"
+                  offsetFromSymbolStart = "240">
+               </Location>
+               <Location
+                  uuid = "AF1AFDD3-C06C-41E9-87A0-DA01704543DB - 11d784eb2968b7f5"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "closure #1 (PDF_Master.KMLightMemberUserInfo) -&gt; () in closure #1 (Swift.Bool, Swift.Optional&lt;PDF_Master.Result&gt;) -&gt; () in PDF_Master.KMInAppPurchaseManager.sendReceiptToServer(receiptData: Foundation.Data, transaction: Swift.Optional&lt;__C.SKPaymentTransaction&gt;) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "348"
+                  endingLineNumber = "348"
+                  offsetFromSymbolStart = "28">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -10993,6 +11370,21 @@
                   endingLineNumber = "1012"
                   offsetFromSymbolStart = "1824">
                </Location>
+               <Location
+                  uuid = "72B10A1E-CF14-4130-BD56-17089543320E - df2854e0bbda11ed"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMThumbnailViewController.deletePageItemWithIndexs(indexs: Foundation.IndexSet) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1012"
+                  endingLineNumber = "1012"
+                  offsetFromSymbolStart = "2368">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -11131,6 +11523,21 @@
                   endingLineNumber = "766"
                   offsetFromSymbolStart = "980">
                </Location>
+               <Location
+                  uuid = "ABC8F3C6-5AE9-4195-8380-2E660CE32045 - f6bfa55b7de9b78b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMThumbnailViewController.thumbnailView(thumbanView: PDF_Master.KMThumbnailView, didSelectItemAt: Foundation.IndexPath, object: Swift.Optional&lt;Swift.AnyObject&gt;) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "766"
+                  endingLineNumber = "766"
+                  offsetFromSymbolStart = "3176">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -11242,6 +11649,21 @@
                   endingLineNumber = "166"
                   offsetFromSymbolStart = "320">
                </Location>
+               <Location
+                  uuid = "7D80DC57-6FA9-4805-9071-FF2846CA5FAE - 216bebc138f11e4"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.AppDelegate.application(_: __C.NSApplication, didRegisterForRemoteNotificationsWithDeviceToken: Foundation.Data) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/AppDelegate.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "168"
+                  endingLineNumber = "168"
+                  offsetFromSymbolStart = "36">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -11336,6 +11758,21 @@
                   endingLineNumber = "937"
                   offsetFromSymbolStart = "724">
                </Location>
+               <Location
+                  uuid = "D90BE850-75C0-4F2E-9249-D1327B0B0904 - c167a8173b78f990"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMPDFEditViewController.km_comboBoxSelectionDidChange(PDF_Master.KMDesignSelect) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "937"
+                  endingLineNumber = "937"
+                  offsetFromSymbolStart = "4148">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -11726,73 +12163,70 @@
                   endingLineNumber = "188"
                   offsetFromSymbolStart = "240">
                </Location>
-            </Locations>
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "6AD88AEA-EB20-4759-82C5-59ACB53F422B"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/KMLightMember/Manager/KMRequestServerManager.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "367"
-            endingLineNumber = "367"
-            landmarkName = "getUserInfo(complete:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "D48EE89C-03C3-42C6-9094-744DDF6FD544"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "381"
-            endingLineNumber = "381"
-            landmarkName = "userInfoButtonAction(_:)"
-            landmarkType = "7">
-            <Locations>
                <Location
-                  uuid = "D48EE89C-03C3-42C6-9094-744DDF6FD544 - e28f450e8c471530"
+                  uuid = "C3FE4DEA-4C18-4438-BA79-D6409A40A221 - 2e6749033a336c82"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Master.KMBrowserWindowController.userInfoButtonAction(__C.NSButton) -&gt; ()"
+                  symbolName = "(1) suspend resume partial function for closure #5 @Sendable () async -&gt; () in PDF_Master.KMConvertBaseWindowController.initSubViews() -&gt; ()"
                   moduleName = "PDF Master"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFTools/Convert/Controller/KMConvertBaseWindowController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "378"
-                  endingLineNumber = "378"
-                  offsetFromSymbolStart = "72">
+                  startingLineNumber = "188"
+                  endingLineNumber = "188"
+                  offsetFromSymbolStart = "52">
                </Location>
                <Location
-                  uuid = "D48EE89C-03C3-42C6-9094-744DDF6FD544 - efe7f030a66c631f"
+                  uuid = "C3FE4DEA-4C18-4438-BA79-D6409A40A221 - c3862932faddd293"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "(3) suspend resume partial function for closure #1 @Sendable () async -&gt; Swift.Optional&lt;__C.NSWindowController&gt; in PDF_Master.KMBrowserWindowController.userInfoButtonAction(__C.NSButton) -&gt; ()"
+                  symbolName = "(2) await resume partial function for closure #5 @Sendable () async -&gt; () in PDF_Master.KMConvertBaseWindowController.initSubViews() -&gt; ()"
                   moduleName = "PDF Master"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFTools/Convert/Controller/KMConvertBaseWindowController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "381"
-                  endingLineNumber = "381"
-                  offsetFromSymbolStart = "136">
+                  startingLineNumber = "188"
+                  endingLineNumber = "188"
+                  offsetFromSymbolStart = "60">
+               </Location>
+               <Location
+                  uuid = "C3FE4DEA-4C18-4438-BA79-D6409A40A221 - e66878c4f7d98884"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "(3) suspend resume partial function for closure #5 @Sendable () async -&gt; () in PDF_Master.KMConvertBaseWindowController.initSubViews() -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFTools/Convert/Controller/KMConvertBaseWindowController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "188"
+                  endingLineNumber = "188"
+                  offsetFromSymbolStart = "68">
                </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "6AD88AEA-EB20-4759-82C5-59ACB53F422B"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/KMLightMember/Manager/KMRequestServerManager.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "367"
+            endingLineNumber = "367"
+            landmarkName = "getUserInfo(complete:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -11901,6 +12335,21 @@
                   endingLineNumber = "150"
                   offsetFromSymbolStart = "92">
                </Location>
+               <Location
+                  uuid = "1FC3D55C-387C-48EB-AF36-44BD2855A9A4 - c854a624a548632b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "closure #1 @Swift.MainActor () -&gt; () in PDF_Master.KMInAppPurchaseManager.handleAction(state: PDF_Master.KMInAppPurchaseState) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "150"
+                  endingLineNumber = "150"
+                  offsetFromSymbolStart = "596">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -11965,6 +12414,21 @@
                   endingLineNumber = "139"
                   offsetFromSymbolStart = "268">
                </Location>
+               <Location
+                  uuid = "F54287D8-E0FD-4B87-8550-9DCF35FCA6DE - a53218931fea1283"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMInAppPurchaseManager.handleAction(state: PDF_Master.KMInAppPurchaseState) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "141"
+                  endingLineNumber = "141"
+                  offsetFromSymbolStart = "248">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -12000,5 +12464,53 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "0AB1607B-0F72-46D5-B3AE-0E2CFE622B58"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/KMLightMember/ThirdPartyLogin/Apple/KMAppleLoginManager.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "60"
+            endingLineNumber = "60"
+            landmarkName = "authorizationController(controller:didCompleteWithAuthorization:)"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "0AB1607B-0F72-46D5-B3AE-0E2CFE622B58 - 6c78c0d6373188ee"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMAppleLoginManager.authorizationController(controller: __C.ASAuthorizationController, didCompleteWithAuthorization: __C.ASAuthorization) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/KMLightMember/ThirdPartyLogin/Apple/KMAppleLoginManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "60"
+                  endingLineNumber = "60"
+                  offsetFromSymbolStart = "516">
+               </Location>
+               <Location
+                  uuid = "0AB1607B-0F72-46D5-B3AE-0E2CFE622B58 - 6c78c0d6373188ee"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMAppleLoginManager.authorizationController(controller: __C.ASAuthorizationController, didCompleteWithAuthorization: __C.ASAuthorization) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/KMLightMember/ThirdPartyLogin/Apple/KMAppleLoginManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "60"
+                  endingLineNumber = "60"
+                  offsetFromSymbolStart = "552">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

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

@@ -1,8 +1,8 @@
 <?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">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22146" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21701"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22146"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>

+ 14 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/Login&Register/View/KMLoginView.swift

@@ -19,6 +19,10 @@ class KMLoginView: KMBaseXibView {
     @IBOutlet weak var emailTextField: FocusAwareTextField!
     @IBOutlet weak var alertLabel: NSTextField!
     
+    @IBOutlet weak var appleLoginButton: NSButton!
+    @IBOutlet weak var googleLoginButton: NSButton!
+    
+    
     var nextButtonVC: KMDesignButton!
     
     var nextAction: KMLoginViewNextAction?
@@ -213,6 +217,16 @@ extension KMLoginView: KMLoginViewAction {
             UserDefaults.standard.synchronize()
         }
     }
+    
+    @IBAction func appleLoginButtonAction(_ sender: Any) {
+        KMLoginManager.manager.login(.apple) { isSuccess, error in
+            
+        }
+    }
+    
+    @IBAction func googleLoginButtonAction(_ sender: Any) {
+            
+    }
 }
 
 //MARK: 权限验证

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

@@ -1,15 +1,17 @@
 <?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">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22146" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21701"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22146"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="KMLoginView" customModule="PDF_Master" customModuleProvider="target">
             <connections>
                 <outlet property="alertLabel" destination="Dmr-1M-Iua" id="HKy-bz-n4Z"/>
+                <outlet property="appleLoginButton" destination="iq4-uJ-ucU" id="z89-Z3-leY"/>
                 <outlet property="emailTextField" destination="ux1-lu-0lN" id="hZI-EL-zYE"/>
+                <outlet property="googleLoginButton" destination="Bfb-EZ-gfe" id="Trm-Iy-xEe"/>
                 <outlet property="loginDescripeLabel" destination="MN2-pV-Yar" id="rtA-IW-YP7"/>
                 <outlet property="nextButton" destination="qvE-sE-RrB" id="k6T-On-qsj"/>
                 <outlet property="registerTextView" destination="iEl-CK-gIF" id="VtM-SJ-hmV"/>
@@ -29,7 +31,7 @@
                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="NfV-rH-QAy">
                             <rect key="frame" x="48" y="213" width="308" height="200"/>
                             <subviews>
-                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oIw-PI-v0k">
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oIw-PI-v0k">
                                     <rect key="frame" x="-2" y="176" width="53" height="24"/>
                                     <textFieldCell key="cell" lineBreakMode="clipping" title="Login" id="mKW-bz-mKm">
                                         <font key="font" metaFont="system" size="20"/>
@@ -43,8 +45,8 @@
                                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="oZ4-WS-K2q">
                                     <rect key="frame" x="0.0" y="84" width="308" height="60"/>
                                     <subviews>
-                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-pV-Yar">
-                                            <rect key="frame" x="-2" y="44" width="124" height="16"/>
+                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-pV-Yar">
+                                            <rect key="frame" x="-2" y="44" width="125" height="16"/>
                                             <textFieldCell key="cell" lineBreakMode="clipping" title="Enter email account" id="Q1t-he-m3U">
                                                 <font key="font" metaFont="system"/>
                                                 <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -54,7 +56,7 @@
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="Qkr-ZD-SqP">
                                             <rect key="frame" x="0.0" y="4" width="308" height="32"/>
                                             <subviews>
-                                                <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ux1-lu-0lN" customClass="FocusAwareTextField" customModule="PDF_Master" customModuleProvider="target">
+                                                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ux1-lu-0lN" customClass="FocusAwareTextField" customModule="PDF_Master" customModuleProvider="target">
                                                     <rect key="frame" x="8" y="5" width="292" height="22"/>
                                                     <constraints>
                                                         <constraint firstAttribute="height" constant="22" id="Uru-Xo-pog"/>
@@ -86,7 +88,7 @@
                                         <constraint firstItem="Qkr-ZD-SqP" firstAttribute="top" secondItem="MN2-pV-Yar" secondAttribute="bottom" constant="8" id="zPb-fe-RCb"/>
                                     </constraints>
                                 </customView>
-                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dmr-1M-Iua">
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dmr-1M-Iua">
                                     <rect key="frame" x="-2" y="66" width="266" height="16"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="262" id="TzO-iz-HUf"/>
@@ -114,9 +116,6 @@
                             <subviews>
                                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qvE-sE-RrB">
                                     <rect key="frame" x="48" y="36" width="308" height="32"/>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="32" id="7sU-kL-22j"/>
-                                    </constraints>
                                     <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" alignment="center" enabled="NO" imageScaling="proportionallyDown" inset="2" id="0Zf-nU-w6r">
                                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" metaFont="system"/>
@@ -124,6 +123,9 @@
 DQ
 </string>
                                     </buttonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="32" id="7sU-kL-22j"/>
+                                    </constraints>
                                 </button>
                                 <scrollView borderType="none" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" hasVerticalScroller="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4Jh-0w-5Hf">
                                     <rect key="frame" x="48" y="4" width="308" height="24"/>
@@ -167,11 +169,43 @@ DQ
                                 <constraint firstItem="qvE-sE-RrB" firstAttribute="leading" secondItem="UB6-Hp-ebR" secondAttribute="leading" constant="48" id="hgI-u3-JWT"/>
                             </constraints>
                         </customView>
+                        <button translatesAutoresizingMaskIntoConstraints="NO" id="iq4-uJ-ucU">
+                            <rect key="frame" x="172" y="40" width="60" height="60"/>
+                            <buttonCell key="cell" type="square" title="Apple" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="Wm5-iW-N6G">
+                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                <font key="font" metaFont="system"/>
+                            </buttonCell>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="60" id="Qpe-OY-Qxr"/>
+                                <constraint firstAttribute="width" constant="60" id="iDm-4b-bwv"/>
+                            </constraints>
+                            <connections>
+                                <action selector="appleLoginButtonAction:" target="-2" id="hfv-Mk-Rdb"/>
+                            </connections>
+                        </button>
+                        <button translatesAutoresizingMaskIntoConstraints="NO" id="Bfb-EZ-gfe">
+                            <rect key="frame" x="248" y="40" width="60" height="60"/>
+                            <buttonCell key="cell" type="square" title="Google" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="xZ5-Ax-aVO">
+                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                <font key="font" metaFont="system"/>
+                            </buttonCell>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="60" id="ScM-B8-NCb"/>
+                                <constraint firstAttribute="width" constant="60" id="wfE-li-eAz"/>
+                            </constraints>
+                            <connections>
+                                <action selector="googleLoginButtonAction:" target="-2" id="fxv-6k-COY"/>
+                            </connections>
+                        </button>
                     </subviews>
                     <constraints>
+                        <constraint firstItem="Bfb-EZ-gfe" firstAttribute="top" secondItem="UB6-Hp-ebR" secondAttribute="bottom" constant="16" id="1Wc-AC-SY4"/>
                         <constraint firstAttribute="trailing" secondItem="UB6-Hp-ebR" secondAttribute="trailing" id="GvZ-RD-n3Q"/>
                         <constraint firstAttribute="trailing" secondItem="NfV-rH-QAy" secondAttribute="trailing" constant="48" id="HS3-1m-D4j"/>
+                        <constraint firstItem="iq4-uJ-ucU" firstAttribute="centerX" secondItem="tLe-UW-r6i" secondAttribute="centerX" id="KVO-gj-4tq"/>
                         <constraint firstAttribute="bottom" secondItem="UB6-Hp-ebR" secondAttribute="bottom" constant="116" id="KYa-KH-hBG"/>
+                        <constraint firstItem="Bfb-EZ-gfe" firstAttribute="leading" secondItem="iq4-uJ-ucU" secondAttribute="trailing" constant="16" id="PRG-0D-KQX"/>
+                        <constraint firstItem="iq4-uJ-ucU" firstAttribute="top" secondItem="UB6-Hp-ebR" secondAttribute="bottom" constant="16" id="Vhy-Gt-lDW"/>
                         <constraint firstItem="NfV-rH-QAy" firstAttribute="top" secondItem="tLe-UW-r6i" secondAttribute="top" constant="48" id="bYL-gg-eup"/>
                         <constraint firstItem="NfV-rH-QAy" firstAttribute="leading" secondItem="tLe-UW-r6i" secondAttribute="leading" constant="48" id="d0S-uE-l2R"/>
                         <constraint firstItem="UB6-Hp-ebR" firstAttribute="leading" secondItem="tLe-UW-r6i" secondAttribute="leading" id="kOk-GC-pP5"/>

+ 93 - 0
PDF Office/PDF Master/Class/KMLightMember/ThirdPartyLogin/Apple/KMAppleLoginManager.swift

@@ -0,0 +1,93 @@
+//
+//  KMAppleLoginManager.swift
+//  PDF Master
+//
+//  Created by lizhe on 2023/8/11.
+//
+
+import Foundation
+import AuthenticationServices
+
+enum KMAppleLoginErrorType: String, CaseIterable {
+    case unknown = "unknown"
+    case failed = "Authorization failed" //"授权失败"
+    case notHandled = "Failed to process authorization request" // "未能处理授权请求"
+    case invalidResponse = "Invalid response to authorization request" // "授权请求响应无效"
+    case requestFailed = "Authorization request failed" //"授权请求失败"
+    case cancel = "Cancel authorization." //"取消授权"
+}
+
+typealias KMAppleLoginCompletion = (_ user: String, _ token: String, _ error: KMAppleLoginErrorType) -> Void
+
+class KMAppleLoginManager: NSObject {
+    static let manager = KMAppleLoginManager()
+    
+    private var loginCompletion: KMAppleLoginCompletion?
+    
+    func login(_ completion: @escaping KMAppleLoginCompletion) {
+        self.loginCompletion = completion
+        let provider = ASAuthorizationAppleIDProvider.init()
+        let request = provider.createRequest()
+        let controller = ASAuthorizationController.init(authorizationRequests: [request])
+        controller.delegate = self
+//        controller.presentationContextProvider = self
+        controller.performRequests()
+    }
+}
+
+extension KMAppleLoginManager: ASAuthorizationControllerDelegate {
+    func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
+        
+        var errorType: KMAppleLoginErrorType = .unknown
+        switch error._code {
+        case ASAuthorizationError.Code.canceled.rawValue:
+            errorType = .cancel
+        case ASAuthorizationError.Code.failed.rawValue:
+            errorType = .requestFailed
+        case ASAuthorizationError.Code.invalidResponse.rawValue:
+            errorType = .invalidResponse
+        case ASAuthorizationError.Code.notHandled.rawValue:
+            errorType = .notHandled
+        default:
+            errorType = .failed
+        }
+        
+        guard let callBack = self.loginCompletion else { return }
+        callBack("", "", errorType)
+    }
+    
+    func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
+        if authorization.credential is ASAuthorizationAppleIDCredential {   // 登录
+            let credential = authorization.credential as! ASAuthorizationAppleIDCredential
+            let user = credential.user
+            let fullName = credential.fullName
+            let email = credential.email
+            let state = credential.state
+            let identityToken = credential.identityToken
+            let token = String.init(data: identityToken ?? Data(), encoding: .utf8)
+            
+            debugPrint("apple login success")
+            guard let callBack = self.loginCompletion else { return }
+            guard let resultToken = token else { return }
+            
+            callBack(user, resultToken, .unknown)
+        } else if authorization.credential is ASPasswordCredential {  // 使用现有的iCloud密钥链凭证登录。
+//            let credential = authorization.credential as! ASPasswordCredential
+//            let user = credential.user
+//            let password = credential.password
+            debugPrint("apple login failed")
+            guard let callBack = self.loginCompletion else { return }
+            callBack("", "", .failed)
+        } else {
+            debugPrint("apple login failed")
+            guard let callBack = self.loginCompletion else { return }
+            callBack("", "", .failed)
+        }
+    }
+}
+
+//extension KMAppleLoginManager: ASAuthorizationControllerPresentationContextProviding {
+//    func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor {
+//        return self.view.window!
+//    }
+//}

+ 36 - 0
PDF Office/PDF Master/Class/KMLightMember/ThirdPartyLogin/KMLoginManager.swift

@@ -0,0 +1,36 @@
+//
+//  KMLoginManager.swift
+//  PDF Master
+//
+//  Created by lizhe on 2023/8/11.
+//
+
+import Foundation
+typealias KMLoginCompletion = (_ isSuccess: Bool, _ error: KMAppleLoginErrorType) -> Void
+
+
+enum KMLoginInputType: Int, CaseIterable {
+    case apple = 0
+    case google = 1
+}
+
+class KMLoginManager: NSObject {
+    static let manager = KMLoginManager()
+    
+    private var loginCompletion: KMLoginCompletion?
+}
+
+extension KMLoginManager {
+    func login(_ inputType: KMLoginInputType, _ completion: @escaping KMLoginCompletion) {
+        self.loginCompletion = completion
+        
+        if inputType == .apple {
+            KMAppleLoginManager.manager.login { [weak self] user, token, error in
+                if token.count != 0 {
+                    guard let callBack = self?.loginCompletion else { return }
+                    callBack(true, .unknown)
+                }
+            }
+        }
+    }
+}

+ 4 - 0
PDF Office/PDF Master/PDF_Master.entitlements

@@ -2,6 +2,10 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>com.apple.developer.applesignin</key>
+	<array>
+		<string>Default</string>
+	</array>
 	<key>com.apple.security.app-sandbox</key>
 	<true/>
 	<key>com.apple.security.files.user-selected.read-write</key>