From 58e642db55af9dc9540c9a934f01e0f92547e15c Mon Sep 17 00:00:00 2001 From: Michael Liberatore Date: Tue, 15 Sep 2020 12:13:47 -0400 Subject: [PATCH 01/13] Adds ScreenshotDetector to Podfile and runs bundle exec pod install on Example app --- Example/Podfile | 1 + Example/Podfile.lock | 4 +- Example/Pods/Manifest.lock | 4 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 732 +++++++++--------- .../PinpointKit/PinpointKit.xcconfig | 2 +- 5 files changed, 382 insertions(+), 361 deletions(-) diff --git a/Example/Podfile b/Example/Podfile index 9c8a1f9..0a04ce3 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -3,6 +3,7 @@ use_frameworks! target 'PinpointKitExample' do pod 'PinpointKit', :path => '../' + pod 'PinpointKit/ScreenshotDetector', :path => '../' pod 'SwiftLint', '0.25.1' end diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 528671c..9849276 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -2,10 +2,12 @@ PODS: - PinpointKit (1.4.0): - PinpointKit/Core (= 1.4.0) - PinpointKit/Core (1.4.0) + - PinpointKit/ScreenshotDetector (1.4.0) - SwiftLint (0.25.1) DEPENDENCIES: - PinpointKit (from `../`) + - PinpointKit/ScreenshotDetector (from `../`) - SwiftLint (= 0.25.1) SPEC REPOS: @@ -20,6 +22,6 @@ SPEC CHECKSUMS: PinpointKit: a33c929c2e9c3b7d9a1a343fd309161b71c02d06 SwiftLint: ce933681be10c3266e82576dad676fa815a602e9 -PODFILE CHECKSUM: 24af8a2ca63352a72ca1cd13fc8977477eae3a12 +PODFILE CHECKSUM: 7151adb25b0fd3d5d6d044a3204912bb268baff2 COCOAPODS: 1.5.0 diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 528671c..9849276 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -2,10 +2,12 @@ PODS: - PinpointKit (1.4.0): - PinpointKit/Core (= 1.4.0) - PinpointKit/Core (1.4.0) + - PinpointKit/ScreenshotDetector (1.4.0) - SwiftLint (0.25.1) DEPENDENCIES: - PinpointKit (from `../`) + - PinpointKit/ScreenshotDetector (from `../`) - SwiftLint (= 0.25.1) SPEC REPOS: @@ -20,6 +22,6 @@ SPEC CHECKSUMS: PinpointKit: a33c929c2e9c3b7d9a1a343fd309161b71c02d06 SwiftLint: ce933681be10c3266e82576dad676fa815a602e9 -PODFILE CHECKSUM: 24af8a2ca63352a72ca1cd13fc8977477eae3a12 +PODFILE CHECKSUM: 7151adb25b0fd3d5d6d044a3204912bb268baff2 COCOAPODS: 1.5.0 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 96e48c1..45b5292 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,71 +7,73 @@ objects = { /* Begin PBXBuildFile section */ - 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */; }; + 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; + 08056AEFACF3FED8F0CA862948A8AF4D /* PinpointKit.h in Headers */ = {isa = PBXBuildFile; fileRef = E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B0E4B6B12278ED287EB64BC1567BFAA /* InterfaceCustomizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */; }; + 1049CB571DF5FE98FF647934266EF277 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */; }; + 13B139DFEDC466217F2F0991B61A3B3F /* Editor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */; }; + 14D99C0D90E43E8B507E4287DA4DE033 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */; }; 15FE598A776E6E89D656F15961C577BE /* Pods-PinpointKitExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */; }; - 190C3089FF13B86AF4AF4B609AE8F16D /* StrokeLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1431876B7BC76FDDDE604094B7DC491B /* StrokeLayoutManager.swift */; }; - 1EC5611C41921D5E5FD37DC30918723E /* UIView+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CA66761C7D9197C2364A1E173D9E26A /* UIView+PinpointKit.swift */; }; - 1F0B93A1A1CBC81CB2485FE3BF6AA925 /* ASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = AE11409F1492BCA70A73E93C5C85F61D /* ASLLogger.m */; }; - 22AE8CDDCD0F380D2860903D7C970FB7 /* LogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1409EFC284A322894C04EE75B893B0D /* LogCollector.swift */; }; - 2A616C9BEAEA07B9E52E6D97BDC560AA /* ShakeDetectingWindowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D4BD74A19B6CF650D80FF631A66467D /* ShakeDetectingWindowDelegate.swift */; }; - 2C96653C4721BDEEB7B15C842D44AD95 /* Editor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26F4D76B313CC2C9B0784BEA95093715 /* Editor.swift */; }; - 2E253F9DCD013504F36D54760666DF77 /* LogSupporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = B314898B993EAB442FFFE652B7A805E1 /* LogSupporting.swift */; }; - 311E142970F18B5734A702827CD3A758 /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = E334BD6C24DA15656F2A4F49B309C958 /* SourceSansPro-Regular.ttf */; }; - 327D95B82D84A1C0FE261DEDF3833466 /* UIGestureRecognizer+FailRecognizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02556F4959ABD4DA3B2C14629CAB33F9 /* UIGestureRecognizer+FailRecognizing.swift */; }; - 36F0E7A1756294F82BB4566BFD6989A6 /* Screenshotter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0B9D23387D65BEEAA1060DF8E1435E1 /* Screenshotter.swift */; }; - 3D563DBF770AF170E7CFA63D278AAC3B /* EditImageViewControllerBarButtonItemProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1571D749AC0348FD5F88D5C830E00B61 /* EditImageViewControllerBarButtonItemProviding.swift */; }; - 3EA169A7BE12FF8D632E9FF2C197C242 /* UIColor+Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23B7EC7C7752576BC0E8CA669432B801 /* UIColor+Palette.swift */; }; - 438597D9208F5128B7FF2AE6A0C83170 /* AnnotationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7079189F26B2E4B24BA505DD2F8466F /* AnnotationsView.swift */; }; - 43FB4DE1A656C6AEABB5E9362EAE5291 /* EditorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E39150B97DA9F28E3498F9DA452BA4 /* EditorDelegate.swift */; }; - 477CE286A5197C18C273B0716C5E56AA /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCC9DFE70A35B1C9D56C07C8E27586F5 /* MessageUI.framework */; }; - 492A18A04B511F8960FB56410A90B71F /* SuccessType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75AFA24126628DC1FE801AF553F342B1 /* SuccessType.swift */; }; - 4A010F621B25BC96ABFD0AA9F66FC698 /* ShakeDetectingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15AD05FF662D619BE274B98D2D24BFA0 /* ShakeDetectingWindow.swift */; }; - 4B082E16E58550C176DAEBD112BE5747 /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3003D7BE90B8A01FC115684F230C6341 /* PinpointKit.xcassets */; }; - 4DC567BC9679DD15E54FF0BC2D24A583 /* AnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80837CB18B5C2EB52C31363C5714141C /* AnnotationView.swift */; }; - 4EE0F6F971753AD8DCDF7CA1C78C71DE /* PinpointKit+ShakePresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0987188EA3ED83EE724FA2ABE21383B /* PinpointKit+ShakePresentation.swift */; }; - 4F5C31FAA9A7D1DBF692B97745336421 /* KeyboardAvoider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EABD5DEFA1EF582E27B454D69953D11 /* KeyboardAvoider.swift */; }; - 50E39F7BFE3337933FFAF99287368E76 /* FeedbackCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70DC07A9F0539B7448C64EA6B18D761A /* FeedbackCollector.swift */; }; - 544A06EF131EFBBF9AC2126C224A365A /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31960227E584348F53A8265F461AC5AC /* FeedbackViewController.swift */; }; - 640F4E58B57612A4863B5DF5D8C5B29E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */; }; - 687C04050F836477B111FCC444C1BFD2 /* BlurAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8402896BFCC3642F8E27CE6A065E7993 /* BlurAnnotationView.swift */; }; - 68955EE8C6CE7AE3223A7A6EE38E7002 /* FeedbackConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5687EDAF95DC76F30A5CAD49E01AE887 /* FeedbackConfiguration.swift */; }; - 6DE352A3DE9996520F2E7EB6F4527723 /* BarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9645616158FCD460F41C8C58EA8331B2 /* BarButtonItem.swift */; }; - 6F91C631D4EC47731A8EE00A1937B425 /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = A12089A08EF6E4E304BC40B880F1C276 /* MIMEType.swift */; }; - 6FA56DE1FBDD2A0CFA22D51D312D817F /* FeedbackTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F1FC8C5DE1A8716B5EFE846D811FA95 /* FeedbackTableViewDataSource.swift */; }; + 177CAD38810AAED381B406A596ECB85A /* UIView+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEF8952D9E3125C1221BA915903E2D4B /* UIView+PinpointKit.swift */; }; + 214174089D52F467AA533B24873D438F /* BlurAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B333E0EF66528DC812FF53EB78C35F8B /* BlurAnnotationView.swift */; }; + 2AE1CC11F598D66E0D369BBC77D537A2 /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */; }; + 31AB0E0CE9539906C6DEFE97242E22B7 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A4A16F567B3816EB06D7CCD395BB670 /* Configuration.swift */; }; + 3C76E86EB2681F14B8CCB5E58C2C32C2 /* AnnotationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */; }; + 3F444F4F8FB3310D241B2B85C56403D0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */; }; + 42FD3708CB25BAD560937283F5220724 /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */; }; + 43025B04F5328ED323A85A426DBC9655 /* FeedbackCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */; }; + 48DE0D08E6A7D14587F8CEEB6BA0B135 /* PinpointKit+ShakePresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */; }; + 4A70ECDEE19D16C5454939EE969D42F4 /* SuccessType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821669675B1755221575325BE463705D /* SuccessType.swift */; }; + 5399D8C30EA2556572EB8C0E988BC492 /* ASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8609242033254E0EFDD43E0C722BB8BA /* ASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58279D58C4C9C24602FDE4C866FCD82A /* ShakeDetectingWindowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6CF08B0132F5D100DFB5DB4892088BC /* ShakeDetectingWindowDelegate.swift */; }; + 5ABC1FEB8E81BCA4E034307F381B6F99 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */; }; + 5CB89166F21AB8870C035B2BBE27B932 /* FeedbackTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDD286BE3886B52010598D4CAE29A81 /* FeedbackTableViewDataSource.swift */; }; + 5E504640E3E520BDB82B0EF0ACC6192A /* UIGestureRecognizer+FailRecognizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79A4E9BB9E63817933E58AA723294E60 /* UIGestureRecognizer+FailRecognizing.swift */; }; + 634F19E8CABEC39449190BD2058D099A /* TextAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F9390D90542433BA8E137C6993930A9 /* TextAnnotationView.swift */; }; 7201B090132223218051A872C4BDA5D9 /* Pods-PinpointKitExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7339E7A595E0CAF6702FFAD60FCD5D7D /* TextAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 180ACFF870D9ED7234CBD7503CD9265D /* TextAnnotationView.swift */; }; - 733DB08BCA4B288F73DCA02614EBB013 /* LogViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18309B67A03316352ABDDA0BAF2DC2CF /* LogViewer.swift */; }; - 76FEFA36FA089B012BDCC32067BBC04E /* CheckmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B932E629F980020571DD484C58C3E280 /* CheckmarkCell.swift */; }; - 84453A1054042F1B21A00D5F5A9223D1 /* ASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D2FF389C174AF86CDC69523123B0CDB /* ASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 84A73C8E2E35B259ED675BA88C1B4267 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8191274E9EE6BEB64155853C0A5BC0AC /* Sender.swift */; }; - 8628B516F3697C973719094520E408EE /* AnnotationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 379EE0640D67DCF599AFC9CE018015CB /* AnnotationViewFactory.swift */; }; - 886F3D053A9FA92DE3E53CCF0E5ACC8C /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73216502745DEA689790BC09AE053707 /* Configuration.swift */; }; - 8E3AAB3C11D33641260D4FA99D189463 /* BezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4312F20E5920871682919138B36D14E9 /* BezierPath.swift */; }; - 8E4294EE0330D220947F74898809E812 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF9588E8D07DD4BDDDB4E91AC8D41538 /* NavigationController.swift */; }; - 9095651C498EABD1D7E2911F03D5198A /* SourceSansPro-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B5C4CA2553793DA257689AD6CE78C56C /* SourceSansPro-Semibold.ttf */; }; - 93497D48EBE2E9BB0B81C7A92A28FD90 /* PinpointKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE75659618FF0482E28B29786972EB21 /* PinpointKit-dummy.m */; }; - 959E11680CFF6770C2CDCF70704073CB /* Annotations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28FAB9FF56EE10C26DCA5DB309AAFE27 /* Annotations.swift */; }; - 9768695F13681DEB8FA08B0DB44486A3 /* SystemLogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16983DE02892C7623CE4AC524D69A53 /* SystemLogCollector.swift */; }; - 9828EC589A1860C24953383D204BB241 /* PinpointKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D70AA6D401751FF12DF1877EEBA63297 /* PinpointKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DA24D9942244A970505575AF9C926FB /* FeedbackNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23809C2ECD6D081A51823DA8CA7811B /* FeedbackNavigationController.swift */; }; - A53DFCD66AB042B8C354332080099EB1 /* BoxAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17C206B06256E027D6524865A677BEC0 /* BoxAnnotationView.swift */; }; - A8BB7B4426E76E82D79D9CF8B8ACB157 /* ScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B07DE547D57814924E65E055C27DFC5 /* ScreenshotCell.swift */; }; - ABC29004EAAC5A4E29DA9A60CB97E47B /* PinpointKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C82FAA3A46DFCCF4732499CAAD099AA /* PinpointKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B52D585358DBCD46EF787F40CD62FB60 /* PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 728DB7C20BBC431552474C3DFC4F1D5C /* PinpointKit.swift */; }; - C02B8980A89C60D3C95F6222D8BF2A44 /* MailSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = E42B71BCC2909C871AEE75204F8B0F6E /* MailSender.swift */; }; - D67408C62D0FB1F6CFC37D0FCF9DFB19 /* EditImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A170EFB140353EC0C55B17D632ED4B53 /* EditImageViewController.swift */; }; - DEEA1D06FD17E8BB53A84849AF1CA666 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0952F9B52A5DA37449AF14A1EA391B /* UIKit.framework */; }; - E477B03672E682B73B367C37410F1C21 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 736B91A6711BDAF01732E502C6BF9C6F /* Feedback.swift */; }; - E5226ABD9D10AEA052A9617624BEE0A6 /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 203D8212E29371F38C4DB4E3BCEC7082 /* Fonts.swift */; }; - E9A3CB58177E30C07EF8E65D613BA6DA /* NSBundle+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3485FB818A7BB9F6B272428F73D3BDD /* NSBundle+PinpointKit.swift */; }; - EDB8B6E6FB5F72DCC0E09C2A4C3BBEBE /* ArrowAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3891D91CE129CAF1343139D685830F03 /* ArrowAnnotationView.swift */; }; - F025918332A3D23BDB3D9310E4AF7351 /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FE7D863B542BF040C7ADE0603F88984 /* Tool.swift */; }; - F25AEBFAD3E95D2B41CB279397C0B40D /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA28E9A868107C1DD9E805FFAE9D5746 /* UIBarButtonItem+TitleTextAttributeStates.swift */; }; - F2ACB339E62F889729EDA7B25E3E1E95 /* InterfaceCustomizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 618F3CAB614910C598CC27A94F7F38CA /* InterfaceCustomizable.swift */; }; - F660AAE2F3E34F081B3D0E86061B75DA /* InterfaceCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1754B5B1176720C013796502290F3B13 /* InterfaceCustomization.swift */; }; - F66121D202FA3BE2EF9AC02FDC0E5B5C /* SourceSansPro-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 048E3E0B219F8E74673CA3E6B8EA9690 /* SourceSansPro-Bold.ttf */; }; - FA1E0D49274A1FDA23AF1581B140201E /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA4F353285BE1B32417F43EFCBB714DC /* Screen.swift */; }; - FCECA4F34938D9732045FFF0C24BF3E1 /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5032EE02BCED9C798618C18C3BC04D53 /* BasicLogViewController.swift */; }; + 722B49F4F4E9E0CA7FDD585FE23F6C34 /* SourceSansPro-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */; }; + 772CF5C65250FF4626497495FCF99FF7 /* EditImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF520F8543F311F26584F77DFF7BB650 /* EditImageViewController.swift */; }; + 78C1BDF5DAA5857B1D1825731ED47066 /* ScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */; }; + 7A330C234590067F9AABFFECF26A373C /* KeyboardAvoider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */; }; + 86262A2E2FA3B423DA7B581CBD3F6EC9 /* Annotations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */; }; + 9ABBE0161CA0924D820EE0E11FC713FE /* ArrowAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70F5E7833FD6FCA0E5FAA4EFC590896C /* ArrowAnnotationView.swift */; }; + 9BC38233B72752F33B94E89DF87574AF /* SourceSansPro-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */; }; + A30E4B1C8DB07D8935243B54A238BA4F /* UIColor+Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = B38B67288C6F1ED3EE92AA6A5AD2E9A1 /* UIColor+Palette.swift */; }; + A36A22039CC7A5340F4B51E7D2C7E795 /* BezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DC35FE57A10FDCBB4D1633E94D586F1 /* BezierPath.swift */; }; + A38D28B134E0146D5F6A777652380823 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */; }; + A830F77E31F907FEB2C87ACCA05CF802 /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA207E322FDE20900695705BA22A88FF /* Fonts.swift */; }; + A8A6746F1CBC24A44F738F0BD004E58B /* AnnotationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */; }; + A8E452B5C1C97599B72818DA307B760F /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */; }; + A933F7AEEBDE1BEAAC0C96115CE942B0 /* BoxAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0E51776E4A07A58BE4A29DABEAEC45D /* BoxAnnotationView.swift */; }; + ACF949071465F3992900CBF8845867BF /* LogViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E70FFD57FCC9BAEF5014FB1B9413B7A /* LogViewer.swift */; }; + AD67AB45D7ADD63DDB00FEBDE6FDFF7B /* ASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D17AC19ABFB54DDF81A2D8D2C5F8B29 /* ASLLogger.m */; }; + AE30940E7272CAC1416551E290FDE507 /* Screenshotter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */; }; + B11A413C80C7A925273C5AE1C818F9FE /* PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */; }; + B38D162DAB2634637B051DE42C306B51 /* ScreenshotDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26C65CBF4808D6AF8B56952546FFEDA7 /* ScreenshotDetector.swift */; }; + B3ADED1A1D1EAD2B07EC424F158C0649 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */; }; + B4A2EA6E6A0046B45F9BDEA734F02801 /* FeedbackConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */; }; + B4BE0B879877F8BA32E3FB5645B4717A /* MailSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */; }; + B5FA04152DD8A673E9DAF8B1D2EF909F /* StrokeLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72414EF0D10097444716FB9576A1C867 /* StrokeLayoutManager.swift */; }; + B9A6FDFB752869C2852411B5E40EBE60 /* PinpointKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DBA3676F5598C68F291ACEE496E5449E /* PinpointKit-dummy.m */; }; + B9AA6AF9EB971C858368711BCDF5390A /* NSBundle+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311974FA8AC8D65E1C793A8D47D47A09 /* NSBundle+PinpointKit.swift */; }; + BD851EF373E5BC00A537C6A2090A4A6B /* LogSupporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */; }; + C236F6FB31F89D594E1C42D1DF83DCA2 /* LogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */; }; + C53B0960AB64FF45DE8C3B9FC435BEC4 /* AnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D52B806A20A17792401AD1F0CE16D6E /* AnnotationView.swift */; }; + C74CAC8DFF8B3F3FC8FECD254FB6B94E /* InterfaceCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25B1E4158382AED3473FA8BA35702747 /* InterfaceCustomization.swift */; }; + CD3056E774AEE082DF089C1F411B6979 /* PinpointKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5243BBD5A4B0C9A5417ACC19B70E4E8 /* FeedbackNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */; }; + D57E0D9ABA5921E4BA0C2C8168B8F6DC /* ShakeDetectingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */; }; + D6ACE892E5917FB3FD3BA713D325463C /* BarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */; }; + D82135030FC1B965720C15945B34977C /* CheckmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BFC504C61DC3A179069E4415CD6AE04 /* CheckmarkCell.swift */; }; + D9FE5E1D8AECB6C9979181AFEF4F781D /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */; }; + DBE20F6C62F3AE49C6B8C4315ED7A498 /* SystemLogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E5B0B80F90B799E9FC32252705A323 /* SystemLogCollector.swift */; }; + DD72E1ABD053865C06E69A2C15F48F4C /* EditorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D1E05C4FCDDD8ECD7662BB9B62D8AC2 /* EditorDelegate.swift */; }; + E325016BE5CA51D7E56529C392AE2011 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */; }; + E53AAB111783AA2CA4D1C71DDFE2DC23 /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */; }; + E761507BF5971326A49DF213AFBBB81B /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */; }; + F9EFFAD1D945A97BB0B6BD80B160DF2E /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */; }; + FEA0817F607EA1B754E36501860D5DC0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; + FFA525D0CA2EC303F85A91527D3410C5 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -79,112 +81,115 @@ isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 74EF4866D3C70A92D70DA54E177D3738; + remoteGlobalIDString = 2BF73340F09BA2FFDE2CDB776DEB52C5; remoteInfo = PinpointKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PinpointKit.framework; path = PinpointKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 02556F4959ABD4DA3B2C14629CAB33F9 /* UIGestureRecognizer+FailRecognizing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+FailRecognizing.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIGestureRecognizer+FailRecognizing.swift"; sourceTree = ""; }; - 048E3E0B219F8E74673CA3E6B8EA9690 /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; + 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; + 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; 0A3984A794B8C50CF8A494535648E07D /* Pods-PinpointKitExample-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-resources.sh"; sourceTree = ""; }; 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.debug.xcconfig"; sourceTree = ""; }; - 0C82FAA3A46DFCCF4732499CAAD099AA /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; - 0D4BD74A19B6CF650D80FF631A66467D /* ShakeDetectingWindowDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindowDelegate.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindowDelegate.swift; sourceTree = ""; }; - 0EABD5DEFA1EF582E27B454D69953D11 /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; - 0F8AE2A48FCCFE11832030C700DD7F5A /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; - 1431876B7BC76FDDDE604094B7DC491B /* StrokeLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeLayoutManager.swift; path = PinpointKit/PinpointKit/Sources/Core/StrokeLayoutManager.swift; sourceTree = ""; }; - 1571D749AC0348FD5F88D5C830E00B61 /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; - 15AD05FF662D619BE274B98D2D24BFA0 /* ShakeDetectingWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindow.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindow.swift; sourceTree = ""; }; - 1754B5B1176720C013796502290F3B13 /* InterfaceCustomization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomization.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift; sourceTree = ""; }; - 17C206B06256E027D6524865A677BEC0 /* BoxAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BoxAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BoxAnnotationView.swift; sourceTree = ""; }; - 180ACFF870D9ED7234CBD7503CD9265D /* TextAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/TextAnnotationView.swift; sourceTree = ""; }; - 18309B67A03316352ABDDA0BAF2DC2CF /* LogViewer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogViewer.swift; path = PinpointKit/PinpointKit/Sources/Core/LogViewer.swift; sourceTree = ""; }; - 1A56764F4F1609E980341799CD1C8213 /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; - 203D8212E29371F38C4DB4E3BCEC7082 /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; - 20B27210C764A5BA8A50504377524D2E /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; - 23B7EC7C7752576BC0E8CA669432B801 /* UIColor+Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIColor+Palette.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIColor+Palette.swift"; sourceTree = ""; }; - 26F4D76B313CC2C9B0784BEA95093715 /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; - 28FAB9FF56EE10C26DCA5DB309AAFE27 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; + 1BFC504C61DC3A179069E4415CD6AE04 /* CheckmarkCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CheckmarkCell.swift; path = PinpointKit/PinpointKit/Sources/Core/CheckmarkCell.swift; sourceTree = ""; }; + 1C17F143A14857DBB529CD2152C9730C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 1F9390D90542433BA8E137C6993930A9 /* TextAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/TextAnnotationView.swift; sourceTree = ""; }; + 25B1E4158382AED3473FA8BA35702747 /* InterfaceCustomization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomization.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift; sourceTree = ""; }; + 26C65CBF4808D6AF8B56952546FFEDA7 /* ScreenshotDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotDetector.swift; path = PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift; sourceTree = ""; }; + 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screen.swift; path = PinpointKit/PinpointKit/Sources/Core/Screen.swift; sourceTree = ""; }; + 2A4A16F567B3816EB06D7CCD395BB670 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PinpointKit/PinpointKit/Sources/Core/Configuration.swift; sourceTree = ""; }; + 2D52B806A20A17792401AD1F0CE16D6E /* AnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationView.swift; sourceTree = ""; }; 2FC5CAA91B7D788B096A7564D11AAF2F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3003D7BE90B8A01FC115684F230C6341 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; - 31960227E584348F53A8265F461AC5AC /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; + 311974FA8AC8D65E1C793A8D47D47A09 /* NSBundle+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/NSBundle+PinpointKit.swift"; sourceTree = ""; }; + 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindow.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindow.swift; sourceTree = ""; }; 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PinpointKitExample-dummy.m"; sourceTree = ""; }; - 379EE0640D67DCF599AFC9CE018015CB /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; - 3891D91CE129CAF1343139D685830F03 /* ArrowAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrowAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/ArrowAnnotationView.swift; sourceTree = ""; }; + 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; + 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; 3F135D9D2859350E531F62C2FF9E079A /* Pods-PinpointKitExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PinpointKitExample.modulemap"; sourceTree = ""; }; - 40D1ED5B74B6FABE2530E111FD457A69 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - 4312F20E5920871682919138B36D14E9 /* BezierPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BezierPath.swift; path = PinpointKit/PinpointKit/Sources/Core/BezierPath.swift; sourceTree = ""; }; - 4B07DE547D57814924E65E055C27DFC5 /* ScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/ScreenshotCell.swift; sourceTree = ""; }; - 4FE7D863B542BF040C7ADE0603F88984 /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; - 5032EE02BCED9C798618C18C3BC04D53 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; - 5687EDAF95DC76F30A5CAD49E01AE887 /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; - 5BB28BB51E690F6DBD634842E54D60A1 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5CA66761C7D9197C2364A1E173D9E26A /* UIView+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIView+PinpointKit.swift"; sourceTree = ""; }; - 618F3CAB614910C598CC27A94F7F38CA /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; + 3FDBF98DB897AF834A42D7098334C8CE /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; path = PinpointKit.podspec.json; sourceTree = ""; }; + 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; + 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; + 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; + 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; + 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; + 5B1D9132A3BF861067D1A5A4F850939F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; + 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; + 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; + 6D17AC19ABFB54DDF81A2D8D2C5F8B29 /* ASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ASLLogger.m; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.m; sourceTree = ""; }; + 6D1E05C4FCDDD8ECD7662BB9B62D8AC2 /* EditorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditorDelegate.swift; sourceTree = ""; }; 6F799E3827193EF1AF1D3B405780DEDB /* Pods-PinpointKitExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PinpointKitExample-acknowledgements.markdown"; sourceTree = ""; }; - 70DC07A9F0539B7448C64EA6B18D761A /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; - 728DB7C20BBC431552474C3DFC4F1D5C /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; - 73216502745DEA689790BC09AE053707 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PinpointKit/PinpointKit/Sources/Core/Configuration.swift; sourceTree = ""; }; - 736B91A6711BDAF01732E502C6BF9C6F /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; - 75AFA24126628DC1FE801AF553F342B1 /* SuccessType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuccessType.swift; path = PinpointKit/PinpointKit/Sources/Core/SuccessType.swift; sourceTree = ""; }; - 80837CB18B5C2EB52C31363C5714141C /* AnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationView.swift; sourceTree = ""; }; - 8191274E9EE6BEB64155853C0A5BC0AC /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; - 82888991C5F00E69C6DB5DDDAFAD18C3 /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; path = PinpointKit.podspec.json; sourceTree = ""; }; - 8402896BFCC3642F8E27CE6A065E7993 /* BlurAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlurAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BlurAnnotationView.swift; sourceTree = ""; }; + 70F5E7833FD6FCA0E5FAA4EFC590896C /* ArrowAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrowAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/ArrowAnnotationView.swift; sourceTree = ""; }; + 72414EF0D10097444716FB9576A1C867 /* StrokeLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeLayoutManager.swift; path = PinpointKit/PinpointKit/Sources/Core/StrokeLayoutManager.swift; sourceTree = ""; }; + 79A4E9BB9E63817933E58AA723294E60 /* UIGestureRecognizer+FailRecognizing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+FailRecognizing.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIGestureRecognizer+FailRecognizing.swift"; sourceTree = ""; }; + 7DC35FE57A10FDCBB4D1633E94D586F1 /* BezierPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BezierPath.swift; path = PinpointKit/PinpointKit/Sources/Core/BezierPath.swift; sourceTree = ""; }; + 7E70FFD57FCC9BAEF5014FB1B9413B7A /* LogViewer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogViewer.swift; path = PinpointKit/PinpointKit/Sources/Core/LogViewer.swift; sourceTree = ""; }; + 7EDD286BE3886B52010598D4CAE29A81 /* FeedbackTableViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackTableViewDataSource.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift; sourceTree = ""; }; + 821669675B1755221575325BE463705D /* SuccessType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuccessType.swift; path = PinpointKit/PinpointKit/Sources/Core/SuccessType.swift; sourceTree = ""; }; + 8609242033254E0EFDD43E0C722BB8BA /* ASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ASLLogger.h; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.h; sourceTree = ""; }; + 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/ScreenshotCell.swift; sourceTree = ""; }; + 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; 8E48D44046FC860DAC611BC5CA2F03A3 /* Pods-PinpointKitExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PinpointKitExample-acknowledgements.plist"; sourceTree = ""; }; + 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9645616158FCD460F41C8C58EA8331B2 /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; - 9D2FF389C174AF86CDC69523123B0CDB /* ASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ASLLogger.h; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.h; sourceTree = ""; }; - 9F1FC8C5DE1A8716B5EFE846D811FA95 /* FeedbackTableViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackTableViewDataSource.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift; sourceTree = ""; }; - A0987188EA3ED83EE724FA2ABE21383B /* PinpointKit+ShakePresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PinpointKit+ShakePresentation.swift"; path = "PinpointKit/PinpointKit/Sources/Core/PinpointKit+ShakePresentation.swift"; sourceTree = ""; }; - A0B9D23387D65BEEAA1060DF8E1435E1 /* Screenshotter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screenshotter.swift; path = PinpointKit/PinpointKit/Sources/Core/Screenshotter.swift; sourceTree = ""; }; - A12089A08EF6E4E304BC40B880F1C276 /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; - A1409EFC284A322894C04EE75B893B0D /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; - A170EFB140353EC0C55B17D632ED4B53 /* EditImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewController.swift; sourceTree = ""; }; - A23809C2ECD6D081A51823DA8CA7811B /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; + 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; + 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; + 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; + A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PinpointKit+ShakePresentation.swift"; path = "PinpointKit/PinpointKit/Sources/Core/PinpointKit+ShakePresentation.swift"; sourceTree = ""; }; + A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screenshotter.swift; path = PinpointKit/PinpointKit/Sources/Core/Screenshotter.swift; sourceTree = ""; }; A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PinpointKitExample-umbrella.h"; sourceTree = ""; }; - AE11409F1492BCA70A73E93C5C85F61D /* ASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ASLLogger.m; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.m; sourceTree = ""; }; - B314898B993EAB442FFFE652B7A805E1 /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; - B5C4CA2553793DA257689AD6CE78C56C /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; - B932E629F980020571DD484C58C3E280 /* CheckmarkCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CheckmarkCell.swift; path = PinpointKit/PinpointKit/Sources/Core/CheckmarkCell.swift; sourceTree = ""; }; - C16983DE02892C7623CE4AC524D69A53 /* SystemLogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SystemLogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/SystemLogCollector.swift; sourceTree = ""; }; + AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + AEF8952D9E3125C1221BA915903E2D4B /* UIView+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIView+PinpointKit.swift"; sourceTree = ""; }; + B2E5B0B80F90B799E9FC32252705A323 /* SystemLogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SystemLogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/SystemLogCollector.swift; sourceTree = ""; }; + B333E0EF66528DC812FF53EB78C35F8B /* BlurAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlurAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BlurAnnotationView.swift; sourceTree = ""; }; + B38B67288C6F1ED3EE92AA6A5AD2E9A1 /* UIColor+Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIColor+Palette.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIColor+Palette.swift"; sourceTree = ""; }; + B6CF08B0132F5D100DFB5DB4892088BC /* ShakeDetectingWindowDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindowDelegate.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindowDelegate.swift; sourceTree = ""; }; + BF520F8543F311F26584F77DFF7BB650 /* EditImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewController.swift; sourceTree = ""; }; + BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; + C0E51776E4A07A58BE4A29DABEAEC45D /* BoxAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BoxAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BoxAnnotationView.swift; sourceTree = ""; }; C4D9057897E22B5264C1439151CEB8B8 /* Pods-PinpointKitExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-frameworks.sh"; sourceTree = ""; }; - C77F62AD746A2F748D1BB4868D08F2C8 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; - CA4F353285BE1B32417F43EFCBB714DC /* Screen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screen.swift; path = PinpointKit/PinpointKit/Sources/Core/Screen.swift; sourceTree = ""; }; - CCC9DFE70A35B1C9D56C07C8E27586F5 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; - D70AA6D401751FF12DF1877EEBA63297 /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; + C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; + CB1282A251E0E64DECC7DA52116A50BF /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; + CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; + CBD3AACD533D6CFC5CB9D1DA35F15797 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; + D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; D816779985ABAD820D8B8B4720BA007D /* Pods-PinpointKitExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.release.xcconfig"; sourceTree = ""; }; - DA28E9A868107C1DD9E805FFAE9D5746 /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; - DF9588E8D07DD4BDDDB4E91AC8D41538 /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; - E334BD6C24DA15656F2A4F49B309C958 /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; - E3485FB818A7BB9F6B272428F73D3BDD /* NSBundle+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/NSBundle+PinpointKit.swift"; sourceTree = ""; }; - E42B71BCC2909C871AEE75204F8B0F6E /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; - EE75659618FF0482E28B29786972EB21 /* PinpointKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinpointKit-dummy.m"; sourceTree = ""; }; - F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - F7079189F26B2E4B24BA505DD2F8466F /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; - F7E39150B97DA9F28E3498F9DA452BA4 /* EditorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditorDelegate.swift; sourceTree = ""; }; - FD0952F9B52A5DA37449AF14A1EA391B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + DA207E322FDE20900695705BA22A88FF /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; + DBA3676F5598C68F291ACEE496E5449E /* PinpointKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinpointKit-dummy.m"; sourceTree = ""; }; + DE42E0DEF998BD30884C36CAA4B2893B /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; + DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; + E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; + F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; + F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; + F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; + FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; + FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; + FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PinpointKitExample.framework; path = "Pods-PinpointKitExample.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; + FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 0CFC39FDEF2522BAB236CABCA2DE349C /* Frameworks */ = { + 5D26887CA8B9B1B6A7C54087657BDF90 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 640F4E58B57612A4863B5DF5D8C5B29E /* Foundation.framework in Frameworks */, - 477CE286A5197C18C273B0716C5E56AA /* MessageUI.framework in Frameworks */, - DEEA1D06FD17E8BB53A84849AF1CA666 /* UIKit.framework in Frameworks */, + 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5D26887CA8B9B1B6A7C54087657BDF90 /* Frameworks */ = { + 932D204CCA2490E38B37E3C5686915C1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */, + FEA0817F607EA1B754E36501860D5DC0 /* Foundation.framework in Frameworks */, + A38D28B134E0146D5F6A777652380823 /* MessageUI.framework in Frameworks */, + FFA525D0CA2EC303F85A91527D3410C5 /* Photos.framework in Frameworks */, + 3F444F4F8FB3310D241B2B85C56403D0 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -199,86 +204,75 @@ name = "Targets Support Files"; sourceTree = ""; }; - 122DA2E5084A4393C29BE363C764795C /* Frameworks */ = { + 14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */ = { isa = PBXGroup; children = ( - 454CFBD41F93F89DA1E617E8CC8C9388 /* iOS */, + 238C184870795FC3EF7AB432B08A7CB9 /* iOS */, ); name = Frameworks; sourceTree = ""; }; - 32A23E08346748F1793F899C5FF672C1 /* SwiftLint */ = { + 238C184870795FC3EF7AB432B08A7CB9 /* iOS */ = { isa = PBXGroup; children = ( - ); - name = SwiftLint; - path = SwiftLint; - sourceTree = ""; - }; - 454CFBD41F93F89DA1E617E8CC8C9388 /* iOS */ = { - isa = PBXGroup; - children = ( - F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */, - CCC9DFE70A35B1C9D56C07C8E27586F5 /* MessageUI.framework */, - FD0952F9B52A5DA37449AF14A1EA391B /* UIKit.framework */, + AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */, + BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */, + 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */, + 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */, ); name = iOS; sourceTree = ""; }; - 4B1518DA3DA341FF7824DD17031C9E7C /* Resources */ = { - isa = PBXGroup; - children = ( - 3003D7BE90B8A01FC115684F230C6341 /* PinpointKit.xcassets */, - 048E3E0B219F8E74673CA3E6B8EA9690 /* SourceSansPro-Bold.ttf */, - E334BD6C24DA15656F2A4F49B309C958 /* SourceSansPro-Regular.ttf */, - B5C4CA2553793DA257689AD6CE78C56C /* SourceSansPro-Semibold.ttf */, - ); - name = Resources; - sourceTree = ""; - }; - 5B295E6C52D34666FCC5EC61B40807EC /* PinpointKit */ = { + 32A23E08346748F1793F899C5FF672C1 /* SwiftLint */ = { isa = PBXGroup; children = ( - FB87CA318FA2A22F3B2AAD3C8B8A3008 /* Core */, - D3B0D061D2CDE04FA29DA9878F439204 /* Pod */, - 88CD7B1165D51AE94BD0F65E01F57C6B /* Support Files */, ); - name = PinpointKit; - path = ../..; + name = SwiftLint; + path = SwiftLint; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 7EDB98DB12016E714DD1942B2E5F7E90 /* Development Pods */, - 122DA2E5084A4393C29BE363C764795C /* Frameworks */, + D1F3289BA0E17AC23978E1C387871661 /* Development Pods */, + 14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */, 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */, A4F71E61075C99A869D49E625CF20775 /* Products */, 024D40B0D6C60CF034E1715DEE0E8ABB /* Targets Support Files */, ); sourceTree = ""; }; - 7EDB98DB12016E714DD1942B2E5F7E90 /* Development Pods */ = { + 8408926050D588FCFBF182151F6F7784 /* Editing */ = { isa = PBXGroup; children = ( - 5B295E6C52D34666FCC5EC61B40807EC /* PinpointKit */, + 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */, + BF520F8543F311F26584F77DFF7BB650 /* EditImageViewController.swift */, + 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */, + FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */, + 6D1E05C4FCDDD8ECD7662BB9B62D8AC2 /* EditorDelegate.swift */, + CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */, ); - name = "Development Pods"; + name = Editing; + path = PinpointKit/PinpointKit/Sources/Core/Editing; sourceTree = ""; }; - 88CD7B1165D51AE94BD0F65E01F57C6B /* Support Files */ = { + 84546063E1E9C67CCF9374BB5357108E /* ScreenshotDetector */ = { isa = PBXGroup; children = ( - 5BB28BB51E690F6DBD634842E54D60A1 /* Info.plist */, - 1A56764F4F1609E980341799CD1C8213 /* PinpointKit.modulemap */, - 20B27210C764A5BA8A50504377524D2E /* PinpointKit.xcconfig */, - EE75659618FF0482E28B29786972EB21 /* PinpointKit-dummy.m */, - 0F8AE2A48FCCFE11832030C700DD7F5A /* PinpointKit-prefix.pch */, - D70AA6D401751FF12DF1877EEBA63297 /* PinpointKit-umbrella.h */, + 26C65CBF4808D6AF8B56952546FFEDA7 /* ScreenshotDetector.swift */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/PinpointKit"; + name = ScreenshotDetector; + sourceTree = ""; + }; + 87AEF9ABAE3B30DB7BB02F619536D9BC /* Pod */ = { + isa = PBXGroup; + children = ( + 5B1D9132A3BF861067D1A5A4F850939F /* LICENSE */, + 3FDBF98DB897AF834A42D7098334C8CE /* PinpointKit.podspec.json */, + CBD3AACD533D6CFC5CB9D1DA35F15797 /* README.md */, + ); + name = Pod; sourceTree = ""; }; 93187347FFE4E891D405722159860C98 /* Pods-PinpointKitExample */ = { @@ -299,6 +293,20 @@ path = "Target Support Files/Pods-PinpointKitExample"; sourceTree = ""; }; + 94359ECD1E977CEEAFDD39167FEE77CD /* Support Files */ = { + isa = PBXGroup; + children = ( + 1C17F143A14857DBB529CD2152C9730C /* Info.plist */, + DE42E0DEF998BD30884C36CAA4B2893B /* PinpointKit.modulemap */, + 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */, + DBA3676F5598C68F291ACEE496E5449E /* PinpointKit-dummy.m */, + CB1282A251E0E64DECC7DA52116A50BF /* PinpointKit-prefix.pch */, + 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/PinpointKit"; + sourceTree = ""; + }; 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */ = { isa = PBXGroup; children = ( @@ -316,96 +324,103 @@ name = Products; sourceTree = ""; }; - D3B0D061D2CDE04FA29DA9878F439204 /* Pod */ = { + BD59D50CACEEE88F52E1E8A95CDA38D2 /* Resources */ = { isa = PBXGroup; children = ( - C77F62AD746A2F748D1BB4868D08F2C8 /* LICENSE */, - 82888991C5F00E69C6DB5DDDAFAD18C3 /* PinpointKit.podspec.json */, - 40D1ED5B74B6FABE2530E111FD457A69 /* README.md */, + F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */, + F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */, + FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */, + D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */, ); - name = Pod; + name = Resources; sourceTree = ""; }; - F1A75CD77158F313182E53642841486D /* Editing */ = { + C8D82AF06A34A97D7DCA2A3767F5DDF1 /* Core */ = { isa = PBXGroup; children = ( - 379EE0640D67DCF599AFC9CE018015CB /* AnnotationViewFactory.swift */, - A170EFB140353EC0C55B17D632ED4B53 /* EditImageViewController.swift */, - 1571D749AC0348FD5F88D5C830E00B61 /* EditImageViewControllerBarButtonItemProviding.swift */, - 26F4D76B313CC2C9B0784BEA95093715 /* Editor.swift */, - F7E39150B97DA9F28E3498F9DA452BA4 /* EditorDelegate.swift */, - 4FE7D863B542BF040C7ADE0603F88984 /* Tool.swift */, + 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */, + 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */, + 2D52B806A20A17792401AD1F0CE16D6E /* AnnotationView.swift */, + 70F5E7833FD6FCA0E5FAA4EFC590896C /* ArrowAnnotationView.swift */, + 8609242033254E0EFDD43E0C722BB8BA /* ASLLogger.h */, + 6D17AC19ABFB54DDF81A2D8D2C5F8B29 /* ASLLogger.m */, + DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */, + 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */, + 7DC35FE57A10FDCBB4D1633E94D586F1 /* BezierPath.swift */, + B333E0EF66528DC812FF53EB78C35F8B /* BlurAnnotationView.swift */, + C0E51776E4A07A58BE4A29DABEAEC45D /* BoxAnnotationView.swift */, + 1BFC504C61DC3A179069E4415CD6AE04 /* CheckmarkCell.swift */, + 2A4A16F567B3816EB06D7CCD395BB670 /* Configuration.swift */, + 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */, + 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */, + D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */, + 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */, + 7EDD286BE3886B52010598D4CAE29A81 /* FeedbackTableViewDataSource.swift */, + F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */, + DA207E322FDE20900695705BA22A88FF /* Fonts.swift */, + FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */, + 25B1E4158382AED3473FA8BA35702747 /* InterfaceCustomization.swift */, + 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */, + FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */, + 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */, + 7E70FFD57FCC9BAEF5014FB1B9413B7A /* LogViewer.swift */, + 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */, + FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */, + 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */, + 311974FA8AC8D65E1C793A8D47D47A09 /* NSBundle+PinpointKit.swift */, + E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */, + 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */, + A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */, + 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */, + 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */, + A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */, + C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */, + 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */, + B6CF08B0132F5D100DFB5DB4892088BC /* ShakeDetectingWindowDelegate.swift */, + 72414EF0D10097444716FB9576A1C867 /* StrokeLayoutManager.swift */, + 821669675B1755221575325BE463705D /* SuccessType.swift */, + B2E5B0B80F90B799E9FC32252705A323 /* SystemLogCollector.swift */, + 1F9390D90542433BA8E137C6993930A9 /* TextAnnotationView.swift */, + 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */, + B38B67288C6F1ED3EE92AA6A5AD2E9A1 /* UIColor+Palette.swift */, + 79A4E9BB9E63817933E58AA723294E60 /* UIGestureRecognizer+FailRecognizing.swift */, + AEF8952D9E3125C1221BA915903E2D4B /* UIView+PinpointKit.swift */, + 8408926050D588FCFBF182151F6F7784 /* Editing */, + BD59D50CACEEE88F52E1E8A95CDA38D2 /* Resources */, ); - name = Editing; - path = PinpointKit/PinpointKit/Sources/Core/Editing; + name = Core; sourceTree = ""; }; - FB87CA318FA2A22F3B2AAD3C8B8A3008 /* Core */ = { + D1F3289BA0E17AC23978E1C387871661 /* Development Pods */ = { isa = PBXGroup; children = ( - 28FAB9FF56EE10C26DCA5DB309AAFE27 /* Annotations.swift */, - F7079189F26B2E4B24BA505DD2F8466F /* AnnotationsView.swift */, - 80837CB18B5C2EB52C31363C5714141C /* AnnotationView.swift */, - 3891D91CE129CAF1343139D685830F03 /* ArrowAnnotationView.swift */, - 9D2FF389C174AF86CDC69523123B0CDB /* ASLLogger.h */, - AE11409F1492BCA70A73E93C5C85F61D /* ASLLogger.m */, - 9645616158FCD460F41C8C58EA8331B2 /* BarButtonItem.swift */, - 5032EE02BCED9C798618C18C3BC04D53 /* BasicLogViewController.swift */, - 4312F20E5920871682919138B36D14E9 /* BezierPath.swift */, - 8402896BFCC3642F8E27CE6A065E7993 /* BlurAnnotationView.swift */, - 17C206B06256E027D6524865A677BEC0 /* BoxAnnotationView.swift */, - B932E629F980020571DD484C58C3E280 /* CheckmarkCell.swift */, - 73216502745DEA689790BC09AE053707 /* Configuration.swift */, - 736B91A6711BDAF01732E502C6BF9C6F /* Feedback.swift */, - 70DC07A9F0539B7448C64EA6B18D761A /* FeedbackCollector.swift */, - 5687EDAF95DC76F30A5CAD49E01AE887 /* FeedbackConfiguration.swift */, - A23809C2ECD6D081A51823DA8CA7811B /* FeedbackNavigationController.swift */, - 9F1FC8C5DE1A8716B5EFE846D811FA95 /* FeedbackTableViewDataSource.swift */, - 31960227E584348F53A8265F461AC5AC /* FeedbackViewController.swift */, - 203D8212E29371F38C4DB4E3BCEC7082 /* Fonts.swift */, - 618F3CAB614910C598CC27A94F7F38CA /* InterfaceCustomizable.swift */, - 1754B5B1176720C013796502290F3B13 /* InterfaceCustomization.swift */, - 0EABD5DEFA1EF582E27B454D69953D11 /* KeyboardAvoider.swift */, - A1409EFC284A322894C04EE75B893B0D /* LogCollector.swift */, - B314898B993EAB442FFFE652B7A805E1 /* LogSupporting.swift */, - 18309B67A03316352ABDDA0BAF2DC2CF /* LogViewer.swift */, - E42B71BCC2909C871AEE75204F8B0F6E /* MailSender.swift */, - A12089A08EF6E4E304BC40B880F1C276 /* MIMEType.swift */, - DF9588E8D07DD4BDDDB4E91AC8D41538 /* NavigationController.swift */, - E3485FB818A7BB9F6B272428F73D3BDD /* NSBundle+PinpointKit.swift */, - 0C82FAA3A46DFCCF4732499CAAD099AA /* PinpointKit.h */, - 728DB7C20BBC431552474C3DFC4F1D5C /* PinpointKit.swift */, - A0987188EA3ED83EE724FA2ABE21383B /* PinpointKit+ShakePresentation.swift */, - CA4F353285BE1B32417F43EFCBB714DC /* Screen.swift */, - 4B07DE547D57814924E65E055C27DFC5 /* ScreenshotCell.swift */, - A0B9D23387D65BEEAA1060DF8E1435E1 /* Screenshotter.swift */, - 8191274E9EE6BEB64155853C0A5BC0AC /* Sender.swift */, - 15AD05FF662D619BE274B98D2D24BFA0 /* ShakeDetectingWindow.swift */, - 0D4BD74A19B6CF650D80FF631A66467D /* ShakeDetectingWindowDelegate.swift */, - 1431876B7BC76FDDDE604094B7DC491B /* StrokeLayoutManager.swift */, - 75AFA24126628DC1FE801AF553F342B1 /* SuccessType.swift */, - C16983DE02892C7623CE4AC524D69A53 /* SystemLogCollector.swift */, - 180ACFF870D9ED7234CBD7503CD9265D /* TextAnnotationView.swift */, - DA28E9A868107C1DD9E805FFAE9D5746 /* UIBarButtonItem+TitleTextAttributeStates.swift */, - 23B7EC7C7752576BC0E8CA669432B801 /* UIColor+Palette.swift */, - 02556F4959ABD4DA3B2C14629CAB33F9 /* UIGestureRecognizer+FailRecognizing.swift */, - 5CA66761C7D9197C2364A1E173D9E26A /* UIView+PinpointKit.swift */, - F1A75CD77158F313182E53642841486D /* Editing */, - 4B1518DA3DA341FF7824DD17031C9E7C /* Resources */, + F86EDB1296210AFC22CFB82010525B69 /* PinpointKit */, ); - name = Core; + name = "Development Pods"; + sourceTree = ""; + }; + F86EDB1296210AFC22CFB82010525B69 /* PinpointKit */ = { + isa = PBXGroup; + children = ( + C8D82AF06A34A97D7DCA2A3767F5DDF1 /* Core */, + 87AEF9ABAE3B30DB7BB02F619536D9BC /* Pod */, + 84546063E1E9C67CCF9374BB5357108E /* ScreenshotDetector */, + 94359ECD1E977CEEAFDD39167FEE77CD /* Support Files */, + ); + name = PinpointKit; + path = ../..; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 6918FDD718540F0F4ECE2F747A721927 /* Headers */ = { + B3914F6F10E79B70E912F583AFBEAB90 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 84453A1054042F1B21A00D5F5A9223D1 /* ASLLogger.h in Headers */, - 9828EC589A1860C24953383D204BB241 /* PinpointKit-umbrella.h in Headers */, - ABC29004EAAC5A4E29DA9A60CB97E47B /* PinpointKit.h in Headers */, + 5399D8C30EA2556572EB8C0E988BC492 /* ASLLogger.h in Headers */, + CD3056E774AEE082DF089C1F411B6979 /* PinpointKit-umbrella.h in Headers */, + 08056AEFACF3FED8F0CA862948A8AF4D /* PinpointKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -420,14 +435,14 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 74EF4866D3C70A92D70DA54E177D3738 /* PinpointKit */ = { + 2BF73340F09BA2FFDE2CDB776DEB52C5 /* PinpointKit */ = { isa = PBXNativeTarget; - buildConfigurationList = DB694C05030E8470DEDFBB79121D7A30 /* Build configuration list for PBXNativeTarget "PinpointKit" */; + buildConfigurationList = BADEFA24EB032B50A5CB43722C616950 /* Build configuration list for PBXNativeTarget "PinpointKit" */; buildPhases = ( - 1FA827428E5240A8921F7790AF92C6F4 /* Sources */, - 0CFC39FDEF2522BAB236CABCA2DE349C /* Frameworks */, - 6918FDD718540F0F4ECE2F747A721927 /* Headers */, - 8AC12B4596BF399DF0034BC4D1A5A9C6 /* Resources */, + A382642DB2627CA9347B9BEDBCAB16BA /* Sources */, + 932D204CCA2490E38B37E3C5686915C1 /* Frameworks */, + B3914F6F10E79B70E912F583AFBEAB90 /* Headers */, + 2297AE9B9F896621DB40373EE3038E35 /* Resources */, ); buildRules = ( ); @@ -477,91 +492,92 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 74EF4866D3C70A92D70DA54E177D3738 /* PinpointKit */, + 2BF73340F09BA2FFDE2CDB776DEB52C5 /* PinpointKit */, 7883FC5596C43D4116A971A780A7A715 /* Pods-PinpointKitExample */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 8AC12B4596BF399DF0034BC4D1A5A9C6 /* Resources */ = { + 2297AE9B9F896621DB40373EE3038E35 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4B082E16E58550C176DAEBD112BE5747 /* PinpointKit.xcassets in Resources */, - F66121D202FA3BE2EF9AC02FDC0E5B5C /* SourceSansPro-Bold.ttf in Resources */, - 311E142970F18B5734A702827CD3A758 /* SourceSansPro-Regular.ttf in Resources */, - 9095651C498EABD1D7E2911F03D5198A /* SourceSansPro-Semibold.ttf in Resources */, + E53AAB111783AA2CA4D1C71DDFE2DC23 /* PinpointKit.xcassets in Resources */, + 722B49F4F4E9E0CA7FDD585FE23F6C34 /* SourceSansPro-Bold.ttf in Resources */, + D9FE5E1D8AECB6C9979181AFEF4F781D /* SourceSansPro-Regular.ttf in Resources */, + 9BC38233B72752F33B94E89DF87574AF /* SourceSansPro-Semibold.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 1FA827428E5240A8921F7790AF92C6F4 /* Sources */ = { + 390C0E919B6B63AAB124B5960910F0B9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 959E11680CFF6770C2CDCF70704073CB /* Annotations.swift in Sources */, - 438597D9208F5128B7FF2AE6A0C83170 /* AnnotationsView.swift in Sources */, - 4DC567BC9679DD15E54FF0BC2D24A583 /* AnnotationView.swift in Sources */, - 8628B516F3697C973719094520E408EE /* AnnotationViewFactory.swift in Sources */, - EDB8B6E6FB5F72DCC0E09C2A4C3BBEBE /* ArrowAnnotationView.swift in Sources */, - 1F0B93A1A1CBC81CB2485FE3BF6AA925 /* ASLLogger.m in Sources */, - 6DE352A3DE9996520F2E7EB6F4527723 /* BarButtonItem.swift in Sources */, - FCECA4F34938D9732045FFF0C24BF3E1 /* BasicLogViewController.swift in Sources */, - 8E3AAB3C11D33641260D4FA99D189463 /* BezierPath.swift in Sources */, - 687C04050F836477B111FCC444C1BFD2 /* BlurAnnotationView.swift in Sources */, - A53DFCD66AB042B8C354332080099EB1 /* BoxAnnotationView.swift in Sources */, - 76FEFA36FA089B012BDCC32067BBC04E /* CheckmarkCell.swift in Sources */, - 886F3D053A9FA92DE3E53CCF0E5ACC8C /* Configuration.swift in Sources */, - D67408C62D0FB1F6CFC37D0FCF9DFB19 /* EditImageViewController.swift in Sources */, - 3D563DBF770AF170E7CFA63D278AAC3B /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, - 2C96653C4721BDEEB7B15C842D44AD95 /* Editor.swift in Sources */, - 43FB4DE1A656C6AEABB5E9362EAE5291 /* EditorDelegate.swift in Sources */, - E477B03672E682B73B367C37410F1C21 /* Feedback.swift in Sources */, - 50E39F7BFE3337933FFAF99287368E76 /* FeedbackCollector.swift in Sources */, - 68955EE8C6CE7AE3223A7A6EE38E7002 /* FeedbackConfiguration.swift in Sources */, - 9DA24D9942244A970505575AF9C926FB /* FeedbackNavigationController.swift in Sources */, - 6FA56DE1FBDD2A0CFA22D51D312D817F /* FeedbackTableViewDataSource.swift in Sources */, - 544A06EF131EFBBF9AC2126C224A365A /* FeedbackViewController.swift in Sources */, - E5226ABD9D10AEA052A9617624BEE0A6 /* Fonts.swift in Sources */, - F2ACB339E62F889729EDA7B25E3E1E95 /* InterfaceCustomizable.swift in Sources */, - F660AAE2F3E34F081B3D0E86061B75DA /* InterfaceCustomization.swift in Sources */, - 4F5C31FAA9A7D1DBF692B97745336421 /* KeyboardAvoider.swift in Sources */, - 22AE8CDDCD0F380D2860903D7C970FB7 /* LogCollector.swift in Sources */, - 2E253F9DCD013504F36D54760666DF77 /* LogSupporting.swift in Sources */, - 733DB08BCA4B288F73DCA02614EBB013 /* LogViewer.swift in Sources */, - C02B8980A89C60D3C95F6222D8BF2A44 /* MailSender.swift in Sources */, - 6F91C631D4EC47731A8EE00A1937B425 /* MIMEType.swift in Sources */, - 8E4294EE0330D220947F74898809E812 /* NavigationController.swift in Sources */, - E9A3CB58177E30C07EF8E65D613BA6DA /* NSBundle+PinpointKit.swift in Sources */, - 4EE0F6F971753AD8DCDF7CA1C78C71DE /* PinpointKit+ShakePresentation.swift in Sources */, - 93497D48EBE2E9BB0B81C7A92A28FD90 /* PinpointKit-dummy.m in Sources */, - B52D585358DBCD46EF787F40CD62FB60 /* PinpointKit.swift in Sources */, - FA1E0D49274A1FDA23AF1581B140201E /* Screen.swift in Sources */, - A8BB7B4426E76E82D79D9CF8B8ACB157 /* ScreenshotCell.swift in Sources */, - 36F0E7A1756294F82BB4566BFD6989A6 /* Screenshotter.swift in Sources */, - 84A73C8E2E35B259ED675BA88C1B4267 /* Sender.swift in Sources */, - 4A010F621B25BC96ABFD0AA9F66FC698 /* ShakeDetectingWindow.swift in Sources */, - 2A616C9BEAEA07B9E52E6D97BDC560AA /* ShakeDetectingWindowDelegate.swift in Sources */, - 190C3089FF13B86AF4AF4B609AE8F16D /* StrokeLayoutManager.swift in Sources */, - 492A18A04B511F8960FB56410A90B71F /* SuccessType.swift in Sources */, - 9768695F13681DEB8FA08B0DB44486A3 /* SystemLogCollector.swift in Sources */, - 7339E7A595E0CAF6702FFAD60FCD5D7D /* TextAnnotationView.swift in Sources */, - F025918332A3D23BDB3D9310E4AF7351 /* Tool.swift in Sources */, - F25AEBFAD3E95D2B41CB279397C0B40D /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */, - 3EA169A7BE12FF8D632E9FF2C197C242 /* UIColor+Palette.swift in Sources */, - 327D95B82D84A1C0FE261DEDF3833466 /* UIGestureRecognizer+FailRecognizing.swift in Sources */, - 1EC5611C41921D5E5FD37DC30918723E /* UIView+PinpointKit.swift in Sources */, + 15FE598A776E6E89D656F15961C577BE /* Pods-PinpointKitExample-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 390C0E919B6B63AAB124B5960910F0B9 /* Sources */ = { + A382642DB2627CA9347B9BEDBCAB16BA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 15FE598A776E6E89D656F15961C577BE /* Pods-PinpointKitExample-dummy.m in Sources */, + 86262A2E2FA3B423DA7B581CBD3F6EC9 /* Annotations.swift in Sources */, + A8A6746F1CBC24A44F738F0BD004E58B /* AnnotationsView.swift in Sources */, + C53B0960AB64FF45DE8C3B9FC435BEC4 /* AnnotationView.swift in Sources */, + 3C76E86EB2681F14B8CCB5E58C2C32C2 /* AnnotationViewFactory.swift in Sources */, + 9ABBE0161CA0924D820EE0E11FC713FE /* ArrowAnnotationView.swift in Sources */, + AD67AB45D7ADD63DDB00FEBDE6FDFF7B /* ASLLogger.m in Sources */, + D6ACE892E5917FB3FD3BA713D325463C /* BarButtonItem.swift in Sources */, + E761507BF5971326A49DF213AFBBB81B /* BasicLogViewController.swift in Sources */, + A36A22039CC7A5340F4B51E7D2C7E795 /* BezierPath.swift in Sources */, + 214174089D52F467AA533B24873D438F /* BlurAnnotationView.swift in Sources */, + A933F7AEEBDE1BEAAC0C96115CE942B0 /* BoxAnnotationView.swift in Sources */, + D82135030FC1B965720C15945B34977C /* CheckmarkCell.swift in Sources */, + 31AB0E0CE9539906C6DEFE97242E22B7 /* Configuration.swift in Sources */, + 772CF5C65250FF4626497495FCF99FF7 /* EditImageViewController.swift in Sources */, + 1049CB571DF5FE98FF647934266EF277 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, + 13B139DFEDC466217F2F0991B61A3B3F /* Editor.swift in Sources */, + DD72E1ABD053865C06E69A2C15F48F4C /* EditorDelegate.swift in Sources */, + E325016BE5CA51D7E56529C392AE2011 /* Feedback.swift in Sources */, + 43025B04F5328ED323A85A426DBC9655 /* FeedbackCollector.swift in Sources */, + B4A2EA6E6A0046B45F9BDEA734F02801 /* FeedbackConfiguration.swift in Sources */, + D5243BBD5A4B0C9A5417ACC19B70E4E8 /* FeedbackNavigationController.swift in Sources */, + 5CB89166F21AB8870C035B2BBE27B932 /* FeedbackTableViewDataSource.swift in Sources */, + B3ADED1A1D1EAD2B07EC424F158C0649 /* FeedbackViewController.swift in Sources */, + A830F77E31F907FEB2C87ACCA05CF802 /* Fonts.swift in Sources */, + 0B0E4B6B12278ED287EB64BC1567BFAA /* InterfaceCustomizable.swift in Sources */, + C74CAC8DFF8B3F3FC8FECD254FB6B94E /* InterfaceCustomization.swift in Sources */, + 7A330C234590067F9AABFFECF26A373C /* KeyboardAvoider.swift in Sources */, + C236F6FB31F89D594E1C42D1DF83DCA2 /* LogCollector.swift in Sources */, + BD851EF373E5BC00A537C6A2090A4A6B /* LogSupporting.swift in Sources */, + ACF949071465F3992900CBF8845867BF /* LogViewer.swift in Sources */, + B4BE0B879877F8BA32E3FB5645B4717A /* MailSender.swift in Sources */, + F9EFFAD1D945A97BB0B6BD80B160DF2E /* MIMEType.swift in Sources */, + 5ABC1FEB8E81BCA4E034307F381B6F99 /* NavigationController.swift in Sources */, + B9AA6AF9EB971C858368711BCDF5390A /* NSBundle+PinpointKit.swift in Sources */, + 48DE0D08E6A7D14587F8CEEB6BA0B135 /* PinpointKit+ShakePresentation.swift in Sources */, + B9A6FDFB752869C2852411B5E40EBE60 /* PinpointKit-dummy.m in Sources */, + B11A413C80C7A925273C5AE1C818F9FE /* PinpointKit.swift in Sources */, + 2AE1CC11F598D66E0D369BBC77D537A2 /* Screen.swift in Sources */, + 78C1BDF5DAA5857B1D1825731ED47066 /* ScreenshotCell.swift in Sources */, + B38D162DAB2634637B051DE42C306B51 /* ScreenshotDetector.swift in Sources */, + AE30940E7272CAC1416551E290FDE507 /* Screenshotter.swift in Sources */, + 14D99C0D90E43E8B507E4287DA4DE033 /* Sender.swift in Sources */, + D57E0D9ABA5921E4BA0C2C8168B8F6DC /* ShakeDetectingWindow.swift in Sources */, + 58279D58C4C9C24602FDE4C866FCD82A /* ShakeDetectingWindowDelegate.swift in Sources */, + B5FA04152DD8A673E9DAF8B1D2EF909F /* StrokeLayoutManager.swift in Sources */, + 4A70ECDEE19D16C5454939EE969D42F4 /* SuccessType.swift in Sources */, + DBE20F6C62F3AE49C6B8C4315ED7A498 /* SystemLogCollector.swift in Sources */, + 634F19E8CABEC39449190BD2058D099A /* TextAnnotationView.swift in Sources */, + A8E452B5C1C97599B72818DA307B760F /* Tool.swift in Sources */, + 42FD3708CB25BAD560937283F5220724 /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */, + A30E4B1C8DB07D8935243B54A238BA4F /* UIColor+Palette.swift in Sources */, + 5E504640E3E520BDB82B0EF0ACC6192A /* UIGestureRecognizer+FailRecognizing.swift in Sources */, + 177CAD38810AAED381B406A596ECB85A /* UIView+PinpointKit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -571,7 +587,7 @@ 7E5002678ABA6FF9515E43AC0BAFEFED /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PinpointKit; - target = 74EF4866D3C70A92D70DA54E177D3738 /* PinpointKit */; + target = 2BF73340F09BA2FFDE2CDB776DEB52C5 /* PinpointKit */; targetProxy = 9806AEF51849764C12CF65E03DC758D1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -640,6 +656,38 @@ }; name = Debug; }; + 5A190F3FB69377E62FC7E090836E1318 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PinpointKit/PinpointKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PinpointKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PinpointKit/PinpointKit.modulemap"; + PRODUCT_MODULE_NAME = PinpointKit; + PRODUCT_NAME = PinpointKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 89C68177307D3F04B055FD0AA2FC173A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -698,9 +746,9 @@ }; name = Release; }; - 89FA81507935461A3CC98AE7C1A2B369 /* Release */ = { + 939F50D0A90FD0302BEB3828A1CA6361 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 20B27210C764A5BA8A50504377524D2E /* PinpointKit.xcconfig */; + baseConfigurationReference = 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -731,38 +779,6 @@ }; name = Release; }; - 9D411FAA4A1FA079F2435B06ED18039E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 20B27210C764A5BA8A50504377524D2E /* PinpointKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/PinpointKit/PinpointKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PinpointKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PinpointKit/PinpointKit.modulemap"; - PRODUCT_MODULE_NAME = PinpointKit; - PRODUCT_NAME = PinpointKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; F438AC93E4D8049E6E5920B0AD3F164F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */; @@ -854,11 +870,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DB694C05030E8470DEDFBB79121D7A30 /* Build configuration list for PBXNativeTarget "PinpointKit" */ = { + BADEFA24EB032B50A5CB43722C616950 /* Build configuration list for PBXNativeTarget "PinpointKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D411FAA4A1FA079F2435B06ED18039E /* Debug */, - 89FA81507935461A3CC98AE7C1A2B369 /* Release */, + 5A190F3FB69377E62FC7E090836E1318 /* Debug */, + 939F50D0A90FD0302BEB3828A1CA6361 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig b/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig index 21657c5..946ca90 100644 --- a/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig +++ b/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig @@ -1,6 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PinpointKit GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = -framework "Foundation" -framework "MessageUI" -framework "UIKit" +OTHER_LDFLAGS = -framework "Foundation" -framework "MessageUI" -framework "Photos" -framework "UIKit" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) From 9eead2fc08c48ccb25a9f5145ae01f069c6b892e Mon Sep 17 00:00:00 2001 From: Michael Liberatore Date: Tue, 15 Sep 2020 12:18:35 -0400 Subject: [PATCH 02/13] Makes use of ScreenshotDetector --- .../PinpointKitExample/ViewController.swift | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Example/PinpointKitExample/ViewController.swift b/Example/PinpointKitExample/ViewController.swift index 03e6c0f..f7d5fc3 100644 --- a/Example/PinpointKitExample/ViewController.swift +++ b/Example/PinpointKitExample/ViewController.swift @@ -9,20 +9,29 @@ import UIKit import PinpointKit -final class ViewController: UITableViewController { +final class ViewController: UITableViewController, ScreenshotDetectorDelegate { + + private var screenshotDetector: ScreenshotDetector? fileprivate let pinpointKit = PinpointKit(feedbackRecipients: ["feedback@example.com"]) override func viewDidLoad() { super.viewDidLoad() + screenshotDetector = ScreenshotDetector(delegate: self) + // Hides the infinite cells footer. tableView.tableFooterView = UIView() } - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - - pinpointKit.show(from: self) + // MARK: - ScreenshotDetectorDelegate + + func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didDetect screenshot: UIImage) { + pinpointKit.show(from: self, screenshot: screenshot) } + + func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didFailWith error: ScreenshotDetector.Error) { + print(error) + } + } From 7e80423f31bf4f70986f9eb27a37944e5de7bad5 Mon Sep 17 00:00:00 2001 From: Twigz Date: Tue, 15 Sep 2020 17:54:30 -0400 Subject: [PATCH 03/13] More functional state --- .../xcschemes/PinpointKitExample.xcscheme | 78 +++++++++++++++++++ Example/PinpointKitExample/Info.plist | 2 + .../PinpointKitExample/ViewController.swift | 9 ++- .../Sources/Core/FeedbackCollector.swift | 3 + .../Core/FeedbackNavigationController.swift | 32 +++++++- .../Sources/Core/FeedbackViewController.swift | 28 +++++++ .../Sources/Core/PinpointKit.swift | 7 ++ .../ScreenshotDetector.swift | 47 ++++++++--- 8 files changed, 193 insertions(+), 13 deletions(-) create mode 100644 Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme diff --git a/Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme b/Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme new file mode 100644 index 0000000..4b2a9da --- /dev/null +++ b/Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/PinpointKitExample/Info.plist b/Example/PinpointKitExample/Info.plist index e463482..8fd571b 100644 --- a/Example/PinpointKitExample/Info.plist +++ b/Example/PinpointKitExample/Info.plist @@ -36,6 +36,8 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + NSPhotoLibraryUsageDescription + The example application accesses your photo library. UISupportedInterfaceOrientations~ipad UIInterfaceOrientationPortrait diff --git a/Example/PinpointKitExample/ViewController.swift b/Example/PinpointKitExample/ViewController.swift index f7d5fc3..25618e1 100644 --- a/Example/PinpointKitExample/ViewController.swift +++ b/Example/PinpointKitExample/ViewController.swift @@ -31,7 +31,14 @@ final class ViewController: UITableViewController, ScreenshotDetectorDelegate { } func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didFailWith error: ScreenshotDetector.Error) { - print(error) + switch error { + case .limitedAuthorization: + if #available(iOS 14, *) { + pinpointKit.show(from: self, selectImageText: "Hello") + } + case .fetchFailure, .loadFailure, .unauthorized: + print(error) + } } } diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift index ec64dc0..0be684b 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift @@ -28,6 +28,9 @@ public protocol FeedbackCollector: class, LogSupporting, InterfaceCustomizable { - parameter viewController: The view controller from which to present. */ func collectFeedback(with screenshot: UIImage, from viewController: UIViewController) + + @available(iOS 14, *) + func requestScreenshot(from viewController: UIViewController) } extension FeedbackCollector where Self: UIViewController { diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift index c81d4dd..a4d842b 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift @@ -7,6 +7,7 @@ // import UIKit +import PhotosUI /// A `UINavigationController` subclass that has a `FeedbackViewController` as its root view controller. Use this class as a `FeedbackCollector`. public final class FeedbackNavigationController: UINavigationController, FeedbackCollector { @@ -116,7 +117,7 @@ public final class FeedbackNavigationController: UINavigationController, Feedbac public func collectFeedback(with screenshot: UIImage, from viewController: UIViewController) { guard presentingViewController == nil else { - NSLog("Unable to present FeedbackNavigationController because it is already being presetned") + NSLog("Unable to present FeedbackNavigationController because it is already being presented") return } @@ -125,10 +126,39 @@ public final class FeedbackNavigationController: UINavigationController, Feedbac self.modalPresentationStyle = feedbackConfiguration?.presentationStyle ?? .fullScreen viewController.present(self, animated: true, completion: nil) } + + @available(iOS 14, *) + public func requestScreenshot(from viewController: UIViewController) { + feedbackViewController.screenshot = UIImage() + feedbackViewController.annotatedScreenshot = feedbackViewController.screenshot + let x = PHPickerViewController(configuration: .init(photoLibrary: .shared())) + x.delegate = self + + viewController.present(x, animated: true, completion: nil) + //viewController.showDetailViewController(self, sender: viewController) + } + // MARK: - UINavigationController public override var preferredStatusBarStyle: UIStatusBarStyle { return topViewController?.preferredStatusBarStyle ?? .default } } + +@available(iOS 14, *) +extension FeedbackNavigationController: PHPickerViewControllerDelegate { + + public func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + + results.first?.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { image, _ in + OperationQueue.main.addOperation { + guard let image = image as? UIImage, let presentingViewController = picker.presentingViewController else { return } + + presentingViewController.dismiss(animated: true) { + self.collectFeedback(with: image, from: presentingViewController) + } + } + }) + } +} diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift index e2ed2a4..d992c12 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift @@ -7,6 +7,7 @@ // import UIKit +import PhotosUI /// A `UITableViewController` that conforms to `FeedbackCollector` in order to display an interface that allows the user to see, change, and send feedback. public final class FeedbackViewController: UITableViewController { @@ -195,6 +196,33 @@ extension FeedbackViewController: FeedbackCollector { annotatedScreenshot = nil viewController.showDetailViewController(self, sender: viewController) } + + @available(iOS 14, *) + public func requestScreenshot(from viewController: UIViewController) { + self.screenshot = UIImage() + annotatedScreenshot = nil + + let x = PHPickerViewController(configuration: .init(photoLibrary: .shared())) + x.delegate = self + + viewController.present(x, animated: true, completion: nil) + } +} + +@available(iOS 14, *) +extension FeedbackViewController: PHPickerViewControllerDelegate { + + public func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + results.first?.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { image, _ in + OperationQueue.main.addOperation { + guard let image = image as? UIImage, let presentingViewController = picker.presentingViewController else { return } + + presentingViewController.dismiss(animated: true) { + self.collectFeedback(with: image, from: presentingViewController) + } + } + }) + } } // MARK: - EditorDelegate diff --git a/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift b/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift index 2ee8f1e..cda87a8 100644 --- a/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift +++ b/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift @@ -60,6 +60,13 @@ open class PinpointKit { configuration.feedbackCollector.collectFeedback(with: screenshot, from: viewController) } + @available(iOS 14, *) + open func show(from viewController: UIViewController, selectImageText: String) { + displayingViewController = viewController + configuration.editor.clearAllAnnotations() + configuration.feedbackCollector.requestScreenshot(from: viewController) + } + /// Presents an alert signifying the inability to compose a Mail message. open func presentFailureToComposeMailAlert() { let alertTitle = NSLocalizedString("Can’t Send Email", comment: "Title for an alert shown when attempting to send mail without a mail account setup.") diff --git a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift index 7ff887e..a8c1b21 100644 --- a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift +++ b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift @@ -16,6 +16,7 @@ open class ScreenshotDetector: NSObject { /// An error encountered when detecting and retreiving a screenshot. public enum Error: Swift.Error { + /// The user did not give authorization to this application to their Photo Library. case unauthorized(status: PHAuthorizationStatus) @@ -24,6 +25,9 @@ open class ScreenshotDetector: NSObject { /// The screenshot image data could not be loaded from the library. case loadFailure + + /// The user has limited library authorization active. + case limitedAuthorization } /// A boolean value indicating whether the detector is enabled. When set to true, the detector will request photo access whenever a screenshot is taken by the user and deliver screenshots to its delegate. @@ -63,17 +67,38 @@ open class ScreenshotDetector: NSObject { } private func requestPhotosAuthorization() { - PHPhotoLibrary.requestAuthorization { authorizationStatus in - OperationQueue.main.addOperation { - switch authorizationStatus { - case .authorized: - // Register for the next photo library change notification since the new screenshot - // won’t be available immediately. - self.photoLibrary.register(self) - case .denied, .notDetermined, .restricted: - self.fail(with: .unauthorized(status: authorizationStatus)) - @unknown default: - break + if #available(iOS 14, *) { + PHPhotoLibrary.requestAuthorization(for: .readWrite) { authorizationStatus in + OperationQueue.main.addOperation { + switch authorizationStatus { + case .authorized: + // Register for the next photo library change notification since the new screenshot + // won’t be available immediately. + self.photoLibrary.register(self) + case .limited: + self.fail(with: .limitedAuthorization) + case .denied, .notDetermined, .restricted: + self.fail(with: .unauthorized(status: authorizationStatus)) + @unknown default: + break + } + } + } + } else { + PHPhotoLibrary.requestAuthorization { authorizationStatus in + OperationQueue.main.addOperation { + switch authorizationStatus { + case .authorized: + // Register for the next photo library change notification since the new screenshot + // won’t be available immediately. + self.photoLibrary.register(self) + case .limited: + self.fail(with: .limitedAuthorization) + case .denied, .notDetermined, .restricted: + self.fail(with: .unauthorized(status: authorizationStatus)) + @unknown default: + break + } } } } From 7bcbc527c748fcee88e39795985d2be5c1f37d5c Mon Sep 17 00:00:00 2001 From: Twigz Date: Wed, 16 Sep 2020 14:00:27 -0400 Subject: [PATCH 04/13] cleaning up API, adding button --- .../PinpointKitExample/ViewController.swift | 11 +-- Example/Pods/Pods.xcodeproj/project.pbxproj | 24 +++-- .../Sources/Core/FeedbackCollector.swift | 5 +- .../Core/FeedbackNavigationController.swift | 34 +------ .../Core/FeedbackTableViewDataSource.swift | 61 ++++++++++-- .../Sources/Core/FeedbackViewController.swift | 62 +++++++------ .../Sources/Core/InterfaceCustomization.swift | 11 +++ .../Sources/Core/PinpointKit.swift | 11 +-- .../ScreenshotDetector.swift | 13 +-- RequestScreenshotCell.swift | 93 +++++++++++++++++++ 10 files changed, 217 insertions(+), 108 deletions(-) create mode 100644 RequestScreenshotCell.swift diff --git a/Example/PinpointKitExample/ViewController.swift b/Example/PinpointKitExample/ViewController.swift index 25618e1..82990cc 100644 --- a/Example/PinpointKitExample/ViewController.swift +++ b/Example/PinpointKitExample/ViewController.swift @@ -26,19 +26,12 @@ final class ViewController: UITableViewController, ScreenshotDetectorDelegate { // MARK: - ScreenshotDetectorDelegate - func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didDetect screenshot: UIImage) { + func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didDetect screenshot: UIImage?) { pinpointKit.show(from: self, screenshot: screenshot) } func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didFailWith error: ScreenshotDetector.Error) { - switch error { - case .limitedAuthorization: - if #available(iOS 14, *) { - pinpointKit.show(from: self, selectImageText: "Hello") - } - case .fetchFailure, .loadFailure, .unauthorized: - print(error) - } + print(error) } } diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 45b5292..5800050 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -71,6 +71,7 @@ E325016BE5CA51D7E56529C392AE2011 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */; }; E53AAB111783AA2CA4D1C71DDFE2DC23 /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */; }; E761507BF5971326A49DF213AFBBB81B /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */; }; + F2FC082125126DA200EF59E5 /* RequestScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2FC082025126DA200EF59E5 /* RequestScreenshotCell.swift */; }; F9EFFAD1D945A97BB0B6BD80B160DF2E /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */; }; FEA0817F607EA1B754E36501860D5DC0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; FFA525D0CA2EC303F85A91527D3410C5 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */; }; @@ -87,7 +88,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PinpointKit.framework; path = PinpointKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PinpointKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; 0A3984A794B8C50CF8A494535648E07D /* Pods-PinpointKitExample-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-resources.sh"; sourceTree = ""; }; @@ -108,13 +109,13 @@ 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; 3F135D9D2859350E531F62C2FF9E079A /* Pods-PinpointKitExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PinpointKitExample.modulemap"; sourceTree = ""; }; - 3FDBF98DB897AF834A42D7098334C8CE /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; path = PinpointKit.podspec.json; sourceTree = ""; }; + 3FDBF98DB897AF834A42D7098334C8CE /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = PinpointKit.podspec.json; sourceTree = ""; }; 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; - 5B1D9132A3BF861067D1A5A4F850939F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 5B1D9132A3BF861067D1A5A4F850939F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; @@ -133,7 +134,7 @@ 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; 8E48D44046FC860DAC611BC5CA2F03A3 /* Pods-PinpointKitExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PinpointKitExample-acknowledgements.plist"; sourceTree = ""; }; 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; @@ -153,8 +154,8 @@ C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; CB1282A251E0E64DECC7DA52116A50BF /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; - CBD3AACD533D6CFC5CB9D1DA35F15797 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; - D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; + CBD3AACD533D6CFC5CB9D1DA35F15797 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; D816779985ABAD820D8B8B4720BA007D /* Pods-PinpointKitExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.release.xcconfig"; sourceTree = ""; }; DA207E322FDE20900695705BA22A88FF /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; @@ -162,13 +163,14 @@ DE42E0DEF998BD30884C36CAA4B2893B /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; - F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; + F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; + F2FC082025126DA200EF59E5 /* RequestScreenshotCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestScreenshotCell.swift; sourceTree = ""; }; F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; - FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; + FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; - FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PinpointKitExample.framework; path = "Pods-PinpointKitExample.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PinpointKitExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -227,7 +229,6 @@ isa = PBXGroup; children = ( ); - name = SwiftLint; path = SwiftLint; sourceTree = ""; }; @@ -373,6 +374,7 @@ A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */, 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */, 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */, + F2FC082025126DA200EF59E5 /* RequestScreenshotCell.swift */, A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */, C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */, 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */, @@ -485,6 +487,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; @@ -566,6 +569,7 @@ 78C1BDF5DAA5857B1D1825731ED47066 /* ScreenshotCell.swift in Sources */, B38D162DAB2634637B051DE42C306B51 /* ScreenshotDetector.swift in Sources */, AE30940E7272CAC1416551E290FDE507 /* Screenshotter.swift in Sources */, + F2FC082125126DA200EF59E5 /* RequestScreenshotCell.swift in Sources */, 14D99C0D90E43E8B507E4287DA4DE033 /* Sender.swift in Sources */, D57E0D9ABA5921E4BA0C2C8168B8F6DC /* ShakeDetectingWindow.swift in Sources */, 58279D58C4C9C24602FDE4C866FCD82A /* ShakeDetectingWindowDelegate.swift in Sources */, diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift index 0be684b..79ed07e 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift @@ -27,10 +27,7 @@ public protocol FeedbackCollector: class, LogSupporting, InterfaceCustomizable { - parameter screenshot: The screenshot the user will be providing feedback on. - parameter viewController: The view controller from which to present. */ - func collectFeedback(with screenshot: UIImage, from viewController: UIViewController) - - @available(iOS 14, *) - func requestScreenshot(from viewController: UIViewController) + func collectFeedback(with screenshot: UIImage?, from viewController: UIViewController) } extension FeedbackCollector where Self: UIViewController { diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift index a4d842b..a458ea1 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift @@ -7,7 +7,6 @@ // import UIKit -import PhotosUI /// A `UINavigationController` subclass that has a `FeedbackViewController` as its root view controller. Use this class as a `FeedbackCollector`. public final class FeedbackNavigationController: UINavigationController, FeedbackCollector { @@ -115,7 +114,7 @@ public final class FeedbackNavigationController: UINavigationController, Feedbac // MARK: - FeedbackCollector - public func collectFeedback(with screenshot: UIImage, from viewController: UIViewController) { + public func collectFeedback(with screenshot: UIImage?, from viewController: UIViewController) { guard presentingViewController == nil else { NSLog("Unable to present FeedbackNavigationController because it is already being presented") return @@ -126,39 +125,10 @@ public final class FeedbackNavigationController: UINavigationController, Feedbac self.modalPresentationStyle = feedbackConfiguration?.presentationStyle ?? .fullScreen viewController.present(self, animated: true, completion: nil) } - - @available(iOS 14, *) - public func requestScreenshot(from viewController: UIViewController) { - feedbackViewController.screenshot = UIImage() - feedbackViewController.annotatedScreenshot = feedbackViewController.screenshot - - let x = PHPickerViewController(configuration: .init(photoLibrary: .shared())) - x.delegate = self - - viewController.present(x, animated: true, completion: nil) - //viewController.showDetailViewController(self, sender: viewController) - } - + // MARK: - UINavigationController public override var preferredStatusBarStyle: UIStatusBarStyle { return topViewController?.preferredStatusBarStyle ?? .default } } - -@available(iOS 14, *) -extension FeedbackNavigationController: PHPickerViewControllerDelegate { - - public func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { - - results.first?.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { image, _ in - OperationQueue.main.addOperation { - guard let image = image as? UIImage, let presentingViewController = picker.presentingViewController else { return } - - presentingViewController.dismiss(animated: true) { - self.collectFeedback(with: image, from: presentingViewController) - } - } - }) - } -} diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift index 5596c5e..03b274e 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift @@ -18,12 +18,12 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { Initializes the data source with a configuration and a boolean value indicating whether the user has enabled log collection. - parameter interfaceCustomization: The interface customization used to set up the data source. - - parameter screenshot: The screenshot to display for annotating. + - parameter screenshot: The screenshot to display for annotating. If nil, a button will appear allowing the user to select a screenshot. - parameter logSupporting: The object the controls the support of logging. - parameter userEnabledLogCollection: A boolean value indicating whether the user has enabled log collection. - parameter delegate: The object informed when a screenshot is tapped. */ - init(interfaceCustomization: InterfaceCustomization, screenshot: UIImage, logSupporting: LogSupporting, userEnabledLogCollection: Bool, delegate: FeedbackTableViewDataSourceDelegate? = nil) { + init(interfaceCustomization: InterfaceCustomization, screenshot: UIImage?, logSupporting: LogSupporting, userEnabledLogCollection: Bool, delegate: FeedbackTableViewDataSourceDelegate? = nil) { sections = type(of: self).sectionsFromConfiguration(interfaceCustomization, screenshot: screenshot, logSupporting: logSupporting, userEnabledLogCollection: userEnabledLogCollection) self.delegate = delegate } @@ -40,19 +40,36 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { } private enum Row { + case selectScreenshot(text: String, font: UIFont, buttonBackgroundColor: UIColor) case screenshot(screensot: UIImage, hintText: String?, hintFont: UIFont) case collectLogs(enabled: Bool, title: String, font: UIFont, canView: Bool) } // MARK: - FeedbackTableViewDataSource - private static func sectionsFromConfiguration(_ interfaceCustomization: InterfaceCustomization, screenshot: UIImage, logSupporting: LogSupporting, userEnabledLogCollection: Bool) -> [Section] { + private static func sectionsFromConfiguration(_ interfaceCustomization: InterfaceCustomization, screenshot: UIImage?, logSupporting: LogSupporting, userEnabledLogCollection: Bool) -> [Section] { var sections: [Section] = [] - let screenshotRow = Row.screenshot(screensot: screenshot, hintText: interfaceCustomization.interfaceText.feedbackEditHint, hintFont: interfaceCustomization.appearance.feedbackEditHintFont) - let screenshotSection = Section.feedback(rows: [screenshotRow]) - - sections.append(screenshotSection) + if let screenshot = screenshot { + let screenshotRow = Row.screenshot(screensot: screenshot, hintText: interfaceCustomization.interfaceText.feedbackEditHint, hintFont: interfaceCustomization.appearance.feedbackEditHintFont) + let screenshotSection = Section.feedback(rows: [screenshotRow]) + + sections.append(screenshotSection) + } else { + let color: UIColor = { + if #available(iOS 13.0, *) { + return UIColor.systemBackground + } else { + return UIColor.darkGray + } + }() + + let requestScreenshotRow = Row.selectScreenshot(text: interfaceCustomization.interfaceText.selectScreenshotButtonTitle, font: interfaceCustomization.appearance.selectScreenshotButtonFont, buttonBackgroundColor: color) + + let screenshotSection = Section.feedback(rows: [requestScreenshotRow]) + + sections.append(screenshotSection) + } if logSupporting.logCollector != nil { let collectLogsRow = Row.collectLogs(enabled: userEnabledLogCollection, title: interfaceCustomization.interfaceText.logCollectionPermissionTitle, font: interfaceCustomization.appearance.logCollectionPermissionFont, canView: logSupporting.logViewer != nil) @@ -98,6 +115,26 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { return cell } + private func requestScreenshotCell(for row: Row) -> UITableViewCell { + let cell = RequestScreenshotCell() + + guard case let .selectScreenshot(text, font, buttonBackgroundColor) = row else { + assertionFailure("Found unexpected row type when creating screenshot cell.") + return cell + } + + cell.viewModel = .init(buttonText: text, buttonBackgroundColor: buttonBackgroundColor, buttonFont: font) + cell.screenshotButtonTapHandler = { [weak self] _ in + guard let self = self else { return } + + if #available(iOS 14, *) { + self.delegate?.feedbackTableViewDataSourceDidRequestScreenshot(feedbackTableViewDataSource: self) + } + } + + return cell + } + // MARK: - UITableViewDataSource func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { @@ -115,6 +152,8 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { case let .feedback(rows): let row = rows[indexPath.row] switch row { + case .selectScreenshot: + return requestScreenshotCell(for: row) case .screenshot: return screenshotCell(for: row) case .collectLogs: @@ -134,4 +173,12 @@ protocol FeedbackTableViewDataSourceDelegate: class { - parameter screenshot: The screenshot that was tapped. */ func feedbackTableViewDataSource(feedbackTableViewDataSource: FeedbackTableViewDataSource, didTapScreenshot screenshot: UIImage) + + /** + Notifies the delegate that a screenshot is being requested. + + - parameter feedbackTableViewDataSource: The feedback table view data source that sent the message. + */ + @available(iOS 14, *) + func feedbackTableViewDataSourceDidRequestScreenshot(feedbackTableViewDataSource: FeedbackTableViewDataSource) } diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift index d992c12..8476689 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift @@ -109,7 +109,6 @@ public final class FeedbackViewController: UITableViewController { private func updateDataSource() { guard let interfaceCustomization = interfaceCustomization else { assertionFailure(); return } - guard let screenshot = screenshot else { assertionFailure(); return } let screenshotToDisplay = annotatedScreenshot ?? screenshot dataSource = FeedbackTableViewDataSource(interfaceCustomization: interfaceCustomization, screenshot: screenshotToDisplay, logSupporting: self, userEnabledLogCollection: userEnabledLogCollection, delegate: self) @@ -191,38 +190,11 @@ public final class FeedbackViewController: UITableViewController { // MARK: - FeedbackCollector extension FeedbackViewController: FeedbackCollector { - public func collectFeedback(with screenshot: UIImage, from viewController: UIViewController) { + public func collectFeedback(with screenshot: UIImage?, from viewController: UIViewController) { self.screenshot = screenshot annotatedScreenshot = nil viewController.showDetailViewController(self, sender: viewController) } - - @available(iOS 14, *) - public func requestScreenshot(from viewController: UIViewController) { - self.screenshot = UIImage() - annotatedScreenshot = nil - - let x = PHPickerViewController(configuration: .init(photoLibrary: .shared())) - x.delegate = self - - viewController.present(x, animated: true, completion: nil) - } -} - -@available(iOS 14, *) -extension FeedbackViewController: PHPickerViewControllerDelegate { - - public func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { - results.first?.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { image, _ in - OperationQueue.main.addOperation { - guard let image = image as? UIImage, let presentingViewController = picker.presentingViewController else { return } - - presentingViewController.dismiss(animated: true) { - self.collectFeedback(with: image, from: presentingViewController) - } - } - }) - } } // MARK: - EditorDelegate @@ -277,4 +249,36 @@ extension FeedbackViewController: FeedbackTableViewDataSourceDelegate { editImageViewController.modalPresentationStyle = feedbackConfiguration?.presentationStyle ?? .fullScreen present(editImageViewController, animated: true, completion: nil) } + + @available(iOS 14, *) + func feedbackTableViewDataSourceDidRequestScreenshot(feedbackTableViewDataSource: FeedbackTableViewDataSource) { + let pickerController = PHPickerViewController(configuration: .init(photoLibrary: .shared())) + pickerController.delegate = self + + viewController.present(pickerController, animated: true, completion: nil) + } +} + +@available(iOS 14, *) +extension FeedbackViewController: PHPickerViewControllerDelegate { + + public func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + guard let result = results.first else { + picker.presentingViewController?.dismiss(animated: true) + return + } + + result.itemProvider.loadObject(ofClass: UIImage.self, completionHandler: { image, _ in + OperationQueue.main.addOperation { + defer { + picker.presentingViewController?.dismiss(animated: true) + } + + guard let image = image as? UIImage else { return } + self.screenshot = image + + self.tableView.reloadData() + } + }) + } } diff --git a/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift b/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift index ce88169..a3e4f13 100644 --- a/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift +++ b/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift @@ -47,6 +47,9 @@ public struct InterfaceCustomization { /// The font used for navigation titles. let navigationTitleFont: UIFont + /// The font used for the select screenshot button used for `.limited` photo library access. + let selectScreenshotButtonFont: UIFont + /// The font used for the button that sends feedback. let feedbackSendButtonFont: UIFont @@ -101,6 +104,7 @@ public struct InterfaceCustomization { annotationTextAttributes: [NSAttributedString.Key: AnyObject]? = nil, navigationTitleColor: UIColor = Self.defaultNavigationTitleColor, navigationTitleFont: UIFont = .sourceSansProFont(ofSize: 19, weight: .semibold), + selectScreenshotButtonFont: UIFont = .sourceSansProFont(ofSize: 19, weight: .semibold), feedbackSendButtonFont: UIFont = .sourceSansProFont(ofSize: 19, weight: .semibold), feedbackCancelButtonFont: UIFont = .sourceSansProFont(ofSize: 19), feedbackEditHintFont: UIFont = .sourceSansProFont(ofSize: 14), @@ -129,6 +133,7 @@ public struct InterfaceCustomization { self.logFont = logFont self.navigationTitleFont = navigationTitleFont + self.selectScreenshotButtonFont = selectScreenshotButtonFont self.feedbackSendButtonFont = feedbackSendButtonFont self.feedbackCancelButtonFont = feedbackCancelButtonFont self.feedbackEditHintFont = feedbackEditHintFont @@ -169,6 +174,9 @@ public struct InterfaceCustomization { /// A hint to the user on how to edit the screenshot from the feedback screen. let feedbackEditHint: String? + /// A title to use for the select screenshot button. + let selectScreenshotButtonTitle: String + /// The title of the log collection screen. let logCollectorTitle: String? @@ -189,6 +197,7 @@ public struct InterfaceCustomization { - parameter feedbackCancelButtonTitle: The title of the cancel button. - parameter feedbackBackButtonTitle: The title of the back button. - parameter feedbackEditHint: The hint to show during editing. + - parameter selectScreenshotButtonTitle: The title of the select screenshot button. - parameter logCollectorTitle: The title of the log collector. - parameter logCollectionPermissionTitle: The title of the permission button. - parameter textEditingDismissButtonTitle: The title of the text editing dismiss button. @@ -199,6 +208,7 @@ public struct InterfaceCustomization { feedbackCancelButtonTitle: String? = nil, feedbackBackButtonTitle: String? = NSLocalizedString("Report", comment: "Back button title of a view that reports a bug"), feedbackEditHint: String? = NSLocalizedString("Tap the screenshot to annotate.", comment: "A hint on how to edit the screenshot"), + selectScreenshotButtonTitle: String = NSLocalizedString("Select Screenshot", comment: "A button that allows screenshot selection from the photo library."), logCollectorTitle: String? = NSLocalizedString("Console Log", comment: "Title of a view that collects logs"), logCollectionPermissionTitle: String = NSLocalizedString("Include Console Log", comment: "Title of a button asking the user to include system logs"), textEditingDismissButtonTitle: String = NSLocalizedString("Dismiss", comment: "Title of a button that dismisses text editing"), @@ -208,6 +218,7 @@ public struct InterfaceCustomization { self.feedbackCancelButtonTitle = feedbackCancelButtonTitle self.feedbackBackButtonTitle = feedbackBackButtonTitle self.feedbackEditHint = feedbackEditHint + self.selectScreenshotButtonTitle = selectScreenshotButtonTitle self.logCollectorTitle = logCollectorTitle self.logCollectionPermissionTitle = logCollectionPermissionTitle self.textEditingDismissButtonTitle = textEditingDismissButtonTitle diff --git a/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift b/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift index cda87a8..9921f38 100644 --- a/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift +++ b/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift @@ -54,19 +54,12 @@ open class PinpointKit { - parameter viewController: The view controller from which to present. - parameter screenshot: The screenshot to be annotated. The default value is a screenshot taken at the time this method is called. This image is intended to match the device’s screen size in points. */ - open func show(from viewController: UIViewController, screenshot: UIImage = Screenshotter.takeScreenshot()) { + open func show(from viewController: UIViewController, screenshot: UIImage? = Screenshotter.takeScreenshot()) { displayingViewController = viewController configuration.editor.clearAllAnnotations() configuration.feedbackCollector.collectFeedback(with: screenshot, from: viewController) } - - @available(iOS 14, *) - open func show(from viewController: UIViewController, selectImageText: String) { - displayingViewController = viewController - configuration.editor.clearAllAnnotations() - configuration.feedbackCollector.requestScreenshot(from: viewController) - } - + /// Presents an alert signifying the inability to compose a Mail message. open func presentFailureToComposeMailAlert() { let alertTitle = NSLocalizedString("Can’t Send Email", comment: "Title for an alert shown when attempting to send mail without a mail account setup.") diff --git a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift index a8c1b21..66484d3 100644 --- a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift +++ b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift @@ -25,9 +25,6 @@ open class ScreenshotDetector: NSObject { /// The screenshot image data could not be loaded from the library. case loadFailure - - /// The user has limited library authorization active. - case limitedAuthorization } /// A boolean value indicating whether the detector is enabled. When set to true, the detector will request photo access whenever a screenshot is taken by the user and deliver screenshots to its delegate. @@ -76,7 +73,7 @@ open class ScreenshotDetector: NSObject { // won’t be available immediately. self.photoLibrary.register(self) case .limited: - self.fail(with: .limitedAuthorization) + self.succeed(with: nil) case .denied, .notDetermined, .restricted: self.fail(with: .unauthorized(status: authorizationStatus)) @unknown default: @@ -93,7 +90,7 @@ open class ScreenshotDetector: NSObject { // won’t be available immediately. self.photoLibrary.register(self) case .limited: - self.fail(with: .limitedAuthorization) + self.succeed(with: nil) case .denied, .notDetermined, .restricted: self.fail(with: .unauthorized(status: authorizationStatus)) @unknown default: @@ -125,7 +122,7 @@ open class ScreenshotDetector: NSObject { } } - private func succeed(with image: UIImage) { + private func succeed(with image: UIImage?) { delegate?.screenshotDetector(self, didDetect: image) } @@ -143,9 +140,9 @@ public protocol ScreenshotDetectorDelegate: class { Notifies the delegate that the detector did successfully detect a screenshot. - parameter screenshotDetector: The detector responsible for the message. - - parameter screenshot: The screenshot that was detected. + - parameter screenshot: The screenshot that was detected. Optional if the asset cannot be retrieved due to limited library access. */ - func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didDetect screenshot: UIImage) + func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didDetect screenshot: UIImage?) /** Notifies the delegate that the detector failed to detect a screenshot. diff --git a/RequestScreenshotCell.swift b/RequestScreenshotCell.swift new file mode 100644 index 0000000..fb9e599 --- /dev/null +++ b/RequestScreenshotCell.swift @@ -0,0 +1,93 @@ +// +// RequestScreenshotCell.swift +// PinpointKit +// +// Created by Twig on 9/16/20. +// Copyright © 2020 Lickability. All rights reserved. +// + +import UIKit + +class RequestScreenshotCell: UITableViewCell { + + /// A type of closure that is invoked when a button is tapped. + typealias TapHandler = (_ button: UIButton) -> Void + + /// A struct encapsulating the information necessary for this view to be displayed. + struct ViewModel { + let buttonText: String + let buttonBackgroundColor: UIColor + let buttonFont: UIFont? + } + + private enum DesignConstants { + static let buttonHeight: CGFloat = 54.0 + static let topInset: CGFloat = 54.0 + static let horizontalInset: CGFloat = 32.0 + } + /// A closure that is invoked when the user taps on the button. + var screenshotButtonTapHandler: TapHandler? + + private lazy var requestScreenshotButton: UIButton = { + let button = UIButton(type: .system) + button.translatesAutoresizingMaskIntoConstraints = false + button.layer.cornerRadius = DesignConstants.buttonHeight / 2.0 + + return button + }() + + var viewModel: ViewModel? { + didSet { + requestScreenshotButton.setTitle(viewModel?.buttonText, for: .normal) + requestScreenshotButton.titleLabel?.font = viewModel?.buttonFont + requestScreenshotButton.backgroundColor = viewModel?.buttonBackgroundColor + } + } + + public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + setUp() + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + + setUp() + } + + override func addSubview(_ view: UIView) { + // Prevents the adding of separators to this cell. + let separatorHeight = UIScreen.main.pixelHeight + guard view.frame.height != separatorHeight else { + return + } + + super.addSubview(view) + } + + private func setUp() { + backgroundColor = .clear + selectionStyle = .none + + contentView.addSubview(requestScreenshotButton) + + setupRequestButton() + } + + private func setupRequestButton() { + requestScreenshotButton.addTarget(self, action: #selector(screenshotButtonTapped), for: .touchUpInside) + + NSLayoutConstraint.activate([ + requestScreenshotButton.topAnchor.constraint(equalTo: contentView.topAnchor, constant: DesignConstants.topInset), + requestScreenshotButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor), + requestScreenshotButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: DesignConstants.horizontalInset), + requestScreenshotButton.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -DesignConstants.horizontalInset), + requestScreenshotButton.heightAnchor.constraint(equalToConstant: DesignConstants.buttonHeight) + ]) + } + + @objc private func screenshotButtonTapped(_ sender: UIButton) { + screenshotButtonTapHandler?(sender) + } +} From 253641aed099b327a083c203a50d95ba08b0393a Mon Sep 17 00:00:00 2001 From: Twigz Date: Wed, 16 Sep 2020 14:01:56 -0400 Subject: [PATCH 05/13] Fix spacing --- Example/Podfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Example/Podfile b/Example/Podfile index 0a04ce3..7342c7e 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -2,7 +2,7 @@ platform :ios, '9.2' use_frameworks! target 'PinpointKitExample' do - pod 'PinpointKit', :path => '../' + pod 'PinpointKit', :path => '../' pod 'PinpointKit/ScreenshotDetector', :path => '../' pod 'SwiftLint', '0.25.1' From 2c016cd6f9089acd3584be20638053642d3f2b3c Mon Sep 17 00:00:00 2001 From: Twigz Date: Wed, 16 Sep 2020 14:06:17 -0400 Subject: [PATCH 06/13] cleanup --- .../Sources/Core/FeedbackCollector.swift | 2 +- .../Core/FeedbackNavigationController.swift | 2 +- .../Core/FeedbackTableViewDataSource.swift | 16 ++------ .../Sources/Core/PinpointKit.swift | 2 +- .../ScreenshotDetector.swift | 1 - RequestScreenshotCell.swift | 37 ++++++++++++------- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift index 79ed07e..834820f 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift @@ -24,7 +24,7 @@ public protocol FeedbackCollector: class, LogSupporting, InterfaceCustomizable { /** Begins feedback collection about a screenshot from a view controller. - - parameter screenshot: The screenshot the user will be providing feedback on. + - parameter screenshot: The screenshot the user will be providing feedback on. If the screenshot is nil, the user will be presented with a button to select a screenshot from their photo library. - parameter viewController: The view controller from which to present. */ func collectFeedback(with screenshot: UIImage?, from viewController: UIViewController) diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift index a458ea1..c187c71 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift @@ -125,7 +125,7 @@ public final class FeedbackNavigationController: UINavigationController, Feedbac self.modalPresentationStyle = feedbackConfiguration?.presentationStyle ?? .fullScreen viewController.present(self, animated: true, completion: nil) } - + // MARK: - UINavigationController public override var preferredStatusBarStyle: UIStatusBarStyle { diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift index 03b274e..b5bb764 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift @@ -40,7 +40,7 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { } private enum Row { - case selectScreenshot(text: String, font: UIFont, buttonBackgroundColor: UIColor) + case selectScreenshot(text: String, font: UIFont) case screenshot(screensot: UIImage, hintText: String?, hintFont: UIFont) case collectLogs(enabled: Bool, title: String, font: UIFont, canView: Bool) } @@ -56,15 +56,7 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { sections.append(screenshotSection) } else { - let color: UIColor = { - if #available(iOS 13.0, *) { - return UIColor.systemBackground - } else { - return UIColor.darkGray - } - }() - - let requestScreenshotRow = Row.selectScreenshot(text: interfaceCustomization.interfaceText.selectScreenshotButtonTitle, font: interfaceCustomization.appearance.selectScreenshotButtonFont, buttonBackgroundColor: color) + let requestScreenshotRow = Row.selectScreenshot(text: interfaceCustomization.interfaceText.selectScreenshotButtonTitle, font: interfaceCustomization.appearance.selectScreenshotButtonFont) let screenshotSection = Section.feedback(rows: [requestScreenshotRow]) @@ -118,12 +110,12 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { private func requestScreenshotCell(for row: Row) -> UITableViewCell { let cell = RequestScreenshotCell() - guard case let .selectScreenshot(text, font, buttonBackgroundColor) = row else { + guard case let .selectScreenshot(text, font) = row else { assertionFailure("Found unexpected row type when creating screenshot cell.") return cell } - cell.viewModel = .init(buttonText: text, buttonBackgroundColor: buttonBackgroundColor, buttonFont: font) + cell.viewModel = .init(buttonText: text, buttonFont: font) cell.screenshotButtonTapHandler = { [weak self] _ in guard let self = self else { return } diff --git a/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift b/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift index 9921f38..2427a49 100644 --- a/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift +++ b/PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift @@ -59,7 +59,7 @@ open class PinpointKit { configuration.editor.clearAllAnnotations() configuration.feedbackCollector.collectFeedback(with: screenshot, from: viewController) } - + /// Presents an alert signifying the inability to compose a Mail message. open func presentFailureToComposeMailAlert() { let alertTitle = NSLocalizedString("Can’t Send Email", comment: "Title for an alert shown when attempting to send mail without a mail account setup.") diff --git a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift index 66484d3..c13aa7a 100644 --- a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift +++ b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift @@ -16,7 +16,6 @@ open class ScreenshotDetector: NSObject { /// An error encountered when detecting and retreiving a screenshot. public enum Error: Swift.Error { - /// The user did not give authorization to this application to their Photo Library. case unauthorized(status: PHAuthorizationStatus) diff --git a/RequestScreenshotCell.swift b/RequestScreenshotCell.swift index fb9e599..3ba4728 100644 --- a/RequestScreenshotCell.swift +++ b/RequestScreenshotCell.swift @@ -8,15 +8,17 @@ import UIKit +/// A view that displays a button allowing a user to select a screenshot from their library. class RequestScreenshotCell: UITableViewCell { + // MARK: - RequestScreenshotCell + /// A type of closure that is invoked when a button is tapped. typealias TapHandler = (_ button: UIButton) -> Void /// A struct encapsulating the information necessary for this view to be displayed. struct ViewModel { let buttonText: String - let buttonBackgroundColor: UIColor let buttonFont: UIFont? } @@ -25,9 +27,18 @@ class RequestScreenshotCell: UITableViewCell { static let topInset: CGFloat = 54.0 static let horizontalInset: CGFloat = 32.0 } + /// A closure that is invoked when the user taps on the button. var screenshotButtonTapHandler: TapHandler? + /// Set the `viewModel` in order to update the receiver’s content. + var viewModel: ViewModel? { + didSet { + requestScreenshotButton.setTitle(viewModel?.buttonText, for: .normal) + requestScreenshotButton.titleLabel?.font = viewModel?.buttonFont + } + } + private lazy var requestScreenshotButton: UIButton = { let button = UIButton(type: .system) button.translatesAutoresizingMaskIntoConstraints = false @@ -36,19 +47,7 @@ class RequestScreenshotCell: UITableViewCell { return button }() - var viewModel: ViewModel? { - didSet { - requestScreenshotButton.setTitle(viewModel?.buttonText, for: .normal) - requestScreenshotButton.titleLabel?.font = viewModel?.buttonFont - requestScreenshotButton.backgroundColor = viewModel?.buttonBackgroundColor - } - } - - public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - - setUp() - } + // MARK: - UIView public required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) @@ -66,6 +65,16 @@ class RequestScreenshotCell: UITableViewCell { super.addSubview(view) } + // MARK: - UITableViewCell + + public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + setUp() + } + + // MARK: - RequestScreenshotCell + private func setUp() { backgroundColor = .clear selectionStyle = .none From d4bd1654206e9cb09455808746dc8d272f54bc09 Mon Sep 17 00:00:00 2001 From: Twigz Date: Wed, 16 Sep 2020 14:26:06 -0400 Subject: [PATCH 07/13] cleanup duplicate code --- .../ScreenshotDetector.swift | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift index c13aa7a..8b2748d 100644 --- a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift +++ b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift @@ -63,38 +63,36 @@ open class ScreenshotDetector: NSObject { } private func requestPhotosAuthorization() { + + func handleStatus(status: PHAuthorizationStatus) { + switch status { + case .authorized: + // Register for the next photo library change notification since the new screenshot + // won’t be available immediately. + self.photoLibrary.register(self) + case .limited: + let screenshotPresentationDelay = 0.5 + + DispatchQueue.main.asyncAfter(deadline: .now() + screenshotPresentationDelay) { + self.succeed(with: nil) + } + case .denied, .notDetermined, .restricted: + self.fail(with: .unauthorized(status: status)) + @unknown default: + break + } + } + if #available(iOS 14, *) { PHPhotoLibrary.requestAuthorization(for: .readWrite) { authorizationStatus in OperationQueue.main.addOperation { - switch authorizationStatus { - case .authorized: - // Register for the next photo library change notification since the new screenshot - // won’t be available immediately. - self.photoLibrary.register(self) - case .limited: - self.succeed(with: nil) - case .denied, .notDetermined, .restricted: - self.fail(with: .unauthorized(status: authorizationStatus)) - @unknown default: - break - } + handleStatus(status: authorizationStatus) } } } else { PHPhotoLibrary.requestAuthorization { authorizationStatus in OperationQueue.main.addOperation { - switch authorizationStatus { - case .authorized: - // Register for the next photo library change notification since the new screenshot - // won’t be available immediately. - self.photoLibrary.register(self) - case .limited: - self.succeed(with: nil) - case .denied, .notDetermined, .restricted: - self.fail(with: .unauthorized(status: authorizationStatus)) - @unknown default: - break - } + handleStatus(status: authorizationStatus) } } } From a78074e62678aba5c3dbef0e419b2593790878cd Mon Sep 17 00:00:00 2001 From: Twigz Date: Wed, 16 Sep 2020 17:39:31 -0400 Subject: [PATCH 08/13] Address PR feedback --- .../xcschemes/PinpointKitExample.xcscheme | 78 ------------------- .../Core/FeedbackTableViewDataSource.swift | 2 +- .../Sources/Core/FeedbackViewController.swift | 6 +- .../ScreenshotDetector.swift | 1 + RequestScreenshotCell.swift | 9 ++- 5 files changed, 12 insertions(+), 84 deletions(-) delete mode 100644 Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme diff --git a/Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme b/Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme deleted file mode 100644 index 4b2a9da..0000000 --- a/Example/PinpointKitExample.xcodeproj/xcshareddata/xcschemes/PinpointKitExample.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift index b5bb764..01a891c 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift @@ -115,7 +115,7 @@ final class FeedbackTableViewDataSource: NSObject, UITableViewDataSource { return cell } - cell.viewModel = .init(buttonText: text, buttonFont: font) + cell.viewModel = RequestScreenshotCell.ViewModel(buttonText: text, buttonFont: font) cell.screenshotButtonTapHandler = { [weak self] _ in guard let self = self else { return } diff --git a/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift b/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift index 8476689..de93986 100644 --- a/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift +++ b/PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift @@ -252,9 +252,11 @@ extension FeedbackViewController: FeedbackTableViewDataSourceDelegate { @available(iOS 14, *) func feedbackTableViewDataSourceDidRequestScreenshot(feedbackTableViewDataSource: FeedbackTableViewDataSource) { - let pickerController = PHPickerViewController(configuration: .init(photoLibrary: .shared())) + var configuration = PHPickerConfiguration(photoLibrary: .shared()) + configuration.filter = .images + + let pickerController = PHPickerViewController(configuration: configuration) pickerController.delegate = self - viewController.present(pickerController, animated: true, completion: nil) } } diff --git a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift index 8b2748d..e670cd9 100644 --- a/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift +++ b/PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift @@ -73,6 +73,7 @@ open class ScreenshotDetector: NSObject { case .limited: let screenshotPresentationDelay = 0.5 + /// Delaying the presentation, so that the feedback report doesn't immediately present while the screenshot is still being taken. DispatchQueue.main.asyncAfter(deadline: .now() + screenshotPresentationDelay) { self.succeed(with: nil) } diff --git a/RequestScreenshotCell.swift b/RequestScreenshotCell.swift index 3ba4728..906b530 100644 --- a/RequestScreenshotCell.swift +++ b/RequestScreenshotCell.swift @@ -8,7 +8,7 @@ import UIKit -/// A view that displays a button allowing a user to select a screenshot from their library. +/// A cell that displays a button allowing a user to select a screenshot from their library. class RequestScreenshotCell: UITableViewCell { // MARK: - RequestScreenshotCell @@ -18,7 +18,11 @@ class RequestScreenshotCell: UITableViewCell { /// A struct encapsulating the information necessary for this view to be displayed. struct ViewModel { + + /// The text displayed in the button requesting a screenshot. let buttonText: String + + /// The font for the text in the button that is requesting a screenshot. let buttonFont: UIFont? } @@ -91,8 +95,7 @@ class RequestScreenshotCell: UITableViewCell { requestScreenshotButton.topAnchor.constraint(equalTo: contentView.topAnchor, constant: DesignConstants.topInset), requestScreenshotButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor), requestScreenshotButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: DesignConstants.horizontalInset), - requestScreenshotButton.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -DesignConstants.horizontalInset), - requestScreenshotButton.heightAnchor.constraint(equalToConstant: DesignConstants.buttonHeight) + requestScreenshotButton.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -DesignConstants.horizontalInset) ]) } From 2f192e91d518e57f871064b1085038447e5b742b Mon Sep 17 00:00:00 2001 From: Twigz Date: Wed, 16 Sep 2020 18:16:11 -0400 Subject: [PATCH 09/13] Moved RequestScreenshotCell --- Example/Podfile.lock | 2 +- Example/Pods/Manifest.lock | 2 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 712 +++++++++--------- .../PinpointKit.xcodeproj/project.pbxproj | 4 + .../Sources/Core/RequestScreenshotCell.swift | 0 5 files changed, 362 insertions(+), 358 deletions(-) rename RequestScreenshotCell.swift => PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift (100%) diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 9849276..8ad264b 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -22,6 +22,6 @@ SPEC CHECKSUMS: PinpointKit: a33c929c2e9c3b7d9a1a343fd309161b71c02d06 SwiftLint: ce933681be10c3266e82576dad676fa815a602e9 -PODFILE CHECKSUM: 7151adb25b0fd3d5d6d044a3204912bb268baff2 +PODFILE CHECKSUM: fedf7c8ff2aafefa997652a50057931848ec893d COCOAPODS: 1.5.0 diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 9849276..8ad264b 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -22,6 +22,6 @@ SPEC CHECKSUMS: PinpointKit: a33c929c2e9c3b7d9a1a343fd309161b71c02d06 SwiftLint: ce933681be10c3266e82576dad676fa815a602e9 -PODFILE CHECKSUM: 7151adb25b0fd3d5d6d044a3204912bb268baff2 +PODFILE CHECKSUM: fedf7c8ff2aafefa997652a50057931848ec893d COCOAPODS: 1.5.0 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 5800050..6d84624 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -8,73 +8,73 @@ /* Begin PBXBuildFile section */ 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; - 08056AEFACF3FED8F0CA862948A8AF4D /* PinpointKit.h in Headers */ = {isa = PBXBuildFile; fileRef = E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B0E4B6B12278ED287EB64BC1567BFAA /* InterfaceCustomizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */; }; - 1049CB571DF5FE98FF647934266EF277 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */; }; - 13B139DFEDC466217F2F0991B61A3B3F /* Editor.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */; }; - 14D99C0D90E43E8B507E4287DA4DE033 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */; }; + 0822021475B945FB7E8A5C2B5C7E2937 /* TextAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A570B1EFBE2EA057A385714A772BD48 /* TextAnnotationView.swift */; }; + 09DEA27D11509728CC9AFC51085F68DE /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205308D4246CB65A84A4C41F0717AEAC /* Screen.swift */; }; + 0BE1D0680D133636FEE05CA4589226BF /* LogViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33103E5BE61BE760494193C52E9C79BF /* LogViewer.swift */; }; + 1087D08740C9DF5993D74EF1218B0803 /* AnnotationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = F78B1A489CD820F94FC9DEBB400B0E61 /* AnnotationViewFactory.swift */; }; 15FE598A776E6E89D656F15961C577BE /* Pods-PinpointKitExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */; }; - 177CAD38810AAED381B406A596ECB85A /* UIView+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEF8952D9E3125C1221BA915903E2D4B /* UIView+PinpointKit.swift */; }; - 214174089D52F467AA533B24873D438F /* BlurAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B333E0EF66528DC812FF53EB78C35F8B /* BlurAnnotationView.swift */; }; - 2AE1CC11F598D66E0D369BBC77D537A2 /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */; }; - 31AB0E0CE9539906C6DEFE97242E22B7 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A4A16F567B3816EB06D7CCD395BB670 /* Configuration.swift */; }; - 3C76E86EB2681F14B8CCB5E58C2C32C2 /* AnnotationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */; }; - 3F444F4F8FB3310D241B2B85C56403D0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */; }; - 42FD3708CB25BAD560937283F5220724 /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */; }; - 43025B04F5328ED323A85A426DBC9655 /* FeedbackCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */; }; - 48DE0D08E6A7D14587F8CEEB6BA0B135 /* PinpointKit+ShakePresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */; }; - 4A70ECDEE19D16C5454939EE969D42F4 /* SuccessType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821669675B1755221575325BE463705D /* SuccessType.swift */; }; - 5399D8C30EA2556572EB8C0E988BC492 /* ASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8609242033254E0EFDD43E0C722BB8BA /* ASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58279D58C4C9C24602FDE4C866FCD82A /* ShakeDetectingWindowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6CF08B0132F5D100DFB5DB4892088BC /* ShakeDetectingWindowDelegate.swift */; }; - 5ABC1FEB8E81BCA4E034307F381B6F99 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */; }; - 5CB89166F21AB8870C035B2BBE27B932 /* FeedbackTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EDD286BE3886B52010598D4CAE29A81 /* FeedbackTableViewDataSource.swift */; }; - 5E504640E3E520BDB82B0EF0ACC6192A /* UIGestureRecognizer+FailRecognizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79A4E9BB9E63817933E58AA723294E60 /* UIGestureRecognizer+FailRecognizing.swift */; }; - 634F19E8CABEC39449190BD2058D099A /* TextAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F9390D90542433BA8E137C6993930A9 /* TextAnnotationView.swift */; }; + 1746F75E22D7D44D43FB1051E1B6DD37 /* InterfaceCustomizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ADED76D0C8F26B0A7F7EA0DAFA147FA /* InterfaceCustomizable.swift */; }; + 183BA76823D642DEFC041F7272603267 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F46FA80D00E4E8DEDF2049A8DE6899A1 /* FeedbackViewController.swift */; }; + 18785931ED541940FC48E82A079BB6B8 /* PinpointKit+ShakePresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F44BB3222E6CCD1DF96C3A52F08BF88 /* PinpointKit+ShakePresentation.swift */; }; + 1B327D51B0DF8DF09A20A736BCA3F809 /* SystemLogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049E72C77B4A63F1EEA4098028664FFD /* SystemLogCollector.swift */; }; + 1F01E41FA6CA46DA1143969DCF214CF7 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23FC7EA1306975AC4F76FBAA4029CED6 /* Feedback.swift */; }; + 2217F5500A03956DB4A13D38CC2E147F /* StrokeLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4438BAB6724361E9E4CDDA051DC76153 /* StrokeLayoutManager.swift */; }; + 2362CCB526B2156C96F9CAC6BFB48C55 /* Editor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BA359F8804A184AE4958C42B32FBA5 /* Editor.swift */; }; + 262DFA6B4709D314BFA1100FC3332CDA /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C6B084565AC89CB1527D302FCD4C9D98 /* PinpointKit.xcassets */; }; + 2BD44F84EF66974A1CA928131DE46628 /* CheckmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 372DF34E13BC8EB43FA0CA5FFB27E1D3 /* CheckmarkCell.swift */; }; + 308C97B7C0A485D7105D24B94DC365C9 /* Screenshotter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738F1AE9D19CA7E4CB758D968A5B4726 /* Screenshotter.swift */; }; + 3167F1B737EDA4723CA332A7D396830B /* MailSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEC953C16F4C460226A557156BC60B84 /* MailSender.swift */; }; + 32BE9758D73D33D53B22601BCC8B7EA8 /* NSBundle+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A6E92ADC66CBE9FB9C4D9777D42664B /* NSBundle+PinpointKit.swift */; }; + 351C557F7875A8C2469E669A7E513D0B /* ASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = C63868D4F47ACBB8F687D75CAA16D330 /* ASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 356E57A2DCA44629C241120C3B547B80 /* BarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948A12FC165BA7D0BB328A125D01ED2C /* BarButtonItem.swift */; }; + 3DB92BC49BD82DE01F838BE15FA25488 /* EditorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B18FE978AC8F533799FA7BFE8C80220 /* EditorDelegate.swift */; }; + 3ECD46D3953CDE607B546142EF848EFD /* FeedbackNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9D11173A4411DF8FD3A40EFB78E3542 /* FeedbackNavigationController.swift */; }; + 412DC27A78C88B33EF0B62DCA18B9A51 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */; }; + 432FEB4E961CCFF6D678DE193B6812BC /* SourceSansPro-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7963F182B20C7A49A76E74DBB7C15175 /* SourceSansPro-Bold.ttf */; }; + 4B95E63D62F2404C2A8297B060ABDBD5 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30028D83C7C2EC3257C16607AA472764 /* EditImageViewControllerBarButtonItemProviding.swift */; }; + 528884A6CB194178BD10831CFBADF2A6 /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 251F653008D327FA443D9F5328679466 /* BasicLogViewController.swift */; }; + 52F0E2CD283BE584A43896E2E03ED85E /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FE5A2C9FEB07141CAC13EB4D03E06C1 /* Configuration.swift */; }; + 562E239122CE83E8EE6269EBAF809E8F /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65CD66AF45E5DE1DDE8FFAE253F28E37 /* SourceSansPro-Regular.ttf */; }; + 5D472B44585CBBF09624A698E0B8101F /* SourceSansPro-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CFC685FBC0B8F58C769C3EF999025591 /* SourceSansPro-Semibold.ttf */; }; + 5ED58BAA2373949FF829C80BE05853D6 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */; }; + 5FBD7EC68725A7196BD5346B1811B440 /* UIView+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842E427F8051C9A892C8251E32A4CBB3 /* UIView+PinpointKit.swift */; }; + 63CEEA16BDE1D90330D671FF3926D61B /* ASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F4DB93645A94418B3B2381FEF7E44A9 /* ASLLogger.m */; }; + 693B12E945551FBCF91C0C3FFFF7E40F /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9F8C20B0E1C8F6C37F7A341E47E6F49 /* Fonts.swift */; }; 7201B090132223218051A872C4BDA5D9 /* Pods-PinpointKitExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 722B49F4F4E9E0CA7FDD585FE23F6C34 /* SourceSansPro-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */; }; - 772CF5C65250FF4626497495FCF99FF7 /* EditImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF520F8543F311F26584F77DFF7BB650 /* EditImageViewController.swift */; }; - 78C1BDF5DAA5857B1D1825731ED47066 /* ScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */; }; - 7A330C234590067F9AABFFECF26A373C /* KeyboardAvoider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */; }; - 86262A2E2FA3B423DA7B581CBD3F6EC9 /* Annotations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */; }; - 9ABBE0161CA0924D820EE0E11FC713FE /* ArrowAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70F5E7833FD6FCA0E5FAA4EFC590896C /* ArrowAnnotationView.swift */; }; - 9BC38233B72752F33B94E89DF87574AF /* SourceSansPro-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */; }; - A30E4B1C8DB07D8935243B54A238BA4F /* UIColor+Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = B38B67288C6F1ED3EE92AA6A5AD2E9A1 /* UIColor+Palette.swift */; }; - A36A22039CC7A5340F4B51E7D2C7E795 /* BezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DC35FE57A10FDCBB4D1633E94D586F1 /* BezierPath.swift */; }; - A38D28B134E0146D5F6A777652380823 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */; }; - A830F77E31F907FEB2C87ACCA05CF802 /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA207E322FDE20900695705BA22A88FF /* Fonts.swift */; }; - A8A6746F1CBC24A44F738F0BD004E58B /* AnnotationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */; }; - A8E452B5C1C97599B72818DA307B760F /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */; }; - A933F7AEEBDE1BEAAC0C96115CE942B0 /* BoxAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0E51776E4A07A58BE4A29DABEAEC45D /* BoxAnnotationView.swift */; }; - ACF949071465F3992900CBF8845867BF /* LogViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E70FFD57FCC9BAEF5014FB1B9413B7A /* LogViewer.swift */; }; - AD67AB45D7ADD63DDB00FEBDE6FDFF7B /* ASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D17AC19ABFB54DDF81A2D8D2C5F8B29 /* ASLLogger.m */; }; - AE30940E7272CAC1416551E290FDE507 /* Screenshotter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */; }; - B11A413C80C7A925273C5AE1C818F9FE /* PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */; }; - B38D162DAB2634637B051DE42C306B51 /* ScreenshotDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26C65CBF4808D6AF8B56952546FFEDA7 /* ScreenshotDetector.swift */; }; - B3ADED1A1D1EAD2B07EC424F158C0649 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */; }; - B4A2EA6E6A0046B45F9BDEA734F02801 /* FeedbackConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */; }; - B4BE0B879877F8BA32E3FB5645B4717A /* MailSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */; }; - B5FA04152DD8A673E9DAF8B1D2EF909F /* StrokeLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72414EF0D10097444716FB9576A1C867 /* StrokeLayoutManager.swift */; }; - B9A6FDFB752869C2852411B5E40EBE60 /* PinpointKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DBA3676F5598C68F291ACEE496E5449E /* PinpointKit-dummy.m */; }; - B9AA6AF9EB971C858368711BCDF5390A /* NSBundle+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 311974FA8AC8D65E1C793A8D47D47A09 /* NSBundle+PinpointKit.swift */; }; - BD851EF373E5BC00A537C6A2090A4A6B /* LogSupporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */; }; - C236F6FB31F89D594E1C42D1DF83DCA2 /* LogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */; }; - C53B0960AB64FF45DE8C3B9FC435BEC4 /* AnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D52B806A20A17792401AD1F0CE16D6E /* AnnotationView.swift */; }; - C74CAC8DFF8B3F3FC8FECD254FB6B94E /* InterfaceCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25B1E4158382AED3473FA8BA35702747 /* InterfaceCustomization.swift */; }; - CD3056E774AEE082DF089C1F411B6979 /* PinpointKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5243BBD5A4B0C9A5417ACC19B70E4E8 /* FeedbackNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */; }; - D57E0D9ABA5921E4BA0C2C8168B8F6DC /* ShakeDetectingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */; }; - D6ACE892E5917FB3FD3BA713D325463C /* BarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */; }; - D82135030FC1B965720C15945B34977C /* CheckmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BFC504C61DC3A179069E4415CD6AE04 /* CheckmarkCell.swift */; }; - D9FE5E1D8AECB6C9979181AFEF4F781D /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */; }; - DBE20F6C62F3AE49C6B8C4315ED7A498 /* SystemLogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E5B0B80F90B799E9FC32252705A323 /* SystemLogCollector.swift */; }; - DD72E1ABD053865C06E69A2C15F48F4C /* EditorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D1E05C4FCDDD8ECD7662BB9B62D8AC2 /* EditorDelegate.swift */; }; - E325016BE5CA51D7E56529C392AE2011 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */; }; - E53AAB111783AA2CA4D1C71DDFE2DC23 /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */; }; - E761507BF5971326A49DF213AFBBB81B /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */; }; - F2FC082125126DA200EF59E5 /* RequestScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2FC082025126DA200EF59E5 /* RequestScreenshotCell.swift */; }; - F9EFFAD1D945A97BB0B6BD80B160DF2E /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */; }; - FEA0817F607EA1B754E36501860D5DC0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; - FFA525D0CA2EC303F85A91527D3410C5 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */; }; + 812EAF4CB8EC8CC4DF11201C5A035921 /* ArrowAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373AF359083B486A9C172AAD6FEC2945 /* ArrowAnnotationView.swift */; }; + 81597951E5A12740928EF029A57E3AC0 /* AnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2FEEC64163B8B297452A184CF9C179 /* AnnotationView.swift */; }; + 8D422CAD1B29F226C0E00C17728EE0AE /* UIGestureRecognizer+FailRecognizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088A47E4182E0D88F1368F2770FBF426 /* UIGestureRecognizer+FailRecognizing.swift */; }; + 90EC9EC17D94ED66B57B326ED45D2041 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C00706EA58BC249654293370835E7B2F /* Sender.swift */; }; + 91C4CB7110F2C288F8D12FA23E2C3FA9 /* InterfaceCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D88DBBB49B6002855E88FDDEA82777D8 /* InterfaceCustomization.swift */; }; + 94496D1AC6DE2763DAE5F99736714011 /* LogSupporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CBF436E92A266FF7CE3A7AB3A3F407F /* LogSupporting.swift */; }; + A11B48160450C81D82E34489785F08F6 /* ScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E06EBFF2DB7A7C46EB9402CDE3B0D784 /* ScreenshotCell.swift */; }; + A12E5D2A118291D0A136821E68B382F8 /* KeyboardAvoider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3371A00E70F6E77C9A5D48DE67BD2CB /* KeyboardAvoider.swift */; }; + A71D335F7E661CE7EC364ABA28E70F00 /* PinpointKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF4AA6B4C273AE74D761617963326689 /* PinpointKit-dummy.m */; }; + ABA7755FBA46E8B882EF1D928299638D /* UIColor+Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9820DA2E518376DA84EDEF99C2A26941 /* UIColor+Palette.swift */; }; + AC40C647BB7AA96A42D7A0EB371E5155 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CD8E7A5D50A8B0D23C85FAC7ACA8DC /* NavigationController.swift */; }; + AE0363C855A844AD44CAA6F65E2176D5 /* RequestScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC7914F33A6A667C99BF844DB50D751 /* RequestScreenshotCell.swift */; }; + AE5398AD49564891EA8B7DB0E84ACAA2 /* FeedbackConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0329DC7E7D8B71980523FF20752FD67B /* FeedbackConfiguration.swift */; }; + AFFD4014BCEBCD7E772E5538FD868520 /* ShakeDetectingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6538C9DF313D013528BD5981DC518E9B /* ShakeDetectingWindow.swift */; }; + BA8134652B0F5D80A56EAF85F77FFF1C /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE5BA660541B12ECF838913CE5A67BE /* UIBarButtonItem+TitleTextAttributeStates.swift */; }; + BC5346008A7018D5154A45E81602A18F /* PinpointKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 05E823CDD4DBF5D80B81EB92056284A3 /* PinpointKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD516B7C61AC0DC4E092DE638AF99E05 /* ShakeDetectingWindowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78D3964C1492B3215058B5E0D6BAB43A /* ShakeDetectingWindowDelegate.swift */; }; + C1141DBC56E8F518F55C6CDDA5F2CE88 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */; }; + C4F4092A45B6D3AA78714FA6C60DAEA4 /* FeedbackCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2835130E7A5A4D213AE4CAB0226E40D8 /* FeedbackCollector.swift */; }; + CC415BBEDBA1B578512014A981686822 /* BezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = B89A004F526B1CFBA2C97DEFBB415AA3 /* BezierPath.swift */; }; + CD6FF5D3498E1C0870C6D45F4526ED16 /* ScreenshotDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B912A4CCABAF55DE51B08601DE21FB /* ScreenshotDetector.swift */; }; + D3605A92D25D98AC11EA4D81526B7EBC /* EditImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B42AC62B46C0BFF3ECA267F260606E78 /* EditImageViewController.swift */; }; + D4EB1100EC07A9088773DF42D0681FF2 /* LogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7E7751C45EF11EDA8C659ACE570C9F2 /* LogCollector.swift */; }; + D633A5B27540D78FAF0C530ACD1306BC /* PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54AB389205B3ED61FBD88F98956C11D1 /* PinpointKit.swift */; }; + D8CB2D6C54F91233351C09C5AD7300B1 /* BlurAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7431742269837F83A513F794C8912CC0 /* BlurAnnotationView.swift */; }; + DB4C1DB3A2907198EAD2FFF15B7C0862 /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3478179F380EF7CFCF2ABFCAC7B38DF5 /* MIMEType.swift */; }; + DD726B8114A4CB7B865AB9EBE8111958 /* SuccessType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62CA52A15E05E8E78A8DBC151353FEA7 /* SuccessType.swift */; }; + DD81044C197307F949945AEEF737C93C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; + DEBC159074BCD4F98CB1F8E3E872AB6A /* Annotations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A90FFFC5A6A9AFD869B6D3081DAA143 /* Annotations.swift */; }; + E7B0ADBB6D224BC8CC3DA288DBFC4639 /* FeedbackTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D25D4074CB312FA092492984EE49065C /* FeedbackTableViewDataSource.swift */; }; + EF48AFF9C0749C206DA385A5D19544A3 /* BoxAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51E620A6C07893FCE37BC777E8699A5D /* BoxAnnotationView.swift */; }; + F76B36D9D7C10BEC5C61B44C9FB03DBA /* PinpointKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 975940D427A6E4F6A43FAA6908D2941E /* PinpointKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F885ED45F4EE0C5851D0F0D2CEFE482E /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78F1CF99C78EDFF60AC9C812BD6E9240 /* Tool.swift */; }; + FB76089FFD7A54A07EDB5D3CB76DB854 /* AnnotationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E10CDFB444E326946B98FB6AD1C7B0D /* AnnotationsView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -82,97 +82,97 @@ isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 2BF73340F09BA2FFDE2CDB776DEB52C5; + remoteGlobalIDString = 3B5D678C2341ED5E81CC83CE623A0DCF; remoteInfo = PinpointKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PinpointKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; - 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; + 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PinpointKit.framework; path = PinpointKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0329DC7E7D8B71980523FF20752FD67B /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; + 049E72C77B4A63F1EEA4098028664FFD /* SystemLogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SystemLogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/SystemLogCollector.swift; sourceTree = ""; }; + 05E823CDD4DBF5D80B81EB92056284A3 /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; + 088A47E4182E0D88F1368F2770FBF426 /* UIGestureRecognizer+FailRecognizing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+FailRecognizing.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIGestureRecognizer+FailRecognizing.swift"; sourceTree = ""; }; 0A3984A794B8C50CF8A494535648E07D /* Pods-PinpointKitExample-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-resources.sh"; sourceTree = ""; }; 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.debug.xcconfig"; sourceTree = ""; }; - 1BFC504C61DC3A179069E4415CD6AE04 /* CheckmarkCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CheckmarkCell.swift; path = PinpointKit/PinpointKit/Sources/Core/CheckmarkCell.swift; sourceTree = ""; }; - 1C17F143A14857DBB529CD2152C9730C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1F9390D90542433BA8E137C6993930A9 /* TextAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/TextAnnotationView.swift; sourceTree = ""; }; - 25B1E4158382AED3473FA8BA35702747 /* InterfaceCustomization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomization.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift; sourceTree = ""; }; - 26C65CBF4808D6AF8B56952546FFEDA7 /* ScreenshotDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotDetector.swift; path = PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift; sourceTree = ""; }; - 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screen.swift; path = PinpointKit/PinpointKit/Sources/Core/Screen.swift; sourceTree = ""; }; - 2A4A16F567B3816EB06D7CCD395BB670 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PinpointKit/PinpointKit/Sources/Core/Configuration.swift; sourceTree = ""; }; - 2D52B806A20A17792401AD1F0CE16D6E /* AnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationView.swift; sourceTree = ""; }; + 0EC7914F33A6A667C99BF844DB50D751 /* RequestScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift; sourceTree = ""; }; + 1ADED76D0C8F26B0A7F7EA0DAFA147FA /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; + 205308D4246CB65A84A4C41F0717AEAC /* Screen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screen.swift; path = PinpointKit/PinpointKit/Sources/Core/Screen.swift; sourceTree = ""; }; + 23FC7EA1306975AC4F76FBAA4029CED6 /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; + 251F653008D327FA443D9F5328679466 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; + 2835130E7A5A4D213AE4CAB0226E40D8 /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; + 2A6E92ADC66CBE9FB9C4D9777D42664B /* NSBundle+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/NSBundle+PinpointKit.swift"; sourceTree = ""; }; 2FC5CAA91B7D788B096A7564D11AAF2F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 311974FA8AC8D65E1C793A8D47D47A09 /* NSBundle+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/NSBundle+PinpointKit.swift"; sourceTree = ""; }; + 30028D83C7C2EC3257C16607AA472764 /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindow.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindow.swift; sourceTree = ""; }; + 33103E5BE61BE760494193C52E9C79BF /* LogViewer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogViewer.swift; path = PinpointKit/PinpointKit/Sources/Core/LogViewer.swift; sourceTree = ""; }; + 3478179F380EF7CFCF2ABFCAC7B38DF5 /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; + 372DF34E13BC8EB43FA0CA5FFB27E1D3 /* CheckmarkCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CheckmarkCell.swift; path = PinpointKit/PinpointKit/Sources/Core/CheckmarkCell.swift; sourceTree = ""; }; + 373AF359083B486A9C172AAD6FEC2945 /* ArrowAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrowAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/ArrowAnnotationView.swift; sourceTree = ""; }; 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PinpointKitExample-dummy.m"; sourceTree = ""; }; - 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; - 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; + 3A570B1EFBE2EA057A385714A772BD48 /* TextAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/TextAnnotationView.swift; sourceTree = ""; }; 3F135D9D2859350E531F62C2FF9E079A /* Pods-PinpointKitExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PinpointKitExample.modulemap"; sourceTree = ""; }; - 3FDBF98DB897AF834A42D7098334C8CE /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.json; path = PinpointKit.podspec.json; sourceTree = ""; }; - 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; - 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; - 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; - 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; - 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; - 5B1D9132A3BF861067D1A5A4F850939F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 4438BAB6724361E9E4CDDA051DC76153 /* StrokeLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeLayoutManager.swift; path = PinpointKit/PinpointKit/Sources/Core/StrokeLayoutManager.swift; sourceTree = ""; }; + 4C2FEEC64163B8B297452A184CF9C179 /* AnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationView.swift; sourceTree = ""; }; + 4CBF436E92A266FF7CE3A7AB3A3F407F /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; + 4FE5A2C9FEB07141CAC13EB4D03E06C1 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PinpointKit/PinpointKit/Sources/Core/Configuration.swift; sourceTree = ""; }; + 51E620A6C07893FCE37BC777E8699A5D /* BoxAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BoxAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BoxAnnotationView.swift; sourceTree = ""; }; + 54AB389205B3ED61FBD88F98956C11D1 /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; + 55719011194328F1F2E533988B1D84B7 /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; + 5A90FFFC5A6A9AFD869B6D3081DAA143 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; - 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; - 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; - 6D17AC19ABFB54DDF81A2D8D2C5F8B29 /* ASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ASLLogger.m; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.m; sourceTree = ""; }; - 6D1E05C4FCDDD8ECD7662BB9B62D8AC2 /* EditorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditorDelegate.swift; sourceTree = ""; }; + 62674EF5ACF3FA5EED241237B4A6179F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 62CA52A15E05E8E78A8DBC151353FEA7 /* SuccessType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuccessType.swift; path = PinpointKit/PinpointKit/Sources/Core/SuccessType.swift; sourceTree = ""; }; + 6538C9DF313D013528BD5981DC518E9B /* ShakeDetectingWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindow.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindow.swift; sourceTree = ""; }; + 65CD66AF45E5DE1DDE8FFAE253F28E37 /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; 6F799E3827193EF1AF1D3B405780DEDB /* Pods-PinpointKitExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PinpointKitExample-acknowledgements.markdown"; sourceTree = ""; }; - 70F5E7833FD6FCA0E5FAA4EFC590896C /* ArrowAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrowAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/ArrowAnnotationView.swift; sourceTree = ""; }; - 72414EF0D10097444716FB9576A1C867 /* StrokeLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeLayoutManager.swift; path = PinpointKit/PinpointKit/Sources/Core/StrokeLayoutManager.swift; sourceTree = ""; }; - 79A4E9BB9E63817933E58AA723294E60 /* UIGestureRecognizer+FailRecognizing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+FailRecognizing.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIGestureRecognizer+FailRecognizing.swift"; sourceTree = ""; }; - 7DC35FE57A10FDCBB4D1633E94D586F1 /* BezierPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BezierPath.swift; path = PinpointKit/PinpointKit/Sources/Core/BezierPath.swift; sourceTree = ""; }; - 7E70FFD57FCC9BAEF5014FB1B9413B7A /* LogViewer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogViewer.swift; path = PinpointKit/PinpointKit/Sources/Core/LogViewer.swift; sourceTree = ""; }; - 7EDD286BE3886B52010598D4CAE29A81 /* FeedbackTableViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackTableViewDataSource.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift; sourceTree = ""; }; - 821669675B1755221575325BE463705D /* SuccessType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuccessType.swift; path = PinpointKit/PinpointKit/Sources/Core/SuccessType.swift; sourceTree = ""; }; - 8609242033254E0EFDD43E0C722BB8BA /* ASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ASLLogger.h; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.h; sourceTree = ""; }; - 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/ScreenshotCell.swift; sourceTree = ""; }; - 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; + 738F1AE9D19CA7E4CB758D968A5B4726 /* Screenshotter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screenshotter.swift; path = PinpointKit/PinpointKit/Sources/Core/Screenshotter.swift; sourceTree = ""; }; + 7431742269837F83A513F794C8912CC0 /* BlurAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlurAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BlurAnnotationView.swift; sourceTree = ""; }; + 78D3964C1492B3215058B5E0D6BAB43A /* ShakeDetectingWindowDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindowDelegate.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindowDelegate.swift; sourceTree = ""; }; + 78F1CF99C78EDFF60AC9C812BD6E9240 /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; + 7963F182B20C7A49A76E74DBB7C15175 /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; + 7B18FE978AC8F533799FA7BFE8C80220 /* EditorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditorDelegate.swift; sourceTree = ""; }; + 7F44BB3222E6CCD1DF96C3A52F08BF88 /* PinpointKit+ShakePresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PinpointKit+ShakePresentation.swift"; path = "PinpointKit/PinpointKit/Sources/Core/PinpointKit+ShakePresentation.swift"; sourceTree = ""; }; + 7F4DB93645A94418B3B2381FEF7E44A9 /* ASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ASLLogger.m; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.m; sourceTree = ""; }; + 842E427F8051C9A892C8251E32A4CBB3 /* UIView+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIView+PinpointKit.swift"; sourceTree = ""; }; + 8E10CDFB444E326946B98FB6AD1C7B0D /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; 8E48D44046FC860DAC611BC5CA2F03A3 /* Pods-PinpointKitExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PinpointKitExample-acknowledgements.plist"; sourceTree = ""; }; - 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; - 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; - 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; - A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PinpointKit+ShakePresentation.swift"; path = "PinpointKit/PinpointKit/Sources/Core/PinpointKit+ShakePresentation.swift"; sourceTree = ""; }; - A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screenshotter.swift; path = PinpointKit/PinpointKit/Sources/Core/Screenshotter.swift; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 948A12FC165BA7D0BB328A125D01ED2C /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; + 94CD8E7A5D50A8B0D23C85FAC7ACA8DC /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; + 975940D427A6E4F6A43FAA6908D2941E /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; + 9820DA2E518376DA84EDEF99C2A26941 /* UIColor+Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIColor+Palette.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIColor+Palette.swift"; sourceTree = ""; }; A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PinpointKitExample-umbrella.h"; sourceTree = ""; }; + A9B912A4CCABAF55DE51B08601DE21FB /* ScreenshotDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotDetector.swift; path = PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift; sourceTree = ""; }; AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - AEF8952D9E3125C1221BA915903E2D4B /* UIView+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIView+PinpointKit.swift"; sourceTree = ""; }; - B2E5B0B80F90B799E9FC32252705A323 /* SystemLogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SystemLogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/SystemLogCollector.swift; sourceTree = ""; }; - B333E0EF66528DC812FF53EB78C35F8B /* BlurAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlurAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BlurAnnotationView.swift; sourceTree = ""; }; - B38B67288C6F1ED3EE92AA6A5AD2E9A1 /* UIColor+Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIColor+Palette.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIColor+Palette.swift"; sourceTree = ""; }; - B6CF08B0132F5D100DFB5DB4892088BC /* ShakeDetectingWindowDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindowDelegate.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindowDelegate.swift; sourceTree = ""; }; - BF520F8543F311F26584F77DFF7BB650 /* EditImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewController.swift; sourceTree = ""; }; + AF4AA6B4C273AE74D761617963326689 /* PinpointKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinpointKit-dummy.m"; sourceTree = ""; }; + B42AC62B46C0BFF3ECA267F260606E78 /* EditImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewController.swift; sourceTree = ""; }; + B89A004F526B1CFBA2C97DEFBB415AA3 /* BezierPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BezierPath.swift; path = PinpointKit/PinpointKit/Sources/Core/BezierPath.swift; sourceTree = ""; }; + BDDC3B377D528F59458436B4F5B2A532 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; - C0E51776E4A07A58BE4A29DABEAEC45D /* BoxAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BoxAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BoxAnnotationView.swift; sourceTree = ""; }; + C00706EA58BC249654293370835E7B2F /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; + C41C99D9CC157D7B6C40B6282441E56A /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; C4D9057897E22B5264C1439151CEB8B8 /* Pods-PinpointKitExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-frameworks.sh"; sourceTree = ""; }; - C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; - CB1282A251E0E64DECC7DA52116A50BF /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; - CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; - CBD3AACD533D6CFC5CB9D1DA35F15797 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; - D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; + C63868D4F47ACBB8F687D75CAA16D330 /* ASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ASLLogger.h; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.h; sourceTree = ""; }; + C6B084565AC89CB1527D302FCD4C9D98 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; + C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; + C941948E355AF53105E4F06375EB41FE /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; + CFC685FBC0B8F58C769C3EF999025591 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; + D25D4074CB312FA092492984EE49065C /* FeedbackTableViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackTableViewDataSource.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift; sourceTree = ""; }; + D3371A00E70F6E77C9A5D48DE67BD2CB /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; + D7E7751C45EF11EDA8C659ACE570C9F2 /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; D816779985ABAD820D8B8B4720BA007D /* Pods-PinpointKitExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.release.xcconfig"; sourceTree = ""; }; - DA207E322FDE20900695705BA22A88FF /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; - DBA3676F5598C68F291ACEE496E5449E /* PinpointKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinpointKit-dummy.m"; sourceTree = ""; }; - DE42E0DEF998BD30884C36CAA4B2893B /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; - DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; - E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; - F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; - F2FC082025126DA200EF59E5 /* RequestScreenshotCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestScreenshotCell.swift; sourceTree = ""; }; - F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; - F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; - FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; - FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; - FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; - FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PinpointKitExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; - FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; + D88DBBB49B6002855E88FDDEA82777D8 /* InterfaceCustomization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomization.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift; sourceTree = ""; }; + D9F8C20B0E1C8F6C37F7A341E47E6F49 /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; + DDA0CDAD8C471D412EA68FCF820A4379 /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; path = PinpointKit.podspec.json; sourceTree = ""; }; + E06EBFF2DB7A7C46EB9402CDE3B0D784 /* ScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/ScreenshotCell.swift; sourceTree = ""; }; + E1BA359F8804A184AE4958C42B32FBA5 /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; + EEE5BA660541B12ECF838913CE5A67BE /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; + F46FA80D00E4E8DEDF2049A8DE6899A1 /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; + F78B1A489CD820F94FC9DEBB400B0E61 /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; + F9D11173A4411DF8FD3A40EFB78E3542 /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; + FEC953C16F4C460226A557156BC60B84 /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; + FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PinpointKitExample.framework; path = "Pods-PinpointKitExample.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -184,14 +184,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 932D204CCA2490E38B37E3C5686915C1 /* Frameworks */ = { + FC4191AB6EC2947A71E52AEBDC32C502 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FEA0817F607EA1B754E36501860D5DC0 /* Foundation.framework in Frameworks */, - A38D28B134E0146D5F6A777652380823 /* MessageUI.framework in Frameworks */, - FFA525D0CA2EC303F85A91527D3410C5 /* Photos.framework in Frameworks */, - 3F444F4F8FB3310D241B2B85C56403D0 /* UIKit.framework in Frameworks */, + DD81044C197307F949945AEEF737C93C /* Foundation.framework in Frameworks */, + 412DC27A78C88B33EF0B62DCA18B9A51 /* MessageUI.framework in Frameworks */, + 5ED58BAA2373949FF829C80BE05853D6 /* Photos.framework in Frameworks */, + C1141DBC56E8F518F55C6CDDA5F2CE88 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -229,51 +229,38 @@ isa = PBXGroup; children = ( ); + name = SwiftLint; path = SwiftLint; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 4220D4CDDCA1E923778B0631C4F8EDE9 /* Pod */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - D1F3289BA0E17AC23978E1C387871661 /* Development Pods */, - 14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */, - 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */, - A4F71E61075C99A869D49E625CF20775 /* Products */, - 024D40B0D6C60CF034E1715DEE0E8ABB /* Targets Support Files */, + 62674EF5ACF3FA5EED241237B4A6179F /* LICENSE */, + DDA0CDAD8C471D412EA68FCF820A4379 /* PinpointKit.podspec.json */, + C41C99D9CC157D7B6C40B6282441E56A /* README.md */, ); + name = Pod; sourceTree = ""; }; - 8408926050D588FCFBF182151F6F7784 /* Editing */ = { - isa = PBXGroup; - children = ( - 493815412041822D99CA72C7ECDE0404 /* AnnotationViewFactory.swift */, - BF520F8543F311F26584F77DFF7BB650 /* EditImageViewController.swift */, - 8D4CF35D73A9AAC5D32A5C7FBAA8015D /* EditImageViewControllerBarButtonItemProviding.swift */, - FA7F76CDDE0C1F5990BDE3E1713D370F /* Editor.swift */, - 6D1E05C4FCDDD8ECD7662BB9B62D8AC2 /* EditorDelegate.swift */, - CB9E678C4B77E52ED97755BFD6EE6FFF /* Tool.swift */, - ); - name = Editing; - path = PinpointKit/PinpointKit/Sources/Core/Editing; - sourceTree = ""; - }; - 84546063E1E9C67CCF9374BB5357108E /* ScreenshotDetector */ = { + 66D62A71CD7D11A97A0E29837DD2D89C /* ScreenshotDetector */ = { isa = PBXGroup; children = ( - 26C65CBF4808D6AF8B56952546FFEDA7 /* ScreenshotDetector.swift */, + A9B912A4CCABAF55DE51B08601DE21FB /* ScreenshotDetector.swift */, ); name = ScreenshotDetector; sourceTree = ""; }; - 87AEF9ABAE3B30DB7BB02F619536D9BC /* Pod */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - 5B1D9132A3BF861067D1A5A4F850939F /* LICENSE */, - 3FDBF98DB897AF834A42D7098334C8CE /* PinpointKit.podspec.json */, - CBD3AACD533D6CFC5CB9D1DA35F15797 /* README.md */, + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + D1F3289BA0E17AC23978E1C387871661 /* Development Pods */, + 14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */, + 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */, + A4F71E61075C99A869D49E625CF20775 /* Products */, + 024D40B0D6C60CF034E1715DEE0E8ABB /* Targets Support Files */, ); - name = Pod; sourceTree = ""; }; 93187347FFE4E891D405722159860C98 /* Pods-PinpointKitExample */ = { @@ -294,18 +281,18 @@ path = "Target Support Files/Pods-PinpointKitExample"; sourceTree = ""; }; - 94359ECD1E977CEEAFDD39167FEE77CD /* Support Files */ = { + 94D10548A2B244741490168BBD2EF561 /* Editing */ = { isa = PBXGroup; children = ( - 1C17F143A14857DBB529CD2152C9730C /* Info.plist */, - DE42E0DEF998BD30884C36CAA4B2893B /* PinpointKit.modulemap */, - 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */, - DBA3676F5598C68F291ACEE496E5449E /* PinpointKit-dummy.m */, - CB1282A251E0E64DECC7DA52116A50BF /* PinpointKit-prefix.pch */, - 0357A1364E56BB51820B0E7995CFAD5C /* PinpointKit-umbrella.h */, + F78B1A489CD820F94FC9DEBB400B0E61 /* AnnotationViewFactory.swift */, + B42AC62B46C0BFF3ECA267F260606E78 /* EditImageViewController.swift */, + 30028D83C7C2EC3257C16607AA472764 /* EditImageViewControllerBarButtonItemProviding.swift */, + E1BA359F8804A184AE4958C42B32FBA5 /* Editor.swift */, + 7B18FE978AC8F533799FA7BFE8C80220 /* EditorDelegate.swift */, + 78F1CF99C78EDFF60AC9C812BD6E9240 /* Tool.swift */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/PinpointKit"; + name = Editing; + path = PinpointKit/PinpointKit/Sources/Core/Editing; sourceTree = ""; }; 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */ = { @@ -316,6 +303,18 @@ name = Pods; sourceTree = ""; }; + 99C3AA86627740A4F4607554D0C06D78 /* PinpointKit */ = { + isa = PBXGroup; + children = ( + FBE6006D6CB53170E55CC6365A5688F7 /* Core */, + 4220D4CDDCA1E923778B0631C4F8EDE9 /* Pod */, + 66D62A71CD7D11A97A0E29837DD2D89C /* ScreenshotDetector */, + C3558219DFEA60EA14A0A57062E24E99 /* Support Files */, + ); + name = PinpointKit; + path = ../..; + sourceTree = ""; + }; A4F71E61075C99A869D49E625CF20775 /* Products */ = { isa = PBXGroup; children = ( @@ -325,104 +324,106 @@ name = Products; sourceTree = ""; }; - BD59D50CACEEE88F52E1E8A95CDA38D2 /* Resources */ = { + C3558219DFEA60EA14A0A57062E24E99 /* Support Files */ = { isa = PBXGroup; children = ( - F876A1F9CE889C41044AC03A00154C12 /* PinpointKit.xcassets */, - F240A269F25EF6452815D380D97DAFCE /* SourceSansPro-Bold.ttf */, - FA5CEAEBFF7F07C0A81C3D68E1B8099F /* SourceSansPro-Regular.ttf */, - D4BA123B319E53DC675463F41248B408 /* SourceSansPro-Semibold.ttf */, + BDDC3B377D528F59458436B4F5B2A532 /* Info.plist */, + 55719011194328F1F2E533988B1D84B7 /* PinpointKit.modulemap */, + C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */, + AF4AA6B4C273AE74D761617963326689 /* PinpointKit-dummy.m */, + C941948E355AF53105E4F06375EB41FE /* PinpointKit-prefix.pch */, + 05E823CDD4DBF5D80B81EB92056284A3 /* PinpointKit-umbrella.h */, ); - name = Resources; + name = "Support Files"; + path = "Example/Pods/Target Support Files/PinpointKit"; sourceTree = ""; }; - C8D82AF06A34A97D7DCA2A3767F5DDF1 /* Core */ = { + C85C7962BB7D9A005B13AA3D1451175E /* Resources */ = { isa = PBXGroup; children = ( - 921432A35D6EC33C24F5FA84A0D33C82 /* Annotations.swift */, - 382F4FFE575ECA53C2498DEFD2375875 /* AnnotationsView.swift */, - 2D52B806A20A17792401AD1F0CE16D6E /* AnnotationView.swift */, - 70F5E7833FD6FCA0E5FAA4EFC590896C /* ArrowAnnotationView.swift */, - 8609242033254E0EFDD43E0C722BB8BA /* ASLLogger.h */, - 6D17AC19ABFB54DDF81A2D8D2C5F8B29 /* ASLLogger.m */, - DFC3DFC64803B1ED92C7E201C1254319 /* BarButtonItem.swift */, - 98F274FD0AEAAC1D9177DF049F67FD21 /* BasicLogViewController.swift */, - 7DC35FE57A10FDCBB4D1633E94D586F1 /* BezierPath.swift */, - B333E0EF66528DC812FF53EB78C35F8B /* BlurAnnotationView.swift */, - C0E51776E4A07A58BE4A29DABEAEC45D /* BoxAnnotationView.swift */, - 1BFC504C61DC3A179069E4415CD6AE04 /* CheckmarkCell.swift */, - 2A4A16F567B3816EB06D7CCD395BB670 /* Configuration.swift */, - 97C8A07DD44B7443984FF588D0D3AD9E /* Feedback.swift */, - 536394FAA34D13FC07F732CCE1232560 /* FeedbackCollector.swift */, - D51F9498C588166449125AC270ABDFE5 /* FeedbackConfiguration.swift */, - 6A74B6E930E757F0949B1103C7AF039E /* FeedbackNavigationController.swift */, - 7EDD286BE3886B52010598D4CAE29A81 /* FeedbackTableViewDataSource.swift */, - F335322C8F7CD8A32EFB47ED2C266C7D /* FeedbackViewController.swift */, - DA207E322FDE20900695705BA22A88FF /* Fonts.swift */, - FFEA178F47C7E4565F4D7CB1138EC0AE /* InterfaceCustomizable.swift */, - 25B1E4158382AED3473FA8BA35702747 /* InterfaceCustomization.swift */, - 5E1A2AA7D6BB5618EF7E80BEB97C8B80 /* KeyboardAvoider.swift */, - FBD285008131DA09322169C99BCD8C12 /* LogCollector.swift */, - 94FBE053523E0D36869939B45C41AC50 /* LogSupporting.swift */, - 7E70FFD57FCC9BAEF5014FB1B9413B7A /* LogViewer.swift */, - 3CBD6F4DEB8590A7A7BB56A46FE57D11 /* MailSender.swift */, - FFFD4F5EFD22A0B5BBEA0FECE70A14B3 /* MIMEType.swift */, - 566B3A991FB1B0E303C9B9FD0B94785C /* NavigationController.swift */, - 311974FA8AC8D65E1C793A8D47D47A09 /* NSBundle+PinpointKit.swift */, - E80BDB12F8CF23076C1D5418DFF019E0 /* PinpointKit.h */, - 09083FA883BD40D83ACFB05C9E8CD248 /* PinpointKit.swift */, - A3961F04C57FF2EBD461B32743CCD955 /* PinpointKit+ShakePresentation.swift */, - 28CE4D8C3B244CAB0ECB99E1E0B46A5F /* Screen.swift */, - 89627F03E379B52123DE2F84C56BF8EF /* ScreenshotCell.swift */, - F2FC082025126DA200EF59E5 /* RequestScreenshotCell.swift */, - A44CC3E9AB3F28C302A51B604E4A99DB /* Screenshotter.swift */, - C7769B9CCFE242171DC475AC9A4C7486 /* Sender.swift */, - 32CE88DE1B94ED0BC021A37D05980FF2 /* ShakeDetectingWindow.swift */, - B6CF08B0132F5D100DFB5DB4892088BC /* ShakeDetectingWindowDelegate.swift */, - 72414EF0D10097444716FB9576A1C867 /* StrokeLayoutManager.swift */, - 821669675B1755221575325BE463705D /* SuccessType.swift */, - B2E5B0B80F90B799E9FC32252705A323 /* SystemLogCollector.swift */, - 1F9390D90542433BA8E137C6993930A9 /* TextAnnotationView.swift */, - 4BD009D55A389055948D4285794F9504 /* UIBarButtonItem+TitleTextAttributeStates.swift */, - B38B67288C6F1ED3EE92AA6A5AD2E9A1 /* UIColor+Palette.swift */, - 79A4E9BB9E63817933E58AA723294E60 /* UIGestureRecognizer+FailRecognizing.swift */, - AEF8952D9E3125C1221BA915903E2D4B /* UIView+PinpointKit.swift */, - 8408926050D588FCFBF182151F6F7784 /* Editing */, - BD59D50CACEEE88F52E1E8A95CDA38D2 /* Resources */, + C6B084565AC89CB1527D302FCD4C9D98 /* PinpointKit.xcassets */, + 7963F182B20C7A49A76E74DBB7C15175 /* SourceSansPro-Bold.ttf */, + 65CD66AF45E5DE1DDE8FFAE253F28E37 /* SourceSansPro-Regular.ttf */, + CFC685FBC0B8F58C769C3EF999025591 /* SourceSansPro-Semibold.ttf */, ); - name = Core; + name = Resources; sourceTree = ""; }; D1F3289BA0E17AC23978E1C387871661 /* Development Pods */ = { isa = PBXGroup; children = ( - F86EDB1296210AFC22CFB82010525B69 /* PinpointKit */, + 99C3AA86627740A4F4607554D0C06D78 /* PinpointKit */, ); name = "Development Pods"; sourceTree = ""; }; - F86EDB1296210AFC22CFB82010525B69 /* PinpointKit */ = { + FBE6006D6CB53170E55CC6365A5688F7 /* Core */ = { isa = PBXGroup; children = ( - C8D82AF06A34A97D7DCA2A3767F5DDF1 /* Core */, - 87AEF9ABAE3B30DB7BB02F619536D9BC /* Pod */, - 84546063E1E9C67CCF9374BB5357108E /* ScreenshotDetector */, - 94359ECD1E977CEEAFDD39167FEE77CD /* Support Files */, + 5A90FFFC5A6A9AFD869B6D3081DAA143 /* Annotations.swift */, + 8E10CDFB444E326946B98FB6AD1C7B0D /* AnnotationsView.swift */, + 4C2FEEC64163B8B297452A184CF9C179 /* AnnotationView.swift */, + 373AF359083B486A9C172AAD6FEC2945 /* ArrowAnnotationView.swift */, + C63868D4F47ACBB8F687D75CAA16D330 /* ASLLogger.h */, + 7F4DB93645A94418B3B2381FEF7E44A9 /* ASLLogger.m */, + 948A12FC165BA7D0BB328A125D01ED2C /* BarButtonItem.swift */, + 251F653008D327FA443D9F5328679466 /* BasicLogViewController.swift */, + B89A004F526B1CFBA2C97DEFBB415AA3 /* BezierPath.swift */, + 7431742269837F83A513F794C8912CC0 /* BlurAnnotationView.swift */, + 51E620A6C07893FCE37BC777E8699A5D /* BoxAnnotationView.swift */, + 372DF34E13BC8EB43FA0CA5FFB27E1D3 /* CheckmarkCell.swift */, + 4FE5A2C9FEB07141CAC13EB4D03E06C1 /* Configuration.swift */, + 23FC7EA1306975AC4F76FBAA4029CED6 /* Feedback.swift */, + 2835130E7A5A4D213AE4CAB0226E40D8 /* FeedbackCollector.swift */, + 0329DC7E7D8B71980523FF20752FD67B /* FeedbackConfiguration.swift */, + F9D11173A4411DF8FD3A40EFB78E3542 /* FeedbackNavigationController.swift */, + D25D4074CB312FA092492984EE49065C /* FeedbackTableViewDataSource.swift */, + F46FA80D00E4E8DEDF2049A8DE6899A1 /* FeedbackViewController.swift */, + D9F8C20B0E1C8F6C37F7A341E47E6F49 /* Fonts.swift */, + 1ADED76D0C8F26B0A7F7EA0DAFA147FA /* InterfaceCustomizable.swift */, + D88DBBB49B6002855E88FDDEA82777D8 /* InterfaceCustomization.swift */, + D3371A00E70F6E77C9A5D48DE67BD2CB /* KeyboardAvoider.swift */, + D7E7751C45EF11EDA8C659ACE570C9F2 /* LogCollector.swift */, + 4CBF436E92A266FF7CE3A7AB3A3F407F /* LogSupporting.swift */, + 33103E5BE61BE760494193C52E9C79BF /* LogViewer.swift */, + FEC953C16F4C460226A557156BC60B84 /* MailSender.swift */, + 3478179F380EF7CFCF2ABFCAC7B38DF5 /* MIMEType.swift */, + 94CD8E7A5D50A8B0D23C85FAC7ACA8DC /* NavigationController.swift */, + 2A6E92ADC66CBE9FB9C4D9777D42664B /* NSBundle+PinpointKit.swift */, + 975940D427A6E4F6A43FAA6908D2941E /* PinpointKit.h */, + 54AB389205B3ED61FBD88F98956C11D1 /* PinpointKit.swift */, + 7F44BB3222E6CCD1DF96C3A52F08BF88 /* PinpointKit+ShakePresentation.swift */, + 0EC7914F33A6A667C99BF844DB50D751 /* RequestScreenshotCell.swift */, + 205308D4246CB65A84A4C41F0717AEAC /* Screen.swift */, + E06EBFF2DB7A7C46EB9402CDE3B0D784 /* ScreenshotCell.swift */, + 738F1AE9D19CA7E4CB758D968A5B4726 /* Screenshotter.swift */, + C00706EA58BC249654293370835E7B2F /* Sender.swift */, + 6538C9DF313D013528BD5981DC518E9B /* ShakeDetectingWindow.swift */, + 78D3964C1492B3215058B5E0D6BAB43A /* ShakeDetectingWindowDelegate.swift */, + 4438BAB6724361E9E4CDDA051DC76153 /* StrokeLayoutManager.swift */, + 62CA52A15E05E8E78A8DBC151353FEA7 /* SuccessType.swift */, + 049E72C77B4A63F1EEA4098028664FFD /* SystemLogCollector.swift */, + 3A570B1EFBE2EA057A385714A772BD48 /* TextAnnotationView.swift */, + EEE5BA660541B12ECF838913CE5A67BE /* UIBarButtonItem+TitleTextAttributeStates.swift */, + 9820DA2E518376DA84EDEF99C2A26941 /* UIColor+Palette.swift */, + 088A47E4182E0D88F1368F2770FBF426 /* UIGestureRecognizer+FailRecognizing.swift */, + 842E427F8051C9A892C8251E32A4CBB3 /* UIView+PinpointKit.swift */, + 94D10548A2B244741490168BBD2EF561 /* Editing */, + C85C7962BB7D9A005B13AA3D1451175E /* Resources */, ); - name = PinpointKit; - path = ../..; + name = Core; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - B3914F6F10E79B70E912F583AFBEAB90 /* Headers */ = { + BC443914FD3981FDBB824BCC872924E2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 5399D8C30EA2556572EB8C0E988BC492 /* ASLLogger.h in Headers */, - CD3056E774AEE082DF089C1F411B6979 /* PinpointKit-umbrella.h in Headers */, - 08056AEFACF3FED8F0CA862948A8AF4D /* PinpointKit.h in Headers */, + 351C557F7875A8C2469E669A7E513D0B /* ASLLogger.h in Headers */, + BC5346008A7018D5154A45E81602A18F /* PinpointKit-umbrella.h in Headers */, + F76B36D9D7C10BEC5C61B44C9FB03DBA /* PinpointKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -437,14 +438,14 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 2BF73340F09BA2FFDE2CDB776DEB52C5 /* PinpointKit */ = { + 3B5D678C2341ED5E81CC83CE623A0DCF /* PinpointKit */ = { isa = PBXNativeTarget; - buildConfigurationList = BADEFA24EB032B50A5CB43722C616950 /* Build configuration list for PBXNativeTarget "PinpointKit" */; + buildConfigurationList = F0817BB66C4AEDA92FC48DFA80F839B8 /* Build configuration list for PBXNativeTarget "PinpointKit" */; buildPhases = ( - A382642DB2627CA9347B9BEDBCAB16BA /* Sources */, - 932D204CCA2490E38B37E3C5686915C1 /* Frameworks */, - B3914F6F10E79B70E912F583AFBEAB90 /* Headers */, - 2297AE9B9F896621DB40373EE3038E35 /* Resources */, + 7A669FAD3C263325610DBF821C0A94F6 /* Sources */, + FC4191AB6EC2947A71E52AEBDC32C502 /* Frameworks */, + BC443914FD3981FDBB824BCC872924E2 /* Headers */, + 2C62B0809734D428C5F92C263E6DE264 /* Resources */, ); buildRules = ( ); @@ -487,7 +488,6 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( - English, en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; @@ -495,21 +495,21 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 2BF73340F09BA2FFDE2CDB776DEB52C5 /* PinpointKit */, + 3B5D678C2341ED5E81CC83CE623A0DCF /* PinpointKit */, 7883FC5596C43D4116A971A780A7A715 /* Pods-PinpointKitExample */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 2297AE9B9F896621DB40373EE3038E35 /* Resources */ = { + 2C62B0809734D428C5F92C263E6DE264 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - E53AAB111783AA2CA4D1C71DDFE2DC23 /* PinpointKit.xcassets in Resources */, - 722B49F4F4E9E0CA7FDD585FE23F6C34 /* SourceSansPro-Bold.ttf in Resources */, - D9FE5E1D8AECB6C9979181AFEF4F781D /* SourceSansPro-Regular.ttf in Resources */, - 9BC38233B72752F33B94E89DF87574AF /* SourceSansPro-Semibold.ttf in Resources */, + 262DFA6B4709D314BFA1100FC3332CDA /* PinpointKit.xcassets in Resources */, + 432FEB4E961CCFF6D678DE193B6812BC /* SourceSansPro-Bold.ttf in Resources */, + 562E239122CE83E8EE6269EBAF809E8F /* SourceSansPro-Regular.ttf in Resources */, + 5D472B44585CBBF09624A698E0B8101F /* SourceSansPro-Semibold.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -524,64 +524,64 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A382642DB2627CA9347B9BEDBCAB16BA /* Sources */ = { + 7A669FAD3C263325610DBF821C0A94F6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 86262A2E2FA3B423DA7B581CBD3F6EC9 /* Annotations.swift in Sources */, - A8A6746F1CBC24A44F738F0BD004E58B /* AnnotationsView.swift in Sources */, - C53B0960AB64FF45DE8C3B9FC435BEC4 /* AnnotationView.swift in Sources */, - 3C76E86EB2681F14B8CCB5E58C2C32C2 /* AnnotationViewFactory.swift in Sources */, - 9ABBE0161CA0924D820EE0E11FC713FE /* ArrowAnnotationView.swift in Sources */, - AD67AB45D7ADD63DDB00FEBDE6FDFF7B /* ASLLogger.m in Sources */, - D6ACE892E5917FB3FD3BA713D325463C /* BarButtonItem.swift in Sources */, - E761507BF5971326A49DF213AFBBB81B /* BasicLogViewController.swift in Sources */, - A36A22039CC7A5340F4B51E7D2C7E795 /* BezierPath.swift in Sources */, - 214174089D52F467AA533B24873D438F /* BlurAnnotationView.swift in Sources */, - A933F7AEEBDE1BEAAC0C96115CE942B0 /* BoxAnnotationView.swift in Sources */, - D82135030FC1B965720C15945B34977C /* CheckmarkCell.swift in Sources */, - 31AB0E0CE9539906C6DEFE97242E22B7 /* Configuration.swift in Sources */, - 772CF5C65250FF4626497495FCF99FF7 /* EditImageViewController.swift in Sources */, - 1049CB571DF5FE98FF647934266EF277 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, - 13B139DFEDC466217F2F0991B61A3B3F /* Editor.swift in Sources */, - DD72E1ABD053865C06E69A2C15F48F4C /* EditorDelegate.swift in Sources */, - E325016BE5CA51D7E56529C392AE2011 /* Feedback.swift in Sources */, - 43025B04F5328ED323A85A426DBC9655 /* FeedbackCollector.swift in Sources */, - B4A2EA6E6A0046B45F9BDEA734F02801 /* FeedbackConfiguration.swift in Sources */, - D5243BBD5A4B0C9A5417ACC19B70E4E8 /* FeedbackNavigationController.swift in Sources */, - 5CB89166F21AB8870C035B2BBE27B932 /* FeedbackTableViewDataSource.swift in Sources */, - B3ADED1A1D1EAD2B07EC424F158C0649 /* FeedbackViewController.swift in Sources */, - A830F77E31F907FEB2C87ACCA05CF802 /* Fonts.swift in Sources */, - 0B0E4B6B12278ED287EB64BC1567BFAA /* InterfaceCustomizable.swift in Sources */, - C74CAC8DFF8B3F3FC8FECD254FB6B94E /* InterfaceCustomization.swift in Sources */, - 7A330C234590067F9AABFFECF26A373C /* KeyboardAvoider.swift in Sources */, - C236F6FB31F89D594E1C42D1DF83DCA2 /* LogCollector.swift in Sources */, - BD851EF373E5BC00A537C6A2090A4A6B /* LogSupporting.swift in Sources */, - ACF949071465F3992900CBF8845867BF /* LogViewer.swift in Sources */, - B4BE0B879877F8BA32E3FB5645B4717A /* MailSender.swift in Sources */, - F9EFFAD1D945A97BB0B6BD80B160DF2E /* MIMEType.swift in Sources */, - 5ABC1FEB8E81BCA4E034307F381B6F99 /* NavigationController.swift in Sources */, - B9AA6AF9EB971C858368711BCDF5390A /* NSBundle+PinpointKit.swift in Sources */, - 48DE0D08E6A7D14587F8CEEB6BA0B135 /* PinpointKit+ShakePresentation.swift in Sources */, - B9A6FDFB752869C2852411B5E40EBE60 /* PinpointKit-dummy.m in Sources */, - B11A413C80C7A925273C5AE1C818F9FE /* PinpointKit.swift in Sources */, - 2AE1CC11F598D66E0D369BBC77D537A2 /* Screen.swift in Sources */, - 78C1BDF5DAA5857B1D1825731ED47066 /* ScreenshotCell.swift in Sources */, - B38D162DAB2634637B051DE42C306B51 /* ScreenshotDetector.swift in Sources */, - AE30940E7272CAC1416551E290FDE507 /* Screenshotter.swift in Sources */, - F2FC082125126DA200EF59E5 /* RequestScreenshotCell.swift in Sources */, - 14D99C0D90E43E8B507E4287DA4DE033 /* Sender.swift in Sources */, - D57E0D9ABA5921E4BA0C2C8168B8F6DC /* ShakeDetectingWindow.swift in Sources */, - 58279D58C4C9C24602FDE4C866FCD82A /* ShakeDetectingWindowDelegate.swift in Sources */, - B5FA04152DD8A673E9DAF8B1D2EF909F /* StrokeLayoutManager.swift in Sources */, - 4A70ECDEE19D16C5454939EE969D42F4 /* SuccessType.swift in Sources */, - DBE20F6C62F3AE49C6B8C4315ED7A498 /* SystemLogCollector.swift in Sources */, - 634F19E8CABEC39449190BD2058D099A /* TextAnnotationView.swift in Sources */, - A8E452B5C1C97599B72818DA307B760F /* Tool.swift in Sources */, - 42FD3708CB25BAD560937283F5220724 /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */, - A30E4B1C8DB07D8935243B54A238BA4F /* UIColor+Palette.swift in Sources */, - 5E504640E3E520BDB82B0EF0ACC6192A /* UIGestureRecognizer+FailRecognizing.swift in Sources */, - 177CAD38810AAED381B406A596ECB85A /* UIView+PinpointKit.swift in Sources */, + DEBC159074BCD4F98CB1F8E3E872AB6A /* Annotations.swift in Sources */, + FB76089FFD7A54A07EDB5D3CB76DB854 /* AnnotationsView.swift in Sources */, + 81597951E5A12740928EF029A57E3AC0 /* AnnotationView.swift in Sources */, + 1087D08740C9DF5993D74EF1218B0803 /* AnnotationViewFactory.swift in Sources */, + 812EAF4CB8EC8CC4DF11201C5A035921 /* ArrowAnnotationView.swift in Sources */, + 63CEEA16BDE1D90330D671FF3926D61B /* ASLLogger.m in Sources */, + 356E57A2DCA44629C241120C3B547B80 /* BarButtonItem.swift in Sources */, + 528884A6CB194178BD10831CFBADF2A6 /* BasicLogViewController.swift in Sources */, + CC415BBEDBA1B578512014A981686822 /* BezierPath.swift in Sources */, + D8CB2D6C54F91233351C09C5AD7300B1 /* BlurAnnotationView.swift in Sources */, + EF48AFF9C0749C206DA385A5D19544A3 /* BoxAnnotationView.swift in Sources */, + 2BD44F84EF66974A1CA928131DE46628 /* CheckmarkCell.swift in Sources */, + 52F0E2CD283BE584A43896E2E03ED85E /* Configuration.swift in Sources */, + D3605A92D25D98AC11EA4D81526B7EBC /* EditImageViewController.swift in Sources */, + 4B95E63D62F2404C2A8297B060ABDBD5 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, + 2362CCB526B2156C96F9CAC6BFB48C55 /* Editor.swift in Sources */, + 3DB92BC49BD82DE01F838BE15FA25488 /* EditorDelegate.swift in Sources */, + 1F01E41FA6CA46DA1143969DCF214CF7 /* Feedback.swift in Sources */, + C4F4092A45B6D3AA78714FA6C60DAEA4 /* FeedbackCollector.swift in Sources */, + AE5398AD49564891EA8B7DB0E84ACAA2 /* FeedbackConfiguration.swift in Sources */, + 3ECD46D3953CDE607B546142EF848EFD /* FeedbackNavigationController.swift in Sources */, + E7B0ADBB6D224BC8CC3DA288DBFC4639 /* FeedbackTableViewDataSource.swift in Sources */, + 183BA76823D642DEFC041F7272603267 /* FeedbackViewController.swift in Sources */, + 693B12E945551FBCF91C0C3FFFF7E40F /* Fonts.swift in Sources */, + 1746F75E22D7D44D43FB1051E1B6DD37 /* InterfaceCustomizable.swift in Sources */, + 91C4CB7110F2C288F8D12FA23E2C3FA9 /* InterfaceCustomization.swift in Sources */, + A12E5D2A118291D0A136821E68B382F8 /* KeyboardAvoider.swift in Sources */, + D4EB1100EC07A9088773DF42D0681FF2 /* LogCollector.swift in Sources */, + 94496D1AC6DE2763DAE5F99736714011 /* LogSupporting.swift in Sources */, + 0BE1D0680D133636FEE05CA4589226BF /* LogViewer.swift in Sources */, + 3167F1B737EDA4723CA332A7D396830B /* MailSender.swift in Sources */, + DB4C1DB3A2907198EAD2FFF15B7C0862 /* MIMEType.swift in Sources */, + AC40C647BB7AA96A42D7A0EB371E5155 /* NavigationController.swift in Sources */, + 32BE9758D73D33D53B22601BCC8B7EA8 /* NSBundle+PinpointKit.swift in Sources */, + 18785931ED541940FC48E82A079BB6B8 /* PinpointKit+ShakePresentation.swift in Sources */, + A71D335F7E661CE7EC364ABA28E70F00 /* PinpointKit-dummy.m in Sources */, + D633A5B27540D78FAF0C530ACD1306BC /* PinpointKit.swift in Sources */, + AE0363C855A844AD44CAA6F65E2176D5 /* RequestScreenshotCell.swift in Sources */, + 09DEA27D11509728CC9AFC51085F68DE /* Screen.swift in Sources */, + A11B48160450C81D82E34489785F08F6 /* ScreenshotCell.swift in Sources */, + CD6FF5D3498E1C0870C6D45F4526ED16 /* ScreenshotDetector.swift in Sources */, + 308C97B7C0A485D7105D24B94DC365C9 /* Screenshotter.swift in Sources */, + 90EC9EC17D94ED66B57B326ED45D2041 /* Sender.swift in Sources */, + AFFD4014BCEBCD7E772E5538FD868520 /* ShakeDetectingWindow.swift in Sources */, + BD516B7C61AC0DC4E092DE638AF99E05 /* ShakeDetectingWindowDelegate.swift in Sources */, + 2217F5500A03956DB4A13D38CC2E147F /* StrokeLayoutManager.swift in Sources */, + DD726B8114A4CB7B865AB9EBE8111958 /* SuccessType.swift in Sources */, + 1B327D51B0DF8DF09A20A736BCA3F809 /* SystemLogCollector.swift in Sources */, + 0822021475B945FB7E8A5C2B5C7E2937 /* TextAnnotationView.swift in Sources */, + F885ED45F4EE0C5851D0F0D2CEFE482E /* Tool.swift in Sources */, + BA8134652B0F5D80A56EAF85F77FFF1C /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */, + ABA7755FBA46E8B882EF1D928299638D /* UIColor+Palette.swift in Sources */, + 8D422CAD1B29F226C0E00C17728EE0AE /* UIGestureRecognizer+FailRecognizing.swift in Sources */, + 5FBD7EC68725A7196BD5346B1811B440 /* UIView+PinpointKit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -591,7 +591,7 @@ 7E5002678ABA6FF9515E43AC0BAFEFED /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PinpointKit; - target = 2BF73340F09BA2FFDE2CDB776DEB52C5 /* PinpointKit */; + target = 3B5D678C2341ED5E81CC83CE623A0DCF /* PinpointKit */; targetProxy = 9806AEF51849764C12CF65E03DC758D1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -660,9 +660,42 @@ }; name = Debug; }; - 5A190F3FB69377E62FC7E090836E1318 /* Debug */ = { + 27389F5CFED05F1BB79F0B15F422063D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PinpointKit/PinpointKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PinpointKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PinpointKit/PinpointKit.modulemap"; + PRODUCT_MODULE_NAME = PinpointKit; + PRODUCT_NAME = PinpointKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 510F630BFADF2D0AC41F9590C7DCD5D7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */; + baseConfigurationReference = C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -750,39 +783,6 @@ }; name = Release; }; - 939F50D0A90FD0302BEB3828A1CA6361 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4E7B2231905B54D9D8ADE0101717A2D1 /* PinpointKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/PinpointKit/PinpointKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PinpointKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PinpointKit/PinpointKit.modulemap"; - PRODUCT_MODULE_NAME = PinpointKit; - PRODUCT_NAME = PinpointKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; F438AC93E4D8049E6E5920B0AD3F164F /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */; @@ -874,11 +874,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BADEFA24EB032B50A5CB43722C616950 /* Build configuration list for PBXNativeTarget "PinpointKit" */ = { + F0817BB66C4AEDA92FC48DFA80F839B8 /* Build configuration list for PBXNativeTarget "PinpointKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5A190F3FB69377E62FC7E090836E1318 /* Debug */, - 939F50D0A90FD0302BEB3828A1CA6361 /* Release */, + 510F630BFADF2D0AC41F9590C7DCD5D7 /* Debug */, + 27389F5CFED05F1BB79F0B15F422063D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/PinpointKit/PinpointKit.xcodeproj/project.pbxproj b/PinpointKit/PinpointKit.xcodeproj/project.pbxproj index 4640c3d..6430a6a 100644 --- a/PinpointKit/PinpointKit.xcodeproj/project.pbxproj +++ b/PinpointKit/PinpointKit.xcodeproj/project.pbxproj @@ -70,6 +70,7 @@ DA0DA60D1C53049B0012ADBE /* PinpointKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA0DA6021C53049B0012ADBE /* PinpointKit.framework */; }; F24381121D54CBAB004CC87F /* SystemLogCollectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24381111D54CBAB004CC87F /* SystemLogCollectorTests.swift */; }; F24381151D54ECD2004CC87F /* XCTestCaseExpectationExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24381141D54ECD2004CC87F /* XCTestCaseExpectationExtensions.swift */; }; + F2619BA32512C6100083286C /* RequestScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2619BA22512C6100083286C /* RequestScreenshotCell.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -147,6 +148,7 @@ DA0DA6131C53049B0012ADBE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F24381111D54CBAB004CC87F /* SystemLogCollectorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SystemLogCollectorTests.swift; sourceTree = ""; }; F24381141D54ECD2004CC87F /* XCTestCaseExpectationExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseExpectationExtensions.swift; sourceTree = ""; }; + F2619BA22512C6100083286C /* RequestScreenshotCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RequestScreenshotCell.swift; path = Core/RequestScreenshotCell.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -206,6 +208,7 @@ 4C4037F11D9EB01800305A6E /* FeedbackViewController.swift */, 4C4037EF1D9EB01800305A6E /* FeedbackNavigationController.swift */, 4C4037FC1D9EB04400305A6E /* Screenshotter.swift */, + F2619BA22512C6100083286C /* RequestScreenshotCell.swift */, 4C4037F91D9EB02300305A6E /* ScreenshotCell.swift */, 4C4037EE1D9EB01800305A6E /* FeedbackConfiguration.swift */, 4C4037F01D9EB01800305A6E /* FeedbackTableViewDataSource.swift */, @@ -490,6 +493,7 @@ 4C4038091D9EB0CB00305A6E /* UIView+PinpointKit.swift in Sources */, 4CFB58801E29464B00B64D0D /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, 4C40382C1D9EB7A800305A6E /* ScreenshotDetector.swift in Sources */, + F2619BA32512C6100083286C /* RequestScreenshotCell.swift in Sources */, 4C4038011D9EB07000305A6E /* LogViewer.swift in Sources */, 4C4037FF1D9EB06900305A6E /* BasicLogViewController.swift in Sources */, 4C4037D51D9EAF0D00305A6E /* Editor.swift in Sources */, diff --git a/RequestScreenshotCell.swift b/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift similarity index 100% rename from RequestScreenshotCell.swift rename to PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift From efaf32ba758d445b72ab54c25e80fab98f0ce2a2 Mon Sep 17 00:00:00 2001 From: Twigz Date: Thu, 17 Sep 2020 16:47:39 -0400 Subject: [PATCH 10/13] Increase top inset, add ellipses --- .../PinpointKit/Sources/Core/InterfaceCustomization.swift | 2 +- .../PinpointKit/Sources/Core/RequestScreenshotCell.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift b/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift index a3e4f13..bd661f2 100644 --- a/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift +++ b/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift @@ -208,7 +208,7 @@ public struct InterfaceCustomization { feedbackCancelButtonTitle: String? = nil, feedbackBackButtonTitle: String? = NSLocalizedString("Report", comment: "Back button title of a view that reports a bug"), feedbackEditHint: String? = NSLocalizedString("Tap the screenshot to annotate.", comment: "A hint on how to edit the screenshot"), - selectScreenshotButtonTitle: String = NSLocalizedString("Select Screenshot", comment: "A button that allows screenshot selection from the photo library."), + selectScreenshotButtonTitle: String = NSLocalizedString("Select Screenshot…", comment: "A button that allows screenshot selection from the photo library."), logCollectorTitle: String? = NSLocalizedString("Console Log", comment: "Title of a view that collects logs"), logCollectionPermissionTitle: String = NSLocalizedString("Include Console Log", comment: "Title of a button asking the user to include system logs"), textEditingDismissButtonTitle: String = NSLocalizedString("Dismiss", comment: "Title of a button that dismisses text editing"), diff --git a/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift b/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift index 906b530..5eca1a9 100644 --- a/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift +++ b/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift @@ -28,7 +28,7 @@ class RequestScreenshotCell: UITableViewCell { private enum DesignConstants { static let buttonHeight: CGFloat = 54.0 - static let topInset: CGFloat = 54.0 + static let topInset: CGFloat = 80.0 static let horizontalInset: CGFloat = 32.0 } From 842591edceb42f05c55d90ef9e8bc681fffc945a Mon Sep 17 00:00:00 2001 From: Twigz Date: Thu, 17 Sep 2020 16:49:22 -0400 Subject: [PATCH 11/13] Reverts pod changes --- .../PinpointKitExample/ViewController.swift | 19 +- Example/Podfile | 3 +- Example/Podfile.lock | 4 +- Example/Pods/Manifest.lock | 4 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 756 +++++++++--------- .../PinpointKit/PinpointKit.xcconfig | 2 +- 6 files changed, 379 insertions(+), 409 deletions(-) diff --git a/Example/PinpointKitExample/ViewController.swift b/Example/PinpointKitExample/ViewController.swift index 82990cc..03e6c0f 100644 --- a/Example/PinpointKitExample/ViewController.swift +++ b/Example/PinpointKitExample/ViewController.swift @@ -9,29 +9,20 @@ import UIKit import PinpointKit -final class ViewController: UITableViewController, ScreenshotDetectorDelegate { - - private var screenshotDetector: ScreenshotDetector? +final class ViewController: UITableViewController { fileprivate let pinpointKit = PinpointKit(feedbackRecipients: ["feedback@example.com"]) override func viewDidLoad() { super.viewDidLoad() - screenshotDetector = ScreenshotDetector(delegate: self) - // Hides the infinite cells footer. tableView.tableFooterView = UIView() } - // MARK: - ScreenshotDetectorDelegate - - func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didDetect screenshot: UIImage?) { - pinpointKit.show(from: self, screenshot: screenshot) - } - - func screenshotDetector(_ screenshotDetector: ScreenshotDetector, didFailWith error: ScreenshotDetector.Error) { - print(error) + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + pinpointKit.show(from: self) } - } diff --git a/Example/Podfile b/Example/Podfile index 7342c7e..9c8a1f9 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -2,8 +2,7 @@ platform :ios, '9.2' use_frameworks! target 'PinpointKitExample' do - pod 'PinpointKit', :path => '../' - pod 'PinpointKit/ScreenshotDetector', :path => '../' + pod 'PinpointKit', :path => '../' pod 'SwiftLint', '0.25.1' end diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 8ad264b..528671c 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -2,12 +2,10 @@ PODS: - PinpointKit (1.4.0): - PinpointKit/Core (= 1.4.0) - PinpointKit/Core (1.4.0) - - PinpointKit/ScreenshotDetector (1.4.0) - SwiftLint (0.25.1) DEPENDENCIES: - PinpointKit (from `../`) - - PinpointKit/ScreenshotDetector (from `../`) - SwiftLint (= 0.25.1) SPEC REPOS: @@ -22,6 +20,6 @@ SPEC CHECKSUMS: PinpointKit: a33c929c2e9c3b7d9a1a343fd309161b71c02d06 SwiftLint: ce933681be10c3266e82576dad676fa815a602e9 -PODFILE CHECKSUM: fedf7c8ff2aafefa997652a50057931848ec893d +PODFILE CHECKSUM: 24af8a2ca63352a72ca1cd13fc8977477eae3a12 COCOAPODS: 1.5.0 diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 8ad264b..528671c 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -2,12 +2,10 @@ PODS: - PinpointKit (1.4.0): - PinpointKit/Core (= 1.4.0) - PinpointKit/Core (1.4.0) - - PinpointKit/ScreenshotDetector (1.4.0) - SwiftLint (0.25.1) DEPENDENCIES: - PinpointKit (from `../`) - - PinpointKit/ScreenshotDetector (from `../`) - SwiftLint (= 0.25.1) SPEC REPOS: @@ -22,6 +20,6 @@ SPEC CHECKSUMS: PinpointKit: a33c929c2e9c3b7d9a1a343fd309161b71c02d06 SwiftLint: ce933681be10c3266e82576dad676fa815a602e9 -PODFILE CHECKSUM: fedf7c8ff2aafefa997652a50057931848ec893d +PODFILE CHECKSUM: 24af8a2ca63352a72ca1cd13fc8977477eae3a12 COCOAPODS: 1.5.0 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 6d84624..cbd8de7 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,74 +7,72 @@ objects = { /* Begin PBXBuildFile section */ - 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; - 0822021475B945FB7E8A5C2B5C7E2937 /* TextAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A570B1EFBE2EA057A385714A772BD48 /* TextAnnotationView.swift */; }; - 09DEA27D11509728CC9AFC51085F68DE /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 205308D4246CB65A84A4C41F0717AEAC /* Screen.swift */; }; - 0BE1D0680D133636FEE05CA4589226BF /* LogViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33103E5BE61BE760494193C52E9C79BF /* LogViewer.swift */; }; - 1087D08740C9DF5993D74EF1218B0803 /* AnnotationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = F78B1A489CD820F94FC9DEBB400B0E61 /* AnnotationViewFactory.swift */; }; + 063B5EED534120B463E4A8446641E34D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */; }; + 09E9B53CEC8FF3F6816E202F3655A709 /* InterfaceCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55AB1C7C8E6BF81FBE6746A64B760DE0 /* InterfaceCustomization.swift */; }; + 0ABFF3476234BC412F2925B4EAA82F20 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 423C59FDA444FD62438F59C103268C25 /* Sender.swift */; }; + 0DB32CF3855B442DB9C39B00C8941079 /* NSBundle+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C56D413219A1EE75CBE088960E03985 /* NSBundle+PinpointKit.swift */; }; + 10E8DD88B949F7B01A91C06EBFF81F4D /* AnnotationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FCE75777949E78FDBA4ACD31EAF3BE7 /* AnnotationViewFactory.swift */; }; 15FE598A776E6E89D656F15961C577BE /* Pods-PinpointKitExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */; }; - 1746F75E22D7D44D43FB1051E1B6DD37 /* InterfaceCustomizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ADED76D0C8F26B0A7F7EA0DAFA147FA /* InterfaceCustomizable.swift */; }; - 183BA76823D642DEFC041F7272603267 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F46FA80D00E4E8DEDF2049A8DE6899A1 /* FeedbackViewController.swift */; }; - 18785931ED541940FC48E82A079BB6B8 /* PinpointKit+ShakePresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F44BB3222E6CCD1DF96C3A52F08BF88 /* PinpointKit+ShakePresentation.swift */; }; - 1B327D51B0DF8DF09A20A736BCA3F809 /* SystemLogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049E72C77B4A63F1EEA4098028664FFD /* SystemLogCollector.swift */; }; - 1F01E41FA6CA46DA1143969DCF214CF7 /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23FC7EA1306975AC4F76FBAA4029CED6 /* Feedback.swift */; }; - 2217F5500A03956DB4A13D38CC2E147F /* StrokeLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4438BAB6724361E9E4CDDA051DC76153 /* StrokeLayoutManager.swift */; }; - 2362CCB526B2156C96F9CAC6BFB48C55 /* Editor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BA359F8804A184AE4958C42B32FBA5 /* Editor.swift */; }; - 262DFA6B4709D314BFA1100FC3332CDA /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C6B084565AC89CB1527D302FCD4C9D98 /* PinpointKit.xcassets */; }; - 2BD44F84EF66974A1CA928131DE46628 /* CheckmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 372DF34E13BC8EB43FA0CA5FFB27E1D3 /* CheckmarkCell.swift */; }; - 308C97B7C0A485D7105D24B94DC365C9 /* Screenshotter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738F1AE9D19CA7E4CB758D968A5B4726 /* Screenshotter.swift */; }; - 3167F1B737EDA4723CA332A7D396830B /* MailSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEC953C16F4C460226A557156BC60B84 /* MailSender.swift */; }; - 32BE9758D73D33D53B22601BCC8B7EA8 /* NSBundle+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A6E92ADC66CBE9FB9C4D9777D42664B /* NSBundle+PinpointKit.swift */; }; - 351C557F7875A8C2469E669A7E513D0B /* ASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = C63868D4F47ACBB8F687D75CAA16D330 /* ASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 356E57A2DCA44629C241120C3B547B80 /* BarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948A12FC165BA7D0BB328A125D01ED2C /* BarButtonItem.swift */; }; - 3DB92BC49BD82DE01F838BE15FA25488 /* EditorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B18FE978AC8F533799FA7BFE8C80220 /* EditorDelegate.swift */; }; - 3ECD46D3953CDE607B546142EF848EFD /* FeedbackNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9D11173A4411DF8FD3A40EFB78E3542 /* FeedbackNavigationController.swift */; }; - 412DC27A78C88B33EF0B62DCA18B9A51 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */; }; - 432FEB4E961CCFF6D678DE193B6812BC /* SourceSansPro-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7963F182B20C7A49A76E74DBB7C15175 /* SourceSansPro-Bold.ttf */; }; - 4B95E63D62F2404C2A8297B060ABDBD5 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30028D83C7C2EC3257C16607AA472764 /* EditImageViewControllerBarButtonItemProviding.swift */; }; - 528884A6CB194178BD10831CFBADF2A6 /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 251F653008D327FA443D9F5328679466 /* BasicLogViewController.swift */; }; - 52F0E2CD283BE584A43896E2E03ED85E /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FE5A2C9FEB07141CAC13EB4D03E06C1 /* Configuration.swift */; }; - 562E239122CE83E8EE6269EBAF809E8F /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65CD66AF45E5DE1DDE8FFAE253F28E37 /* SourceSansPro-Regular.ttf */; }; - 5D472B44585CBBF09624A698E0B8101F /* SourceSansPro-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CFC685FBC0B8F58C769C3EF999025591 /* SourceSansPro-Semibold.ttf */; }; - 5ED58BAA2373949FF829C80BE05853D6 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */; }; - 5FBD7EC68725A7196BD5346B1811B440 /* UIView+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842E427F8051C9A892C8251E32A4CBB3 /* UIView+PinpointKit.swift */; }; - 63CEEA16BDE1D90330D671FF3926D61B /* ASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F4DB93645A94418B3B2381FEF7E44A9 /* ASLLogger.m */; }; - 693B12E945551FBCF91C0C3FFFF7E40F /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9F8C20B0E1C8F6C37F7A341E47E6F49 /* Fonts.swift */; }; + 1FE6D07F0E21DDC49BF7272940524383 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0952F9B52A5DA37449AF14A1EA391B /* UIKit.framework */; }; + 2079950AABCF71EC04291B4C8E422BF4 /* FeedbackConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CCE648E9CAD14FDF3CE3A0AEA06623 /* FeedbackConfiguration.swift */; }; + 22C49DB94C9A551A2CEC274DAB1BF9E3 /* PinpointKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B6EEA985BB879E69398123846A65805C /* PinpointKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 257D7D0855B1AE26CFC785812EFD60E1 /* SourceSansPro-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 03DDED8597C0372367A6EAD6CA15A992 /* SourceSansPro-Regular.ttf */; }; + 2C05B2DFC6FFE1532BF5A7FEE84267ED /* EditImageViewControllerBarButtonItemProviding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A0AF4C5CF447E45AC1DB49F7E937D31 /* EditImageViewControllerBarButtonItemProviding.swift */; }; + 2CADBF8CDFF48D1E9FE83834D5925FD6 /* Editor.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8C89794DFB630F25F11544DBCCBEE0 /* Editor.swift */; }; + 3E3E45C9FA6F62A40A4BDA1BCE10CBB1 /* SystemLogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47839A9413989B67F7B7D81E5D819F10 /* SystemLogCollector.swift */; }; + 45507C67BD1C19B2057C6FDF011F6D79 /* ShakeDetectingWindowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CE7432717E9ED121CDFD7238747C005 /* ShakeDetectingWindowDelegate.swift */; }; + 497A7F2F761E1B66AA5527BEC2B8F2BD /* LogSupporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7707CA5ACB7390A32251A2C6381A48F8 /* LogSupporting.swift */; }; + 50F467A1BA24A5F849156E6868009258 /* BlurAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7A5A0D3F809A36AF666486A84171B70 /* BlurAnnotationView.swift */; }; + 55BE74931A02A45A2B998D8C68F01B57 /* EditorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18DF2E1B16F9D2594EDB9F604E9F433 /* EditorDelegate.swift */; }; + 5710B9D0B4A51A2B8F9ABCC40F43A996 /* ArrowAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5405375C9539A665501AB80225CAE4C /* ArrowAnnotationView.swift */; }; + 5D5EA6747C0A0C133C66C8A5A0732CA7 /* UIView+PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F810D8FBC04199EAC8E3101C3E35CC1 /* UIView+PinpointKit.swift */; }; + 61980B61FFFDE1965C80CD49B3F497F1 /* FeedbackCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0B5F92DE6DDE5F7DEFF293BA97FA8C2 /* FeedbackCollector.swift */; }; + 68368D29672B7AFFC7806527A29481C6 /* CheckmarkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20F691B761C24DA681A7D03F04E1A1D7 /* CheckmarkCell.swift */; }; + 6B3A4EA89714B8EA350D534E746349E3 /* LogViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61702B4EFC33BC4DA9B00C3B31BC2880 /* LogViewer.swift */; }; + 7143A7367E0A26BCF2F126BD11A0AE24 /* BezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B521B28520A86CF57F15F4D0D65C77F /* BezierPath.swift */; }; 7201B090132223218051A872C4BDA5D9 /* Pods-PinpointKitExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 812EAF4CB8EC8CC4DF11201C5A035921 /* ArrowAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373AF359083B486A9C172AAD6FEC2945 /* ArrowAnnotationView.swift */; }; - 81597951E5A12740928EF029A57E3AC0 /* AnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C2FEEC64163B8B297452A184CF9C179 /* AnnotationView.swift */; }; - 8D422CAD1B29F226C0E00C17728EE0AE /* UIGestureRecognizer+FailRecognizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088A47E4182E0D88F1368F2770FBF426 /* UIGestureRecognizer+FailRecognizing.swift */; }; - 90EC9EC17D94ED66B57B326ED45D2041 /* Sender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C00706EA58BC249654293370835E7B2F /* Sender.swift */; }; - 91C4CB7110F2C288F8D12FA23E2C3FA9 /* InterfaceCustomization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D88DBBB49B6002855E88FDDEA82777D8 /* InterfaceCustomization.swift */; }; - 94496D1AC6DE2763DAE5F99736714011 /* LogSupporting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CBF436E92A266FF7CE3A7AB3A3F407F /* LogSupporting.swift */; }; - A11B48160450C81D82E34489785F08F6 /* ScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E06EBFF2DB7A7C46EB9402CDE3B0D784 /* ScreenshotCell.swift */; }; - A12E5D2A118291D0A136821E68B382F8 /* KeyboardAvoider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3371A00E70F6E77C9A5D48DE67BD2CB /* KeyboardAvoider.swift */; }; - A71D335F7E661CE7EC364ABA28E70F00 /* PinpointKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF4AA6B4C273AE74D761617963326689 /* PinpointKit-dummy.m */; }; - ABA7755FBA46E8B882EF1D928299638D /* UIColor+Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9820DA2E518376DA84EDEF99C2A26941 /* UIColor+Palette.swift */; }; - AC40C647BB7AA96A42D7A0EB371E5155 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CD8E7A5D50A8B0D23C85FAC7ACA8DC /* NavigationController.swift */; }; - AE0363C855A844AD44CAA6F65E2176D5 /* RequestScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC7914F33A6A667C99BF844DB50D751 /* RequestScreenshotCell.swift */; }; - AE5398AD49564891EA8B7DB0E84ACAA2 /* FeedbackConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0329DC7E7D8B71980523FF20752FD67B /* FeedbackConfiguration.swift */; }; - AFFD4014BCEBCD7E772E5538FD868520 /* ShakeDetectingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6538C9DF313D013528BD5981DC518E9B /* ShakeDetectingWindow.swift */; }; - BA8134652B0F5D80A56EAF85F77FFF1C /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE5BA660541B12ECF838913CE5A67BE /* UIBarButtonItem+TitleTextAttributeStates.swift */; }; - BC5346008A7018D5154A45E81602A18F /* PinpointKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 05E823CDD4DBF5D80B81EB92056284A3 /* PinpointKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD516B7C61AC0DC4E092DE638AF99E05 /* ShakeDetectingWindowDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78D3964C1492B3215058B5E0D6BAB43A /* ShakeDetectingWindowDelegate.swift */; }; - C1141DBC56E8F518F55C6CDDA5F2CE88 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */; }; - C4F4092A45B6D3AA78714FA6C60DAEA4 /* FeedbackCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2835130E7A5A4D213AE4CAB0226E40D8 /* FeedbackCollector.swift */; }; - CC415BBEDBA1B578512014A981686822 /* BezierPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = B89A004F526B1CFBA2C97DEFBB415AA3 /* BezierPath.swift */; }; - CD6FF5D3498E1C0870C6D45F4526ED16 /* ScreenshotDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B912A4CCABAF55DE51B08601DE21FB /* ScreenshotDetector.swift */; }; - D3605A92D25D98AC11EA4D81526B7EBC /* EditImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B42AC62B46C0BFF3ECA267F260606E78 /* EditImageViewController.swift */; }; - D4EB1100EC07A9088773DF42D0681FF2 /* LogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7E7751C45EF11EDA8C659ACE570C9F2 /* LogCollector.swift */; }; - D633A5B27540D78FAF0C530ACD1306BC /* PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54AB389205B3ED61FBD88F98956C11D1 /* PinpointKit.swift */; }; - D8CB2D6C54F91233351C09C5AD7300B1 /* BlurAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7431742269837F83A513F794C8912CC0 /* BlurAnnotationView.swift */; }; - DB4C1DB3A2907198EAD2FFF15B7C0862 /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3478179F380EF7CFCF2ABFCAC7B38DF5 /* MIMEType.swift */; }; - DD726B8114A4CB7B865AB9EBE8111958 /* SuccessType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62CA52A15E05E8E78A8DBC151353FEA7 /* SuccessType.swift */; }; - DD81044C197307F949945AEEF737C93C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */; }; - DEBC159074BCD4F98CB1F8E3E872AB6A /* Annotations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A90FFFC5A6A9AFD869B6D3081DAA143 /* Annotations.swift */; }; - E7B0ADBB6D224BC8CC3DA288DBFC4639 /* FeedbackTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D25D4074CB312FA092492984EE49065C /* FeedbackTableViewDataSource.swift */; }; - EF48AFF9C0749C206DA385A5D19544A3 /* BoxAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51E620A6C07893FCE37BC777E8699A5D /* BoxAnnotationView.swift */; }; - F76B36D9D7C10BEC5C61B44C9FB03DBA /* PinpointKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 975940D427A6E4F6A43FAA6908D2941E /* PinpointKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F885ED45F4EE0C5851D0F0D2CEFE482E /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78F1CF99C78EDFF60AC9C812BD6E9240 /* Tool.swift */; }; - FB76089FFD7A54A07EDB5D3CB76DB854 /* AnnotationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E10CDFB444E326946B98FB6AD1C7B0D /* AnnotationsView.swift */; }; + 757F76FA8C2DF34871EA759EFBC80F6C /* EditImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 202E905D98F76997BAF66C7088329BB8 /* EditImageViewController.swift */; }; + 7815EDEE467A8B93B68EBA3610E82977 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */; }; + 829F85491BE0FF5C4A3D94CF831C6C18 /* BasicLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3031BF60D3756346CA4E1E08E7C7A465 /* BasicLogViewController.swift */; }; + 83583C56D54388AEFF62B76C3C17F072 /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5537D60E0DAC5A2AE7D9E8FD7D88EEA6 /* Fonts.swift */; }; + 83B6D2FEF34D03B357B9B87A4FE4B724 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA419B5DA68D91A9A56DFA1F9FE3F991 /* NavigationController.swift */; }; + 8659398477459CA64211B78138BF2717 /* MailSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B7B8DB40154D4574EC591581C59D04 /* MailSender.swift */; }; + 8A021DD0839295297B78733A8128FFC2 /* ScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E13C8EBEC097B2210B9DFC8C4581FC83 /* ScreenshotCell.swift */; }; + 8AC86F3A925432D69CED97B164765841 /* UIColor+Palette.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C69C6365FB79370BDDFD3556A0BCC9A /* UIColor+Palette.swift */; }; + 927D7B5E88793C02E77FC9CD264ABB34 /* BarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2709E283928DC3A69BFE47E5344F9F9 /* BarButtonItem.swift */; }; + 9E653AB67A4F8916CDB7870536E95389 /* FeedbackViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D2D2889641DD53462855DDD4F0F3E25 /* FeedbackViewController.swift */; }; + A37D1DF2F979398DE4EAC8E11FDAA16F /* Tool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 501F051C6AF2176F6CF8516DE83EDEC8 /* Tool.swift */; }; + A7578DBA511837C07CB23FBDAA1B2953 /* RequestScreenshotCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F88C6BB404FA78E6D9A5864C95A226 /* RequestScreenshotCell.swift */; }; + AD3EC705A8216176C6846A201AFF8ED5 /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = E855319846B9E71829F4398CBF61A5FE /* Screen.swift */; }; + B07145BAED83D90A3B6A39ECDFB302AA /* ASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 05BE0DC4CB17ABD05D0DA3B8DD179858 /* ASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B178B8AC520BABF40A7F66E4EB35824D /* AnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BEB8C79B8D0DFC544E3A9554607AF2 /* AnnotationView.swift */; }; + B2DD02CBAFBD36726EEE403110875AA3 /* ASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 541FCFF5C08437EB698A9C5CA9CEB4B2 /* ASLLogger.m */; }; + B3DF0CAFA9CCF96A3756B8576CC6C669 /* MIMEType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FC336467ECD3A956470FCE2475A393C /* MIMEType.swift */; }; + B41C35D971BC52BBCD7D091984AF40E7 /* AnnotationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B2160E8A5CBB52809BFF637F911EEE9 /* AnnotationsView.swift */; }; + BE0FB3B416BF9A5CDD80742C57805A77 /* Screenshotter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504CCFDFCF425BE9CD55AEAC721BC10B /* Screenshotter.swift */; }; + C6086722AD53CC9750F505D4D15B99F7 /* SuccessType.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB1F7F78E49FB6DFA0149F33E057AA10 /* SuccessType.swift */; }; + C72BF9B389BED609944AD89CD7416AF0 /* PinpointKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 821F22677A30C1AF4AC060DB834AC387 /* PinpointKit-dummy.m */; }; + CA9C884DBB7F22488BAC5F7B29ECFF73 /* Annotations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16F5099BC6D66AA0F486EB148FBFB5D2 /* Annotations.swift */; }; + CAB56A57223BCF0724E259DDAF5C33B6 /* InterfaceCustomizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE06415E1BE52EC2DA638F579458DD91 /* InterfaceCustomizable.swift */; }; + CC5679DE9C8D903833B8FAAC4B3395D3 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCC9DFE70A35B1C9D56C07C8E27586F5 /* MessageUI.framework */; }; + CD6AB3D3914E9EF89703F2C75F96651C /* PinpointKit+ShakePresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7755CBA9DDD85821BCF4AD10366D6E62 /* PinpointKit+ShakePresentation.swift */; }; + D1F4DD03D25B6179D7E4834196B3E842 /* SourceSansPro-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 04C786CD2765884D582B3ECEFBA7955F /* SourceSansPro-Bold.ttf */; }; + D6C8D11E7C640F86EC2955DE80A4B03B /* TextAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA1CB9E82E998EF45C00E13D09D76B02 /* TextAnnotationView.swift */; }; + DA4BEB61320D668880DB9BAF2E2BBED7 /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCC0F59E52846698CFFC0D7523468BF7 /* UIBarButtonItem+TitleTextAttributeStates.swift */; }; + DB94C303676F830414CB1DAB9BA5D351 /* BoxAnnotationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B68B5934CDC29A9659237EBBABD3157 /* BoxAnnotationView.swift */; }; + DC601F18851420E3E7BA928C26B8F496 /* PinpointKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3A281FBD8738A46DBB12F9533A552222 /* PinpointKit.xcassets */; }; + DD3DD018057C8D761E31D7DD240DEE92 /* LogCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CCBA94DB772F4D1D279D8AA8109B494 /* LogCollector.swift */; }; + DE6EDCD32448D2111968B18916D00BDD /* PinpointKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = E07E16C12D411F2531FA779157B7F8CB /* PinpointKit.swift */; }; + DF091AD1A3F8BFD73593B39B1E6ED10B /* Feedback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77506E7A3D83D4876FB8C8695B90D19C /* Feedback.swift */; }; + E1964BF83BA075AC3218E292A4A6C9C7 /* FeedbackTableViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62EBA7864083952345AF5BF50410295B /* FeedbackTableViewDataSource.swift */; }; + E1C6C7B1289E50897740CABB1DC552D4 /* StrokeLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F159FD76DCD82C4732BDC378419433 /* StrokeLayoutManager.swift */; }; + E2579B2F457B64BB491D4E165FF0692F /* FeedbackNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D2A06AA1F026E5EEA25EDEE51D7DAE6 /* FeedbackNavigationController.swift */; }; + E3F6A8483CF0B488FB56BD48108CBC42 /* SourceSansPro-Semibold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 31A6B5842CAB506E7D318C2CE2FA6428 /* SourceSansPro-Semibold.ttf */; }; + E56F8969D9C6A2984E22C796A43DA62E /* ShakeDetectingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF2E6340B6D3E42DDD6DEA2E31516E4D /* ShakeDetectingWindow.swift */; }; + E622FFBEF68DB590021806BE986E4706 /* PinpointKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B3A4B93BEBCEF16609E1D347C6BB14 /* PinpointKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F254E4BB33D2C75930AB753B92C6F6B0 /* UIGestureRecognizer+FailRecognizing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133C8123C233F53AA49AE37FC253D102 /* UIGestureRecognizer+FailRecognizing.swift */; }; + FD9D2481535FEFCA806B1398A6CD2424 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313BA0FFA7E8033DC4291F2D931FB273 /* Configuration.swift */; }; + FE8A6526C8AEB627A9DAA0FA1737A63B /* KeyboardAvoider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3D9934C9601BED445ED206D76FCD6AC /* KeyboardAvoider.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -82,96 +80,94 @@ isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 3B5D678C2341ED5E81CC83CE623A0DCF; + remoteGlobalIDString = 35433D18219DB934E9CB11A034357452; remoteInfo = PinpointKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PinpointKit.framework; path = PinpointKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0329DC7E7D8B71980523FF20752FD67B /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; - 049E72C77B4A63F1EEA4098028664FFD /* SystemLogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SystemLogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/SystemLogCollector.swift; sourceTree = ""; }; - 05E823CDD4DBF5D80B81EB92056284A3 /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; - 088A47E4182E0D88F1368F2770FBF426 /* UIGestureRecognizer+FailRecognizing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+FailRecognizing.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIGestureRecognizer+FailRecognizing.swift"; sourceTree = ""; }; + 03DDED8597C0372367A6EAD6CA15A992 /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; + 04C786CD2765884D582B3ECEFBA7955F /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; + 05BE0DC4CB17ABD05D0DA3B8DD179858 /* ASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ASLLogger.h; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.h; sourceTree = ""; }; 0A3984A794B8C50CF8A494535648E07D /* Pods-PinpointKitExample-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-resources.sh"; sourceTree = ""; }; 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.debug.xcconfig"; sourceTree = ""; }; - 0EC7914F33A6A667C99BF844DB50D751 /* RequestScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift; sourceTree = ""; }; - 1ADED76D0C8F26B0A7F7EA0DAFA147FA /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; - 205308D4246CB65A84A4C41F0717AEAC /* Screen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screen.swift; path = PinpointKit/PinpointKit/Sources/Core/Screen.swift; sourceTree = ""; }; - 23FC7EA1306975AC4F76FBAA4029CED6 /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; - 251F653008D327FA443D9F5328679466 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; - 2835130E7A5A4D213AE4CAB0226E40D8 /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; - 2A6E92ADC66CBE9FB9C4D9777D42664B /* NSBundle+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/NSBundle+PinpointKit.swift"; sourceTree = ""; }; + 0C69C6365FB79370BDDFD3556A0BCC9A /* UIColor+Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIColor+Palette.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIColor+Palette.swift"; sourceTree = ""; }; + 0D2D2889641DD53462855DDD4F0F3E25 /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; + 1051C54C2A571CD6B01945A2C6AC1E61 /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; + 133C8123C233F53AA49AE37FC253D102 /* UIGestureRecognizer+FailRecognizing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIGestureRecognizer+FailRecognizing.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIGestureRecognizer+FailRecognizing.swift"; sourceTree = ""; }; + 16F5099BC6D66AA0F486EB148FBFB5D2 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; + 1B521B28520A86CF57F15F4D0D65C77F /* BezierPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BezierPath.swift; path = PinpointKit/PinpointKit/Sources/Core/BezierPath.swift; sourceTree = ""; }; + 202E905D98F76997BAF66C7088329BB8 /* EditImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewController.swift; sourceTree = ""; }; + 20F691B761C24DA681A7D03F04E1A1D7 /* CheckmarkCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CheckmarkCell.swift; path = PinpointKit/PinpointKit/Sources/Core/CheckmarkCell.swift; sourceTree = ""; }; + 2D2A06AA1F026E5EEA25EDEE51D7DAE6 /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; 2FC5CAA91B7D788B096A7564D11AAF2F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 30028D83C7C2EC3257C16607AA472764 /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; - 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 33103E5BE61BE760494193C52E9C79BF /* LogViewer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogViewer.swift; path = PinpointKit/PinpointKit/Sources/Core/LogViewer.swift; sourceTree = ""; }; - 3478179F380EF7CFCF2ABFCAC7B38DF5 /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; - 372DF34E13BC8EB43FA0CA5FFB27E1D3 /* CheckmarkCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CheckmarkCell.swift; path = PinpointKit/PinpointKit/Sources/Core/CheckmarkCell.swift; sourceTree = ""; }; - 373AF359083B486A9C172AAD6FEC2945 /* ArrowAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrowAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/ArrowAnnotationView.swift; sourceTree = ""; }; + 3031BF60D3756346CA4E1E08E7C7A465 /* BasicLogViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BasicLogViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/BasicLogViewController.swift; sourceTree = ""; }; + 313BA0FFA7E8033DC4291F2D931FB273 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PinpointKit/PinpointKit/Sources/Core/Configuration.swift; sourceTree = ""; }; + 31A6B5842CAB506E7D318C2CE2FA6428 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; + 34F159FD76DCD82C4732BDC378419433 /* StrokeLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeLayoutManager.swift; path = PinpointKit/PinpointKit/Sources/Core/StrokeLayoutManager.swift; sourceTree = ""; }; 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PinpointKitExample-dummy.m"; sourceTree = ""; }; - 3A570B1EFBE2EA057A385714A772BD48 /* TextAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/TextAnnotationView.swift; sourceTree = ""; }; + 3A281FBD8738A46DBB12F9533A552222 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; + 3C0A031BD60372B640FAACF4CDA806FB /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 3C56D413219A1EE75CBE088960E03985 /* NSBundle+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/NSBundle+PinpointKit.swift"; sourceTree = ""; }; 3F135D9D2859350E531F62C2FF9E079A /* Pods-PinpointKitExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PinpointKitExample.modulemap"; sourceTree = ""; }; - 4438BAB6724361E9E4CDDA051DC76153 /* StrokeLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeLayoutManager.swift; path = PinpointKit/PinpointKit/Sources/Core/StrokeLayoutManager.swift; sourceTree = ""; }; - 4C2FEEC64163B8B297452A184CF9C179 /* AnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationView.swift; sourceTree = ""; }; - 4CBF436E92A266FF7CE3A7AB3A3F407F /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; - 4FE5A2C9FEB07141CAC13EB4D03E06C1 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = PinpointKit/PinpointKit/Sources/Core/Configuration.swift; sourceTree = ""; }; - 51E620A6C07893FCE37BC777E8699A5D /* BoxAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BoxAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BoxAnnotationView.swift; sourceTree = ""; }; - 54AB389205B3ED61FBD88F98956C11D1 /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; - 55719011194328F1F2E533988B1D84B7 /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; - 5A90FFFC5A6A9AFD869B6D3081DAA143 /* Annotations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Annotations.swift; path = PinpointKit/PinpointKit/Sources/Core/Annotations.swift; sourceTree = ""; }; - 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; - 62674EF5ACF3FA5EED241237B4A6179F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; - 62CA52A15E05E8E78A8DBC151353FEA7 /* SuccessType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuccessType.swift; path = PinpointKit/PinpointKit/Sources/Core/SuccessType.swift; sourceTree = ""; }; - 6538C9DF313D013528BD5981DC518E9B /* ShakeDetectingWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindow.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindow.swift; sourceTree = ""; }; - 65CD66AF45E5DE1DDE8FFAE253F28E37 /* SourceSansPro-Regular.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Regular.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Regular.ttf"; sourceTree = ""; }; + 3FCE75777949E78FDBA4ACD31EAF3BE7 /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; + 423C59FDA444FD62438F59C103268C25 /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; + 47839A9413989B67F7B7D81E5D819F10 /* SystemLogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SystemLogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/SystemLogCollector.swift; sourceTree = ""; }; + 4CCBA94DB772F4D1D279D8AA8109B494 /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; + 4CE7432717E9ED121CDFD7238747C005 /* ShakeDetectingWindowDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindowDelegate.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindowDelegate.swift; sourceTree = ""; }; + 501F051C6AF2176F6CF8516DE83EDEC8 /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; + 504CCFDFCF425BE9CD55AEAC721BC10B /* Screenshotter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screenshotter.swift; path = PinpointKit/PinpointKit/Sources/Core/Screenshotter.swift; sourceTree = ""; }; + 541FCFF5C08437EB698A9C5CA9CEB4B2 /* ASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ASLLogger.m; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.m; sourceTree = ""; }; + 5537D60E0DAC5A2AE7D9E8FD7D88EEA6 /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; + 55AB1C7C8E6BF81FBE6746A64B760DE0 /* InterfaceCustomization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomization.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift; sourceTree = ""; }; + 5B2160E8A5CBB52809BFF637F911EEE9 /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; + 5FC336467ECD3A956470FCE2475A393C /* MIMEType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MIMEType.swift; path = PinpointKit/PinpointKit/Sources/Core/MIMEType.swift; sourceTree = ""; }; + 60F58D29F6906C15D42D7671FEABBCAA /* PinpointKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PinpointKit.modulemap; sourceTree = ""; }; + 61702B4EFC33BC4DA9B00C3B31BC2880 /* LogViewer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogViewer.swift; path = PinpointKit/PinpointKit/Sources/Core/LogViewer.swift; sourceTree = ""; }; + 62EBA7864083952345AF5BF50410295B /* FeedbackTableViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackTableViewDataSource.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift; sourceTree = ""; }; + 65F88C6BB404FA78E6D9A5864C95A226 /* RequestScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift; sourceTree = ""; }; + 69B3A4B93BEBCEF16609E1D347C6BB14 /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; + 6A0AF4C5CF447E45AC1DB49F7E937D31 /* EditImageViewControllerBarButtonItemProviding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewControllerBarButtonItemProviding.swift; sourceTree = ""; }; 6F799E3827193EF1AF1D3B405780DEDB /* Pods-PinpointKitExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PinpointKitExample-acknowledgements.markdown"; sourceTree = ""; }; - 738F1AE9D19CA7E4CB758D968A5B4726 /* Screenshotter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screenshotter.swift; path = PinpointKit/PinpointKit/Sources/Core/Screenshotter.swift; sourceTree = ""; }; - 7431742269837F83A513F794C8912CC0 /* BlurAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlurAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BlurAnnotationView.swift; sourceTree = ""; }; - 78D3964C1492B3215058B5E0D6BAB43A /* ShakeDetectingWindowDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindowDelegate.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindowDelegate.swift; sourceTree = ""; }; - 78F1CF99C78EDFF60AC9C812BD6E9240 /* Tool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Tool.swift; sourceTree = ""; }; - 7963F182B20C7A49A76E74DBB7C15175 /* SourceSansPro-Bold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Bold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Bold.ttf"; sourceTree = ""; }; - 7B18FE978AC8F533799FA7BFE8C80220 /* EditorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditorDelegate.swift; sourceTree = ""; }; - 7F44BB3222E6CCD1DF96C3A52F08BF88 /* PinpointKit+ShakePresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PinpointKit+ShakePresentation.swift"; path = "PinpointKit/PinpointKit/Sources/Core/PinpointKit+ShakePresentation.swift"; sourceTree = ""; }; - 7F4DB93645A94418B3B2381FEF7E44A9 /* ASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ASLLogger.m; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.m; sourceTree = ""; }; - 842E427F8051C9A892C8251E32A4CBB3 /* UIView+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIView+PinpointKit.swift"; sourceTree = ""; }; - 8E10CDFB444E326946B98FB6AD1C7B0D /* AnnotationsView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationsView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationsView.swift; sourceTree = ""; }; + 7707CA5ACB7390A32251A2C6381A48F8 /* LogSupporting.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogSupporting.swift; path = PinpointKit/PinpointKit/Sources/Core/LogSupporting.swift; sourceTree = ""; }; + 771D150E499D5F8214E8FB312B435014 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 77506E7A3D83D4876FB8C8695B90D19C /* Feedback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Feedback.swift; path = PinpointKit/PinpointKit/Sources/Core/Feedback.swift; sourceTree = ""; }; + 7755CBA9DDD85821BCF4AD10366D6E62 /* PinpointKit+ShakePresentation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PinpointKit+ShakePresentation.swift"; path = "PinpointKit/PinpointKit/Sources/Core/PinpointKit+ShakePresentation.swift"; sourceTree = ""; }; + 79CCE648E9CAD14FDF3CE3A0AEA06623 /* FeedbackConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackConfiguration.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackConfiguration.swift; sourceTree = ""; }; + 7B68B5934CDC29A9659237EBBABD3157 /* BoxAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BoxAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BoxAnnotationView.swift; sourceTree = ""; }; + 821F22677A30C1AF4AC060DB834AC387 /* PinpointKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinpointKit-dummy.m"; sourceTree = ""; }; 8E48D44046FC860DAC611BC5CA2F03A3 /* Pods-PinpointKitExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PinpointKitExample-acknowledgements.plist"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 948A12FC165BA7D0BB328A125D01ED2C /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; - 94CD8E7A5D50A8B0D23C85FAC7ACA8DC /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; - 975940D427A6E4F6A43FAA6908D2941E /* PinpointKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PinpointKit.h; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.h; sourceTree = ""; }; - 9820DA2E518376DA84EDEF99C2A26941 /* UIColor+Palette.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIColor+Palette.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIColor+Palette.swift"; sourceTree = ""; }; + 9F810D8FBC04199EAC8E3101C3E35CC1 /* UIView+PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+PinpointKit.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIView+PinpointKit.swift"; sourceTree = ""; }; A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PinpointKitExample-umbrella.h"; sourceTree = ""; }; - A9B912A4CCABAF55DE51B08601DE21FB /* ScreenshotDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotDetector.swift; path = PinpointKit/PinpointKit/Sources/ScreenshotDetector/ScreenshotDetector.swift; sourceTree = ""; }; - AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - AF4AA6B4C273AE74D761617963326689 /* PinpointKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinpointKit-dummy.m"; sourceTree = ""; }; - B42AC62B46C0BFF3ECA267F260606E78 /* EditImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditImageViewController.swift; sourceTree = ""; }; - B89A004F526B1CFBA2C97DEFBB415AA3 /* BezierPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BezierPath.swift; path = PinpointKit/PinpointKit/Sources/Core/BezierPath.swift; sourceTree = ""; }; - BDDC3B377D528F59458436B4F5B2A532 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; - C00706EA58BC249654293370835E7B2F /* Sender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Sender.swift; path = PinpointKit/PinpointKit/Sources/Core/Sender.swift; sourceTree = ""; }; - C41C99D9CC157D7B6C40B6282441E56A /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + AA1CB9E82E998EF45C00E13D09D76B02 /* TextAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/TextAnnotationView.swift; sourceTree = ""; }; + AA419B5DA68D91A9A56DFA1F9FE3F991 /* NavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/NavigationController.swift; sourceTree = ""; }; + B6EEA985BB879E69398123846A65805C /* PinpointKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-umbrella.h"; sourceTree = ""; }; + B7A5A0D3F809A36AF666486A84171B70 /* BlurAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlurAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/BlurAnnotationView.swift; sourceTree = ""; }; + C0B5F92DE6DDE5F7DEFF293BA97FA8C2 /* FeedbackCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackCollector.swift; sourceTree = ""; }; C4D9057897E22B5264C1439151CEB8B8 /* Pods-PinpointKitExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinpointKitExample-frameworks.sh"; sourceTree = ""; }; - C63868D4F47ACBB8F687D75CAA16D330 /* ASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ASLLogger.h; path = PinpointKit/PinpointKit/Sources/Core/ASLLogger.h; sourceTree = ""; }; - C6B084565AC89CB1527D302FCD4C9D98 /* PinpointKit.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = PinpointKit.xcassets; path = PinpointKit/PinpointKit/Resources/PinpointKit.xcassets; sourceTree = ""; }; - C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; - C941948E355AF53105E4F06375EB41FE /* PinpointKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinpointKit-prefix.pch"; sourceTree = ""; }; - CFC685FBC0B8F58C769C3EF999025591 /* SourceSansPro-Semibold.ttf */ = {isa = PBXFileReference; includeInIndex = 1; name = "SourceSansPro-Semibold.ttf"; path = "PinpointKit/PinpointKit/Resources/SourceSansPro-Semibold.ttf"; sourceTree = ""; }; - D25D4074CB312FA092492984EE49065C /* FeedbackTableViewDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackTableViewDataSource.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackTableViewDataSource.swift; sourceTree = ""; }; - D3371A00E70F6E77C9A5D48DE67BD2CB /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; - D7E7751C45EF11EDA8C659ACE570C9F2 /* LogCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LogCollector.swift; path = PinpointKit/PinpointKit/Sources/Core/LogCollector.swift; sourceTree = ""; }; + C5B7B8DB40154D4574EC591581C59D04 /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; + C5BEB8C79B8D0DFC544E3A9554607AF2 /* AnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/AnnotationView.swift; sourceTree = ""; }; + CCC9DFE70A35B1C9D56C07C8E27586F5 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; + CF2E6340B6D3E42DDD6DEA2E31516E4D /* ShakeDetectingWindow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShakeDetectingWindow.swift; path = PinpointKit/PinpointKit/Sources/Core/ShakeDetectingWindow.swift; sourceTree = ""; }; + D4033607E136E6DE2A7228996DABA145 /* PinpointKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinpointKit.xcconfig; sourceTree = ""; }; D816779985ABAD820D8B8B4720BA007D /* Pods-PinpointKitExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinpointKitExample.release.xcconfig"; sourceTree = ""; }; - D88DBBB49B6002855E88FDDEA82777D8 /* InterfaceCustomization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomization.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift; sourceTree = ""; }; - D9F8C20B0E1C8F6C37F7A341E47E6F49 /* Fonts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fonts.swift; path = PinpointKit/PinpointKit/Sources/Core/Fonts.swift; sourceTree = ""; }; - DDA0CDAD8C471D412EA68FCF820A4379 /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; path = PinpointKit.podspec.json; sourceTree = ""; }; - E06EBFF2DB7A7C46EB9402CDE3B0D784 /* ScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/ScreenshotCell.swift; sourceTree = ""; }; - E1BA359F8804A184AE4958C42B32FBA5 /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; - EEE5BA660541B12ECF838913CE5A67BE /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; - F46FA80D00E4E8DEDF2049A8DE6899A1 /* FeedbackViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackViewController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackViewController.swift; sourceTree = ""; }; - F78B1A489CD820F94FC9DEBB400B0E61 /* AnnotationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnnotationViewFactory.swift; sourceTree = ""; }; - F9D11173A4411DF8FD3A40EFB78E3542 /* FeedbackNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FeedbackNavigationController.swift; path = PinpointKit/PinpointKit/Sources/Core/FeedbackNavigationController.swift; sourceTree = ""; }; - FEC953C16F4C460226A557156BC60B84 /* MailSender.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MailSender.swift; path = PinpointKit/PinpointKit/Sources/Core/MailSender.swift; sourceTree = ""; }; + DC8C89794DFB630F25F11544DBCCBEE0 /* Editor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Editor.swift; sourceTree = ""; }; + E07E16C12D411F2531FA779157B7F8CB /* PinpointKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinpointKit.swift; path = PinpointKit/PinpointKit/Sources/Core/PinpointKit.swift; sourceTree = ""; }; + E13C8EBEC097B2210B9DFC8C4581FC83 /* ScreenshotCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ScreenshotCell.swift; path = PinpointKit/PinpointKit/Sources/Core/ScreenshotCell.swift; sourceTree = ""; }; + E18DF2E1B16F9D2594EDB9F604E9F433 /* EditorDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = EditorDelegate.swift; sourceTree = ""; }; + E1A3643B5B6DEC5F626A26349E3EDD28 /* PinpointKit.podspec.json */ = {isa = PBXFileReference; includeInIndex = 1; path = PinpointKit.podspec.json; sourceTree = ""; }; + E5405375C9539A665501AB80225CAE4C /* ArrowAnnotationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArrowAnnotationView.swift; path = PinpointKit/PinpointKit/Sources/Core/ArrowAnnotationView.swift; sourceTree = ""; }; + E855319846B9E71829F4398CBF61A5FE /* Screen.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Screen.swift; path = PinpointKit/PinpointKit/Sources/Core/Screen.swift; sourceTree = ""; }; + EB1F7F78E49FB6DFA0149F33E057AA10 /* SuccessType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuccessType.swift; path = PinpointKit/PinpointKit/Sources/Core/SuccessType.swift; sourceTree = ""; }; + EB8BF7DBC9C71540D094368B967AF8CE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + EE06415E1BE52EC2DA638F579458DD91 /* InterfaceCustomizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = InterfaceCustomizable.swift; path = PinpointKit/PinpointKit/Sources/Core/InterfaceCustomizable.swift; sourceTree = ""; }; + F2709E283928DC3A69BFE47E5344F9F9 /* BarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BarButtonItem.swift; path = PinpointKit/PinpointKit/Sources/Core/BarButtonItem.swift; sourceTree = ""; }; + F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + F3D9934C9601BED445ED206D76FCD6AC /* KeyboardAvoider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyboardAvoider.swift; path = PinpointKit/PinpointKit/Sources/Core/KeyboardAvoider.swift; sourceTree = ""; }; + FCC0F59E52846698CFFC0D7523468BF7 /* UIBarButtonItem+TitleTextAttributeStates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIBarButtonItem+TitleTextAttributeStates.swift"; path = "PinpointKit/PinpointKit/Sources/Core/UIBarButtonItem+TitleTextAttributeStates.swift"; sourceTree = ""; }; + FD0952F9B52A5DA37449AF14A1EA391B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PinpointKitExample.framework; path = "Pods-PinpointKitExample.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -184,14 +180,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FC4191AB6EC2947A71E52AEBDC32C502 /* Frameworks */ = { + 727AF2B48BBF00C197164BE27E42D7CC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DD81044C197307F949945AEEF737C93C /* Foundation.framework in Frameworks */, - 412DC27A78C88B33EF0B62DCA18B9A51 /* MessageUI.framework in Frameworks */, - 5ED58BAA2373949FF829C80BE05853D6 /* Photos.framework in Frameworks */, - C1141DBC56E8F518F55C6CDDA5F2CE88 /* UIKit.framework in Frameworks */, + 7815EDEE467A8B93B68EBA3610E82977 /* Foundation.framework in Frameworks */, + CC5679DE9C8D903833B8FAAC4B3395D3 /* MessageUI.framework in Frameworks */, + 1FE6D07F0E21DDC49BF7272940524383 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -206,23 +201,23 @@ name = "Targets Support Files"; sourceTree = ""; }; - 14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */ = { + 0E7C830D040C21817A42CB4AA4111310 /* Resources */ = { isa = PBXGroup; children = ( - 238C184870795FC3EF7AB432B08A7CB9 /* iOS */, + 3A281FBD8738A46DBB12F9533A552222 /* PinpointKit.xcassets */, + 04C786CD2765884D582B3ECEFBA7955F /* SourceSansPro-Bold.ttf */, + 03DDED8597C0372367A6EAD6CA15A992 /* SourceSansPro-Regular.ttf */, + 31A6B5842CAB506E7D318C2CE2FA6428 /* SourceSansPro-Semibold.ttf */, ); - name = Frameworks; + name = Resources; sourceTree = ""; }; - 238C184870795FC3EF7AB432B08A7CB9 /* iOS */ = { + 122DA2E5084A4393C29BE363C764795C /* Frameworks */ = { isa = PBXGroup; children = ( - AA7EBB5676132F92A09DA6D3043A0DFD /* Foundation.framework */, - BF572529E49D03E848861DEE350B0066 /* MessageUI.framework */, - 5D68B849E99C17F9731CCDDBAEC257B5 /* Photos.framework */, - 32CB3871C7C7351ABCA5392091149FCB /* UIKit.framework */, + 454CFBD41F93F89DA1E617E8CC8C9388 /* iOS */, ); - name = iOS; + name = Frameworks; sourceTree = ""; }; 32A23E08346748F1793F899C5FF672C1 /* SwiftLint */ = { @@ -233,197 +228,187 @@ path = SwiftLint; sourceTree = ""; }; - 4220D4CDDCA1E923778B0631C4F8EDE9 /* Pod */ = { + 454CFBD41F93F89DA1E617E8CC8C9388 /* iOS */ = { isa = PBXGroup; children = ( - 62674EF5ACF3FA5EED241237B4A6179F /* LICENSE */, - DDA0CDAD8C471D412EA68FCF820A4379 /* PinpointKit.podspec.json */, - C41C99D9CC157D7B6C40B6282441E56A /* README.md */, + F3D8132F9DC617E978F59BF7226AC88A /* Foundation.framework */, + CCC9DFE70A35B1C9D56C07C8E27586F5 /* MessageUI.framework */, + FD0952F9B52A5DA37449AF14A1EA391B /* UIKit.framework */, ); - name = Pod; + name = iOS; sourceTree = ""; }; - 66D62A71CD7D11A97A0E29837DD2D89C /* ScreenshotDetector */ = { + 4B37FEAC8A0BF8A3784B8C4B52FF3E92 /* Core */ = { isa = PBXGroup; children = ( - A9B912A4CCABAF55DE51B08601DE21FB /* ScreenshotDetector.swift */, + 16F5099BC6D66AA0F486EB148FBFB5D2 /* Annotations.swift */, + 5B2160E8A5CBB52809BFF637F911EEE9 /* AnnotationsView.swift */, + C5BEB8C79B8D0DFC544E3A9554607AF2 /* AnnotationView.swift */, + E5405375C9539A665501AB80225CAE4C /* ArrowAnnotationView.swift */, + 05BE0DC4CB17ABD05D0DA3B8DD179858 /* ASLLogger.h */, + 541FCFF5C08437EB698A9C5CA9CEB4B2 /* ASLLogger.m */, + F2709E283928DC3A69BFE47E5344F9F9 /* BarButtonItem.swift */, + 3031BF60D3756346CA4E1E08E7C7A465 /* BasicLogViewController.swift */, + 1B521B28520A86CF57F15F4D0D65C77F /* BezierPath.swift */, + B7A5A0D3F809A36AF666486A84171B70 /* BlurAnnotationView.swift */, + 7B68B5934CDC29A9659237EBBABD3157 /* BoxAnnotationView.swift */, + 20F691B761C24DA681A7D03F04E1A1D7 /* CheckmarkCell.swift */, + 313BA0FFA7E8033DC4291F2D931FB273 /* Configuration.swift */, + 77506E7A3D83D4876FB8C8695B90D19C /* Feedback.swift */, + C0B5F92DE6DDE5F7DEFF293BA97FA8C2 /* FeedbackCollector.swift */, + 79CCE648E9CAD14FDF3CE3A0AEA06623 /* FeedbackConfiguration.swift */, + 2D2A06AA1F026E5EEA25EDEE51D7DAE6 /* FeedbackNavigationController.swift */, + 62EBA7864083952345AF5BF50410295B /* FeedbackTableViewDataSource.swift */, + 0D2D2889641DD53462855DDD4F0F3E25 /* FeedbackViewController.swift */, + 5537D60E0DAC5A2AE7D9E8FD7D88EEA6 /* Fonts.swift */, + EE06415E1BE52EC2DA638F579458DD91 /* InterfaceCustomizable.swift */, + 55AB1C7C8E6BF81FBE6746A64B760DE0 /* InterfaceCustomization.swift */, + F3D9934C9601BED445ED206D76FCD6AC /* KeyboardAvoider.swift */, + 4CCBA94DB772F4D1D279D8AA8109B494 /* LogCollector.swift */, + 7707CA5ACB7390A32251A2C6381A48F8 /* LogSupporting.swift */, + 61702B4EFC33BC4DA9B00C3B31BC2880 /* LogViewer.swift */, + C5B7B8DB40154D4574EC591581C59D04 /* MailSender.swift */, + 5FC336467ECD3A956470FCE2475A393C /* MIMEType.swift */, + AA419B5DA68D91A9A56DFA1F9FE3F991 /* NavigationController.swift */, + 3C56D413219A1EE75CBE088960E03985 /* NSBundle+PinpointKit.swift */, + 69B3A4B93BEBCEF16609E1D347C6BB14 /* PinpointKit.h */, + E07E16C12D411F2531FA779157B7F8CB /* PinpointKit.swift */, + 7755CBA9DDD85821BCF4AD10366D6E62 /* PinpointKit+ShakePresentation.swift */, + 65F88C6BB404FA78E6D9A5864C95A226 /* RequestScreenshotCell.swift */, + E855319846B9E71829F4398CBF61A5FE /* Screen.swift */, + E13C8EBEC097B2210B9DFC8C4581FC83 /* ScreenshotCell.swift */, + 504CCFDFCF425BE9CD55AEAC721BC10B /* Screenshotter.swift */, + 423C59FDA444FD62438F59C103268C25 /* Sender.swift */, + CF2E6340B6D3E42DDD6DEA2E31516E4D /* ShakeDetectingWindow.swift */, + 4CE7432717E9ED121CDFD7238747C005 /* ShakeDetectingWindowDelegate.swift */, + 34F159FD76DCD82C4732BDC378419433 /* StrokeLayoutManager.swift */, + EB1F7F78E49FB6DFA0149F33E057AA10 /* SuccessType.swift */, + 47839A9413989B67F7B7D81E5D819F10 /* SystemLogCollector.swift */, + AA1CB9E82E998EF45C00E13D09D76B02 /* TextAnnotationView.swift */, + FCC0F59E52846698CFFC0D7523468BF7 /* UIBarButtonItem+TitleTextAttributeStates.swift */, + 0C69C6365FB79370BDDFD3556A0BCC9A /* UIColor+Palette.swift */, + 133C8123C233F53AA49AE37FC253D102 /* UIGestureRecognizer+FailRecognizing.swift */, + 9F810D8FBC04199EAC8E3101C3E35CC1 /* UIView+PinpointKit.swift */, + 9221C2FF15C00D9D9088DC31388A0FDF /* Editing */, + 0E7C830D040C21817A42CB4AA4111310 /* Resources */, ); - name = ScreenshotDetector; + name = Core; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 5675D3A53C18C8559A72219D972B7C67 /* Support Files */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - D1F3289BA0E17AC23978E1C387871661 /* Development Pods */, - 14B8B9B15ECBE87983FF987239AB2D7B /* Frameworks */, - 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */, - A4F71E61075C99A869D49E625CF20775 /* Products */, - 024D40B0D6C60CF034E1715DEE0E8ABB /* Targets Support Files */, + EB8BF7DBC9C71540D094368B967AF8CE /* Info.plist */, + 60F58D29F6906C15D42D7671FEABBCAA /* PinpointKit.modulemap */, + D4033607E136E6DE2A7228996DABA145 /* PinpointKit.xcconfig */, + 821F22677A30C1AF4AC060DB834AC387 /* PinpointKit-dummy.m */, + 1051C54C2A571CD6B01945A2C6AC1E61 /* PinpointKit-prefix.pch */, + B6EEA985BB879E69398123846A65805C /* PinpointKit-umbrella.h */, ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/PinpointKit"; sourceTree = ""; }; - 93187347FFE4E891D405722159860C98 /* Pods-PinpointKitExample */ = { + 6448BB305F859D7202E5D77560224F77 /* Pod */ = { isa = PBXGroup; children = ( - 2FC5CAA91B7D788B096A7564D11AAF2F /* Info.plist */, - 3F135D9D2859350E531F62C2FF9E079A /* Pods-PinpointKitExample.modulemap */, - 6F799E3827193EF1AF1D3B405780DEDB /* Pods-PinpointKitExample-acknowledgements.markdown */, - 8E48D44046FC860DAC611BC5CA2F03A3 /* Pods-PinpointKitExample-acknowledgements.plist */, - 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */, - C4D9057897E22B5264C1439151CEB8B8 /* Pods-PinpointKitExample-frameworks.sh */, - 0A3984A794B8C50CF8A494535648E07D /* Pods-PinpointKitExample-resources.sh */, - A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */, - 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */, - D816779985ABAD820D8B8B4720BA007D /* Pods-PinpointKitExample.release.xcconfig */, + 771D150E499D5F8214E8FB312B435014 /* LICENSE */, + E1A3643B5B6DEC5F626A26349E3EDD28 /* PinpointKit.podspec.json */, + 3C0A031BD60372B640FAACF4CDA806FB /* README.md */, ); - name = "Pods-PinpointKitExample"; - path = "Target Support Files/Pods-PinpointKitExample"; + name = Pod; sourceTree = ""; }; - 94D10548A2B244741490168BBD2EF561 /* Editing */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - F78B1A489CD820F94FC9DEBB400B0E61 /* AnnotationViewFactory.swift */, - B42AC62B46C0BFF3ECA267F260606E78 /* EditImageViewController.swift */, - 30028D83C7C2EC3257C16607AA472764 /* EditImageViewControllerBarButtonItemProviding.swift */, - E1BA359F8804A184AE4958C42B32FBA5 /* Editor.swift */, - 7B18FE978AC8F533799FA7BFE8C80220 /* EditorDelegate.swift */, - 78F1CF99C78EDFF60AC9C812BD6E9240 /* Tool.swift */, + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 7EDB98DB12016E714DD1942B2E5F7E90 /* Development Pods */, + 122DA2E5084A4393C29BE363C764795C /* Frameworks */, + 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */, + A4F71E61075C99A869D49E625CF20775 /* Products */, + 024D40B0D6C60CF034E1715DEE0E8ABB /* Targets Support Files */, ); - name = Editing; - path = PinpointKit/PinpointKit/Sources/Core/Editing; sourceTree = ""; }; - 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */ = { + 7EDB98DB12016E714DD1942B2E5F7E90 /* Development Pods */ = { isa = PBXGroup; children = ( - 32A23E08346748F1793F899C5FF672C1 /* SwiftLint */, + 82E6DB8E1394EB8B5AA87A980C7B1C33 /* PinpointKit */, ); - name = Pods; + name = "Development Pods"; sourceTree = ""; }; - 99C3AA86627740A4F4607554D0C06D78 /* PinpointKit */ = { + 82E6DB8E1394EB8B5AA87A980C7B1C33 /* PinpointKit */ = { isa = PBXGroup; children = ( - FBE6006D6CB53170E55CC6365A5688F7 /* Core */, - 4220D4CDDCA1E923778B0631C4F8EDE9 /* Pod */, - 66D62A71CD7D11A97A0E29837DD2D89C /* ScreenshotDetector */, - C3558219DFEA60EA14A0A57062E24E99 /* Support Files */, + 4B37FEAC8A0BF8A3784B8C4B52FF3E92 /* Core */, + 6448BB305F859D7202E5D77560224F77 /* Pod */, + 5675D3A53C18C8559A72219D972B7C67 /* Support Files */, ); name = PinpointKit; path = ../..; sourceTree = ""; }; - A4F71E61075C99A869D49E625CF20775 /* Products */ = { + 9221C2FF15C00D9D9088DC31388A0FDF /* Editing */ = { isa = PBXGroup; children = ( - 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */, - FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */, + 3FCE75777949E78FDBA4ACD31EAF3BE7 /* AnnotationViewFactory.swift */, + 202E905D98F76997BAF66C7088329BB8 /* EditImageViewController.swift */, + 6A0AF4C5CF447E45AC1DB49F7E937D31 /* EditImageViewControllerBarButtonItemProviding.swift */, + DC8C89794DFB630F25F11544DBCCBEE0 /* Editor.swift */, + E18DF2E1B16F9D2594EDB9F604E9F433 /* EditorDelegate.swift */, + 501F051C6AF2176F6CF8516DE83EDEC8 /* Tool.swift */, ); - name = Products; - sourceTree = ""; - }; - C3558219DFEA60EA14A0A57062E24E99 /* Support Files */ = { - isa = PBXGroup; - children = ( - BDDC3B377D528F59458436B4F5B2A532 /* Info.plist */, - 55719011194328F1F2E533988B1D84B7 /* PinpointKit.modulemap */, - C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */, - AF4AA6B4C273AE74D761617963326689 /* PinpointKit-dummy.m */, - C941948E355AF53105E4F06375EB41FE /* PinpointKit-prefix.pch */, - 05E823CDD4DBF5D80B81EB92056284A3 /* PinpointKit-umbrella.h */, - ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/PinpointKit"; + name = Editing; + path = PinpointKit/PinpointKit/Sources/Core/Editing; sourceTree = ""; }; - C85C7962BB7D9A005B13AA3D1451175E /* Resources */ = { + 93187347FFE4E891D405722159860C98 /* Pods-PinpointKitExample */ = { isa = PBXGroup; children = ( - C6B084565AC89CB1527D302FCD4C9D98 /* PinpointKit.xcassets */, - 7963F182B20C7A49A76E74DBB7C15175 /* SourceSansPro-Bold.ttf */, - 65CD66AF45E5DE1DDE8FFAE253F28E37 /* SourceSansPro-Regular.ttf */, - CFC685FBC0B8F58C769C3EF999025591 /* SourceSansPro-Semibold.ttf */, + 2FC5CAA91B7D788B096A7564D11AAF2F /* Info.plist */, + 3F135D9D2859350E531F62C2FF9E079A /* Pods-PinpointKitExample.modulemap */, + 6F799E3827193EF1AF1D3B405780DEDB /* Pods-PinpointKitExample-acknowledgements.markdown */, + 8E48D44046FC860DAC611BC5CA2F03A3 /* Pods-PinpointKitExample-acknowledgements.plist */, + 37548A2BDDF0E66DC404FEDD259C88E5 /* Pods-PinpointKitExample-dummy.m */, + C4D9057897E22B5264C1439151CEB8B8 /* Pods-PinpointKitExample-frameworks.sh */, + 0A3984A794B8C50CF8A494535648E07D /* Pods-PinpointKitExample-resources.sh */, + A9A0D2C935A4D39D21349416AF92B525 /* Pods-PinpointKitExample-umbrella.h */, + 0C52BEF82EABB07DA897A4885E9EDBC0 /* Pods-PinpointKitExample.debug.xcconfig */, + D816779985ABAD820D8B8B4720BA007D /* Pods-PinpointKitExample.release.xcconfig */, ); - name = Resources; + name = "Pods-PinpointKitExample"; + path = "Target Support Files/Pods-PinpointKitExample"; sourceTree = ""; }; - D1F3289BA0E17AC23978E1C387871661 /* Development Pods */ = { + 9758CC519AE2C57A9659FFC01AAD26F9 /* Pods */ = { isa = PBXGroup; children = ( - 99C3AA86627740A4F4607554D0C06D78 /* PinpointKit */, + 32A23E08346748F1793F899C5FF672C1 /* SwiftLint */, ); - name = "Development Pods"; + name = Pods; sourceTree = ""; }; - FBE6006D6CB53170E55CC6365A5688F7 /* Core */ = { + A4F71E61075C99A869D49E625CF20775 /* Products */ = { isa = PBXGroup; children = ( - 5A90FFFC5A6A9AFD869B6D3081DAA143 /* Annotations.swift */, - 8E10CDFB444E326946B98FB6AD1C7B0D /* AnnotationsView.swift */, - 4C2FEEC64163B8B297452A184CF9C179 /* AnnotationView.swift */, - 373AF359083B486A9C172AAD6FEC2945 /* ArrowAnnotationView.swift */, - C63868D4F47ACBB8F687D75CAA16D330 /* ASLLogger.h */, - 7F4DB93645A94418B3B2381FEF7E44A9 /* ASLLogger.m */, - 948A12FC165BA7D0BB328A125D01ED2C /* BarButtonItem.swift */, - 251F653008D327FA443D9F5328679466 /* BasicLogViewController.swift */, - B89A004F526B1CFBA2C97DEFBB415AA3 /* BezierPath.swift */, - 7431742269837F83A513F794C8912CC0 /* BlurAnnotationView.swift */, - 51E620A6C07893FCE37BC777E8699A5D /* BoxAnnotationView.swift */, - 372DF34E13BC8EB43FA0CA5FFB27E1D3 /* CheckmarkCell.swift */, - 4FE5A2C9FEB07141CAC13EB4D03E06C1 /* Configuration.swift */, - 23FC7EA1306975AC4F76FBAA4029CED6 /* Feedback.swift */, - 2835130E7A5A4D213AE4CAB0226E40D8 /* FeedbackCollector.swift */, - 0329DC7E7D8B71980523FF20752FD67B /* FeedbackConfiguration.swift */, - F9D11173A4411DF8FD3A40EFB78E3542 /* FeedbackNavigationController.swift */, - D25D4074CB312FA092492984EE49065C /* FeedbackTableViewDataSource.swift */, - F46FA80D00E4E8DEDF2049A8DE6899A1 /* FeedbackViewController.swift */, - D9F8C20B0E1C8F6C37F7A341E47E6F49 /* Fonts.swift */, - 1ADED76D0C8F26B0A7F7EA0DAFA147FA /* InterfaceCustomizable.swift */, - D88DBBB49B6002855E88FDDEA82777D8 /* InterfaceCustomization.swift */, - D3371A00E70F6E77C9A5D48DE67BD2CB /* KeyboardAvoider.swift */, - D7E7751C45EF11EDA8C659ACE570C9F2 /* LogCollector.swift */, - 4CBF436E92A266FF7CE3A7AB3A3F407F /* LogSupporting.swift */, - 33103E5BE61BE760494193C52E9C79BF /* LogViewer.swift */, - FEC953C16F4C460226A557156BC60B84 /* MailSender.swift */, - 3478179F380EF7CFCF2ABFCAC7B38DF5 /* MIMEType.swift */, - 94CD8E7A5D50A8B0D23C85FAC7ACA8DC /* NavigationController.swift */, - 2A6E92ADC66CBE9FB9C4D9777D42664B /* NSBundle+PinpointKit.swift */, - 975940D427A6E4F6A43FAA6908D2941E /* PinpointKit.h */, - 54AB389205B3ED61FBD88F98956C11D1 /* PinpointKit.swift */, - 7F44BB3222E6CCD1DF96C3A52F08BF88 /* PinpointKit+ShakePresentation.swift */, - 0EC7914F33A6A667C99BF844DB50D751 /* RequestScreenshotCell.swift */, - 205308D4246CB65A84A4C41F0717AEAC /* Screen.swift */, - E06EBFF2DB7A7C46EB9402CDE3B0D784 /* ScreenshotCell.swift */, - 738F1AE9D19CA7E4CB758D968A5B4726 /* Screenshotter.swift */, - C00706EA58BC249654293370835E7B2F /* Sender.swift */, - 6538C9DF313D013528BD5981DC518E9B /* ShakeDetectingWindow.swift */, - 78D3964C1492B3215058B5E0D6BAB43A /* ShakeDetectingWindowDelegate.swift */, - 4438BAB6724361E9E4CDDA051DC76153 /* StrokeLayoutManager.swift */, - 62CA52A15E05E8E78A8DBC151353FEA7 /* SuccessType.swift */, - 049E72C77B4A63F1EEA4098028664FFD /* SystemLogCollector.swift */, - 3A570B1EFBE2EA057A385714A772BD48 /* TextAnnotationView.swift */, - EEE5BA660541B12ECF838913CE5A67BE /* UIBarButtonItem+TitleTextAttributeStates.swift */, - 9820DA2E518376DA84EDEF99C2A26941 /* UIColor+Palette.swift */, - 088A47E4182E0D88F1368F2770FBF426 /* UIGestureRecognizer+FailRecognizing.swift */, - 842E427F8051C9A892C8251E32A4CBB3 /* UIView+PinpointKit.swift */, - 94D10548A2B244741490168BBD2EF561 /* Editing */, - C85C7962BB7D9A005B13AA3D1451175E /* Resources */, + 0148F29BAA8B901AF499610F69E21EB0 /* PinpointKit.framework */, + FFC218B076577FDDB35FED8A4C0FBB33 /* Pods_PinpointKitExample.framework */, ); - name = Core; + name = Products; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - BC443914FD3981FDBB824BCC872924E2 /* Headers */ = { + 8CCE9302FB71E8E63FAB4E862221A052 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 351C557F7875A8C2469E669A7E513D0B /* ASLLogger.h in Headers */, - BC5346008A7018D5154A45E81602A18F /* PinpointKit-umbrella.h in Headers */, - F76B36D9D7C10BEC5C61B44C9FB03DBA /* PinpointKit.h in Headers */, + B07145BAED83D90A3B6A39ECDFB302AA /* ASLLogger.h in Headers */, + 22C49DB94C9A551A2CEC274DAB1BF9E3 /* PinpointKit-umbrella.h in Headers */, + E622FFBEF68DB590021806BE986E4706 /* PinpointKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -438,14 +423,14 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 3B5D678C2341ED5E81CC83CE623A0DCF /* PinpointKit */ = { + 35433D18219DB934E9CB11A034357452 /* PinpointKit */ = { isa = PBXNativeTarget; - buildConfigurationList = F0817BB66C4AEDA92FC48DFA80F839B8 /* Build configuration list for PBXNativeTarget "PinpointKit" */; + buildConfigurationList = 6EB12EFC143A31AFC0685163319D5338 /* Build configuration list for PBXNativeTarget "PinpointKit" */; buildPhases = ( - 7A669FAD3C263325610DBF821C0A94F6 /* Sources */, - FC4191AB6EC2947A71E52AEBDC32C502 /* Frameworks */, - BC443914FD3981FDBB824BCC872924E2 /* Headers */, - 2C62B0809734D428C5F92C263E6DE264 /* Resources */, + BA70A6F1059F2EAE13D25FACBE421628 /* Sources */, + 727AF2B48BBF00C197164BE27E42D7CC /* Frameworks */, + 8CCE9302FB71E8E63FAB4E862221A052 /* Headers */, + 1CE2F4C69431553D4BDA4D442A4CD231 /* Resources */, ); buildRules = ( ); @@ -495,21 +480,21 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 3B5D678C2341ED5E81CC83CE623A0DCF /* PinpointKit */, + 35433D18219DB934E9CB11A034357452 /* PinpointKit */, 7883FC5596C43D4116A971A780A7A715 /* Pods-PinpointKitExample */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 2C62B0809734D428C5F92C263E6DE264 /* Resources */ = { + 1CE2F4C69431553D4BDA4D442A4CD231 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 262DFA6B4709D314BFA1100FC3332CDA /* PinpointKit.xcassets in Resources */, - 432FEB4E961CCFF6D678DE193B6812BC /* SourceSansPro-Bold.ttf in Resources */, - 562E239122CE83E8EE6269EBAF809E8F /* SourceSansPro-Regular.ttf in Resources */, - 5D472B44585CBBF09624A698E0B8101F /* SourceSansPro-Semibold.ttf in Resources */, + DC601F18851420E3E7BA928C26B8F496 /* PinpointKit.xcassets in Resources */, + D1F4DD03D25B6179D7E4834196B3E842 /* SourceSansPro-Bold.ttf in Resources */, + 257D7D0855B1AE26CFC785812EFD60E1 /* SourceSansPro-Regular.ttf in Resources */, + E3F6A8483CF0B488FB56BD48108CBC42 /* SourceSansPro-Semibold.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -524,64 +509,63 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 7A669FAD3C263325610DBF821C0A94F6 /* Sources */ = { + BA70A6F1059F2EAE13D25FACBE421628 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DEBC159074BCD4F98CB1F8E3E872AB6A /* Annotations.swift in Sources */, - FB76089FFD7A54A07EDB5D3CB76DB854 /* AnnotationsView.swift in Sources */, - 81597951E5A12740928EF029A57E3AC0 /* AnnotationView.swift in Sources */, - 1087D08740C9DF5993D74EF1218B0803 /* AnnotationViewFactory.swift in Sources */, - 812EAF4CB8EC8CC4DF11201C5A035921 /* ArrowAnnotationView.swift in Sources */, - 63CEEA16BDE1D90330D671FF3926D61B /* ASLLogger.m in Sources */, - 356E57A2DCA44629C241120C3B547B80 /* BarButtonItem.swift in Sources */, - 528884A6CB194178BD10831CFBADF2A6 /* BasicLogViewController.swift in Sources */, - CC415BBEDBA1B578512014A981686822 /* BezierPath.swift in Sources */, - D8CB2D6C54F91233351C09C5AD7300B1 /* BlurAnnotationView.swift in Sources */, - EF48AFF9C0749C206DA385A5D19544A3 /* BoxAnnotationView.swift in Sources */, - 2BD44F84EF66974A1CA928131DE46628 /* CheckmarkCell.swift in Sources */, - 52F0E2CD283BE584A43896E2E03ED85E /* Configuration.swift in Sources */, - D3605A92D25D98AC11EA4D81526B7EBC /* EditImageViewController.swift in Sources */, - 4B95E63D62F2404C2A8297B060ABDBD5 /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, - 2362CCB526B2156C96F9CAC6BFB48C55 /* Editor.swift in Sources */, - 3DB92BC49BD82DE01F838BE15FA25488 /* EditorDelegate.swift in Sources */, - 1F01E41FA6CA46DA1143969DCF214CF7 /* Feedback.swift in Sources */, - C4F4092A45B6D3AA78714FA6C60DAEA4 /* FeedbackCollector.swift in Sources */, - AE5398AD49564891EA8B7DB0E84ACAA2 /* FeedbackConfiguration.swift in Sources */, - 3ECD46D3953CDE607B546142EF848EFD /* FeedbackNavigationController.swift in Sources */, - E7B0ADBB6D224BC8CC3DA288DBFC4639 /* FeedbackTableViewDataSource.swift in Sources */, - 183BA76823D642DEFC041F7272603267 /* FeedbackViewController.swift in Sources */, - 693B12E945551FBCF91C0C3FFFF7E40F /* Fonts.swift in Sources */, - 1746F75E22D7D44D43FB1051E1B6DD37 /* InterfaceCustomizable.swift in Sources */, - 91C4CB7110F2C288F8D12FA23E2C3FA9 /* InterfaceCustomization.swift in Sources */, - A12E5D2A118291D0A136821E68B382F8 /* KeyboardAvoider.swift in Sources */, - D4EB1100EC07A9088773DF42D0681FF2 /* LogCollector.swift in Sources */, - 94496D1AC6DE2763DAE5F99736714011 /* LogSupporting.swift in Sources */, - 0BE1D0680D133636FEE05CA4589226BF /* LogViewer.swift in Sources */, - 3167F1B737EDA4723CA332A7D396830B /* MailSender.swift in Sources */, - DB4C1DB3A2907198EAD2FFF15B7C0862 /* MIMEType.swift in Sources */, - AC40C647BB7AA96A42D7A0EB371E5155 /* NavigationController.swift in Sources */, - 32BE9758D73D33D53B22601BCC8B7EA8 /* NSBundle+PinpointKit.swift in Sources */, - 18785931ED541940FC48E82A079BB6B8 /* PinpointKit+ShakePresentation.swift in Sources */, - A71D335F7E661CE7EC364ABA28E70F00 /* PinpointKit-dummy.m in Sources */, - D633A5B27540D78FAF0C530ACD1306BC /* PinpointKit.swift in Sources */, - AE0363C855A844AD44CAA6F65E2176D5 /* RequestScreenshotCell.swift in Sources */, - 09DEA27D11509728CC9AFC51085F68DE /* Screen.swift in Sources */, - A11B48160450C81D82E34489785F08F6 /* ScreenshotCell.swift in Sources */, - CD6FF5D3498E1C0870C6D45F4526ED16 /* ScreenshotDetector.swift in Sources */, - 308C97B7C0A485D7105D24B94DC365C9 /* Screenshotter.swift in Sources */, - 90EC9EC17D94ED66B57B326ED45D2041 /* Sender.swift in Sources */, - AFFD4014BCEBCD7E772E5538FD868520 /* ShakeDetectingWindow.swift in Sources */, - BD516B7C61AC0DC4E092DE638AF99E05 /* ShakeDetectingWindowDelegate.swift in Sources */, - 2217F5500A03956DB4A13D38CC2E147F /* StrokeLayoutManager.swift in Sources */, - DD726B8114A4CB7B865AB9EBE8111958 /* SuccessType.swift in Sources */, - 1B327D51B0DF8DF09A20A736BCA3F809 /* SystemLogCollector.swift in Sources */, - 0822021475B945FB7E8A5C2B5C7E2937 /* TextAnnotationView.swift in Sources */, - F885ED45F4EE0C5851D0F0D2CEFE482E /* Tool.swift in Sources */, - BA8134652B0F5D80A56EAF85F77FFF1C /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */, - ABA7755FBA46E8B882EF1D928299638D /* UIColor+Palette.swift in Sources */, - 8D422CAD1B29F226C0E00C17728EE0AE /* UIGestureRecognizer+FailRecognizing.swift in Sources */, - 5FBD7EC68725A7196BD5346B1811B440 /* UIView+PinpointKit.swift in Sources */, + CA9C884DBB7F22488BAC5F7B29ECFF73 /* Annotations.swift in Sources */, + B41C35D971BC52BBCD7D091984AF40E7 /* AnnotationsView.swift in Sources */, + B178B8AC520BABF40A7F66E4EB35824D /* AnnotationView.swift in Sources */, + 10E8DD88B949F7B01A91C06EBFF81F4D /* AnnotationViewFactory.swift in Sources */, + 5710B9D0B4A51A2B8F9ABCC40F43A996 /* ArrowAnnotationView.swift in Sources */, + B2DD02CBAFBD36726EEE403110875AA3 /* ASLLogger.m in Sources */, + 927D7B5E88793C02E77FC9CD264ABB34 /* BarButtonItem.swift in Sources */, + 829F85491BE0FF5C4A3D94CF831C6C18 /* BasicLogViewController.swift in Sources */, + 7143A7367E0A26BCF2F126BD11A0AE24 /* BezierPath.swift in Sources */, + 50F467A1BA24A5F849156E6868009258 /* BlurAnnotationView.swift in Sources */, + DB94C303676F830414CB1DAB9BA5D351 /* BoxAnnotationView.swift in Sources */, + 68368D29672B7AFFC7806527A29481C6 /* CheckmarkCell.swift in Sources */, + FD9D2481535FEFCA806B1398A6CD2424 /* Configuration.swift in Sources */, + 757F76FA8C2DF34871EA759EFBC80F6C /* EditImageViewController.swift in Sources */, + 2C05B2DFC6FFE1532BF5A7FEE84267ED /* EditImageViewControllerBarButtonItemProviding.swift in Sources */, + 2CADBF8CDFF48D1E9FE83834D5925FD6 /* Editor.swift in Sources */, + 55BE74931A02A45A2B998D8C68F01B57 /* EditorDelegate.swift in Sources */, + DF091AD1A3F8BFD73593B39B1E6ED10B /* Feedback.swift in Sources */, + 61980B61FFFDE1965C80CD49B3F497F1 /* FeedbackCollector.swift in Sources */, + 2079950AABCF71EC04291B4C8E422BF4 /* FeedbackConfiguration.swift in Sources */, + E2579B2F457B64BB491D4E165FF0692F /* FeedbackNavigationController.swift in Sources */, + E1964BF83BA075AC3218E292A4A6C9C7 /* FeedbackTableViewDataSource.swift in Sources */, + 9E653AB67A4F8916CDB7870536E95389 /* FeedbackViewController.swift in Sources */, + 83583C56D54388AEFF62B76C3C17F072 /* Fonts.swift in Sources */, + CAB56A57223BCF0724E259DDAF5C33B6 /* InterfaceCustomizable.swift in Sources */, + 09E9B53CEC8FF3F6816E202F3655A709 /* InterfaceCustomization.swift in Sources */, + FE8A6526C8AEB627A9DAA0FA1737A63B /* KeyboardAvoider.swift in Sources */, + DD3DD018057C8D761E31D7DD240DEE92 /* LogCollector.swift in Sources */, + 497A7F2F761E1B66AA5527BEC2B8F2BD /* LogSupporting.swift in Sources */, + 6B3A4EA89714B8EA350D534E746349E3 /* LogViewer.swift in Sources */, + 8659398477459CA64211B78138BF2717 /* MailSender.swift in Sources */, + B3DF0CAFA9CCF96A3756B8576CC6C669 /* MIMEType.swift in Sources */, + 83B6D2FEF34D03B357B9B87A4FE4B724 /* NavigationController.swift in Sources */, + 0DB32CF3855B442DB9C39B00C8941079 /* NSBundle+PinpointKit.swift in Sources */, + CD6AB3D3914E9EF89703F2C75F96651C /* PinpointKit+ShakePresentation.swift in Sources */, + C72BF9B389BED609944AD89CD7416AF0 /* PinpointKit-dummy.m in Sources */, + DE6EDCD32448D2111968B18916D00BDD /* PinpointKit.swift in Sources */, + A7578DBA511837C07CB23FBDAA1B2953 /* RequestScreenshotCell.swift in Sources */, + AD3EC705A8216176C6846A201AFF8ED5 /* Screen.swift in Sources */, + 8A021DD0839295297B78733A8128FFC2 /* ScreenshotCell.swift in Sources */, + BE0FB3B416BF9A5CDD80742C57805A77 /* Screenshotter.swift in Sources */, + 0ABFF3476234BC412F2925B4EAA82F20 /* Sender.swift in Sources */, + E56F8969D9C6A2984E22C796A43DA62E /* ShakeDetectingWindow.swift in Sources */, + 45507C67BD1C19B2057C6FDF011F6D79 /* ShakeDetectingWindowDelegate.swift in Sources */, + E1C6C7B1289E50897740CABB1DC552D4 /* StrokeLayoutManager.swift in Sources */, + C6086722AD53CC9750F505D4D15B99F7 /* SuccessType.swift in Sources */, + 3E3E45C9FA6F62A40A4BDA1BCE10CBB1 /* SystemLogCollector.swift in Sources */, + D6C8D11E7C640F86EC2955DE80A4B03B /* TextAnnotationView.swift in Sources */, + A37D1DF2F979398DE4EAC8E11FDAA16F /* Tool.swift in Sources */, + DA4BEB61320D668880DB9BAF2E2BBED7 /* UIBarButtonItem+TitleTextAttributeStates.swift in Sources */, + 8AC86F3A925432D69CED97B164765841 /* UIColor+Palette.swift in Sources */, + F254E4BB33D2C75930AB753B92C6F6B0 /* UIGestureRecognizer+FailRecognizing.swift in Sources */, + 5D5EA6747C0A0C133C66C8A5A0732CA7 /* UIView+PinpointKit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -591,12 +575,44 @@ 7E5002678ABA6FF9515E43AC0BAFEFED /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PinpointKit; - target = 3B5D678C2341ED5E81CC83CE623A0DCF /* PinpointKit */; + target = 35433D18219DB934E9CB11A034357452 /* PinpointKit */; targetProxy = 9806AEF51849764C12CF65E03DC758D1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 1848CE03EFBEFAA5F74978F081C1D503 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D4033607E136E6DE2A7228996DABA145 /* PinpointKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PinpointKit/PinpointKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PinpointKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PinpointKit/PinpointKit.modulemap"; + PRODUCT_MODULE_NAME = PinpointKit; + PRODUCT_NAME = PinpointKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 1FE3B4CE8C074CE87C18B26C91020E15 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -660,9 +676,9 @@ }; name = Debug; }; - 27389F5CFED05F1BB79F0B15F422063D /* Release */ = { + 7574218378631C7F23823D1B21B57AA3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */; + baseConfigurationReference = D4033607E136E6DE2A7228996DABA145 /* PinpointKit.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -693,38 +709,6 @@ }; name = Release; }; - 510F630BFADF2D0AC41F9590C7DCD5D7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C6D2E78D01A275EE7E8C99157AE0DDDB /* PinpointKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/PinpointKit/PinpointKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PinpointKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PinpointKit/PinpointKit.modulemap"; - PRODUCT_MODULE_NAME = PinpointKit; - PRODUCT_NAME = PinpointKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 89C68177307D3F04B055FD0AA2FC173A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -874,11 +858,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F0817BB66C4AEDA92FC48DFA80F839B8 /* Build configuration list for PBXNativeTarget "PinpointKit" */ = { + 6EB12EFC143A31AFC0685163319D5338 /* Build configuration list for PBXNativeTarget "PinpointKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 510F630BFADF2D0AC41F9590C7DCD5D7 /* Debug */, - 27389F5CFED05F1BB79F0B15F422063D /* Release */, + 1848CE03EFBEFAA5F74978F081C1D503 /* Debug */, + 7574218378631C7F23823D1B21B57AA3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig b/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig index 946ca90..21657c5 100644 --- a/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig +++ b/Example/Pods/Target Support Files/PinpointKit/PinpointKit.xcconfig @@ -1,6 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PinpointKit GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = -framework "Foundation" -framework "MessageUI" -framework "Photos" -framework "UIKit" +OTHER_LDFLAGS = -framework "Foundation" -framework "MessageUI" -framework "UIKit" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) From e37b29c0c3dbff8f3a521791a309ab915249afd7 Mon Sep 17 00:00:00 2001 From: Twigz Date: Fri, 18 Sep 2020 13:38:29 -0400 Subject: [PATCH 12/13] changes tocuhUpInside to primaryActionTriggered --- .../PinpointKit/Sources/Core/RequestScreenshotCell.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift b/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift index 5eca1a9..28f3d29 100644 --- a/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift +++ b/PinpointKit/PinpointKit/Sources/Core/RequestScreenshotCell.swift @@ -89,7 +89,7 @@ class RequestScreenshotCell: UITableViewCell { } private func setupRequestButton() { - requestScreenshotButton.addTarget(self, action: #selector(screenshotButtonTapped), for: .touchUpInside) + requestScreenshotButton.addTarget(self, action: #selector(screenshotButtonTapped), for: .primaryActionTriggered) NSLayoutConstraint.activate([ requestScreenshotButton.topAnchor.constraint(equalTo: contentView.topAnchor, constant: DesignConstants.topInset), From 4659ef609fd7642da322febf013525ca8c72a500 Mon Sep 17 00:00:00 2001 From: Twigz Date: Fri, 18 Sep 2020 13:41:36 -0400 Subject: [PATCH 13/13] Adds missing doc --- .../PinpointKit/Sources/Core/InterfaceCustomization.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift b/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift index bd661f2..6b79295 100644 --- a/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift +++ b/PinpointKit/PinpointKit/Sources/Core/InterfaceCustomization.swift @@ -87,6 +87,7 @@ public struct InterfaceCustomization { - parameter annotationTextAttributes: The text attributes for annotations. - parameter navigationTitleColor: The color used for navigation titles. - parameter navigationTitleFont: The font used for navigation titles. + - parameter selectScreenshotButtonFont: The font used for the select screenshot button. - parameter feedbackSendButtonFont: The font used for the button that sends feedback. - parameter feedbackCancelButtonFont: The font used for the button that cancels feedback collection. - parameter feedbackEditHintFont: The font used for the hint to the user on how to edit the screenshot from the feedback screen.