├── LICENSE ├── MakeSwiftCodeOpen.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved └── xcuserdata │ └── kazuhiro.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── MakeSwiftCodeOpen.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── swiftpm │ └── Package.resolved ├── MakeSwiftCodeOpen ├── AppDelegate.swift ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon_128x128.png │ │ ├── icon_128x128@2x.png │ │ ├── icon_16x16.png │ │ ├── icon_16x16@2x-1.png │ │ ├── icon_16x16@2x.png │ │ ├── icon_256x256.png │ │ ├── icon_256x256@2x.png │ │ ├── icon_32x32@2x.png │ │ ├── icon_512x512.png │ │ └── icon_512x512@2x.png │ ├── Contents.json │ └── PreferenceIcon.imageset │ │ ├── Contents.json │ │ ├── icon_256x256.png │ │ └── icon_256x256@2x.png ├── Info.plist ├── Main.storyboard ├── MakeSwiftCodeOpen.entitlements ├── Target.swift └── ViewController.swift ├── MakeSwiftCodeOpenTests ├── Info.plist └── MakeSwiftCodeOpenTests.swift ├── MakeSwiftCodeOpenUITests ├── Info.plist └── MakeSwiftCodeOpenUITests.swift ├── README.md ├── Sample_iOS ├── Sample_iOS.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── kazuhiro.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Sample_iOS │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SceneDelegate.swift │ └── ViewController.swift ├── Sample_iOSTests │ ├── Info.plist │ └── Sample_iOSTests.swift └── Sample_iOSUITests │ ├── Info.plist │ └── Sample_iOSUITests.swift ├── XcodeSourceExtension ├── AddPublicToKeywords.swift ├── Extension │ ├── DeclModifierSyntax.swift │ ├── DeclSyntaxProtocol+Utilities.swift │ ├── String+Utility.swift │ └── SyntaxFactory+Utilities.swift ├── HasModifierListSyntax.swift ├── Info.plist ├── SourceEditorCommand.swift ├── SourceEditorExtension.swift └── XcodeSourceExtension.entitlements └── docs ├── _config.yml ├── index.md └── privacypolicy.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Kazuhiro Hayashi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 52; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3032222725A9E4D0002BB110 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032222625A9E4D0002BB110 /* AppDelegate.swift */; }; 11 | 3032222B25A9E4D1002BB110 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3032222A25A9E4D1002BB110 /* Assets.xcassets */; }; 12 | 3032223A25A9E4D1002BB110 /* MakeSwiftCodeOpenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032223925A9E4D1002BB110 /* MakeSwiftCodeOpenTests.swift */; }; 13 | 3032224525A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032224425A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.swift */; }; 14 | 3032225B25A9E4F8002BB110 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032225825A9E4F7002BB110 /* ViewController.swift */; }; 15 | 3032225C25A9E4F8002BB110 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3032225925A9E4F8002BB110 /* Main.storyboard */; }; 16 | 3032225D25A9E4F8002BB110 /* Target.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032225A25A9E4F8002BB110 /* Target.swift */; }; 17 | 3032226825A9E516002BB110 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3032226725A9E516002BB110 /* Cocoa.framework */; }; 18 | 3032227425A9E516002BB110 /* Access Control Changer for Xcode.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 3032226525A9E516002BB110 /* Access Control Changer for Xcode.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 19 | 3032228225A9E529002BB110 /* DeclSyntaxProtocol+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032227E25A9E529002BB110 /* DeclSyntaxProtocol+Utilities.swift */; }; 20 | 3032228325A9E529002BB110 /* SyntaxFactory+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032227F25A9E529002BB110 /* SyntaxFactory+Utilities.swift */; }; 21 | 3032228425A9E529002BB110 /* DeclModifierSyntax.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032228025A9E529002BB110 /* DeclModifierSyntax.swift */; }; 22 | 3032228525A9E529002BB110 /* String+Utility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032228125A9E529002BB110 /* String+Utility.swift */; }; 23 | 3032229225A9E554002BB110 /* AddPublicToKeywords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032228E25A9E553002BB110 /* AddPublicToKeywords.swift */; }; 24 | 3032229325A9E554002BB110 /* HasModifierListSyntax.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032228F25A9E553002BB110 /* HasModifierListSyntax.swift */; }; 25 | 3032229425A9E554002BB110 /* SourceEditorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032229025A9E554002BB110 /* SourceEditorExtension.swift */; }; 26 | 3032229525A9E554002BB110 /* SourceEditorCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032229125A9E554002BB110 /* SourceEditorCommand.swift */; }; 27 | 3032229C25A9E580002BB110 /* SwiftSyntax in Frameworks */ = {isa = PBXBuildFile; productRef = 3032229B25A9E580002BB110 /* SwiftSyntax */; }; 28 | 303222A225A9E58A002BB110 /* SwiftSyntax in Frameworks */ = {isa = PBXBuildFile; productRef = 303222A125A9E58A002BB110 /* SwiftSyntax */; }; 29 | 303222A725A9E58E002BB110 /* XcodeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3032226925A9E516002BB110 /* XcodeKit.framework */; }; 30 | 303222A825A9E58E002BB110 /* XcodeKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3032226925A9E516002BB110 /* XcodeKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 31 | 303222AB25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 303222AA25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib */; }; 32 | 303222AC25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib in Embed Libraries */ = {isa = PBXBuildFile; fileRef = 303222AA25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 33 | 303222AE25A9E5C2002BB110 /* lib_InternalSwiftSyntaxParser.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 303222AA25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib */; }; 34 | 303222B225A9E641002BB110 /* Target.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032225A25A9E4F8002BB110 /* Target.swift */; }; 35 | /* End PBXBuildFile section */ 36 | 37 | /* Begin PBXContainerItemProxy section */ 38 | 3032223625A9E4D1002BB110 /* PBXContainerItemProxy */ = { 39 | isa = PBXContainerItemProxy; 40 | containerPortal = 3032221B25A9E4D0002BB110 /* Project object */; 41 | proxyType = 1; 42 | remoteGlobalIDString = 3032222225A9E4D0002BB110; 43 | remoteInfo = MakeSwiftCodeOpen; 44 | }; 45 | 3032224125A9E4D1002BB110 /* PBXContainerItemProxy */ = { 46 | isa = PBXContainerItemProxy; 47 | containerPortal = 3032221B25A9E4D0002BB110 /* Project object */; 48 | proxyType = 1; 49 | remoteGlobalIDString = 3032222225A9E4D0002BB110; 50 | remoteInfo = MakeSwiftCodeOpen; 51 | }; 52 | 3032227225A9E516002BB110 /* PBXContainerItemProxy */ = { 53 | isa = PBXContainerItemProxy; 54 | containerPortal = 3032221B25A9E4D0002BB110 /* Project object */; 55 | proxyType = 1; 56 | remoteGlobalIDString = 3032226425A9E516002BB110; 57 | remoteInfo = XcodeSourceExtension; 58 | }; 59 | /* End PBXContainerItemProxy section */ 60 | 61 | /* Begin PBXCopyFilesBuildPhase section */ 62 | 3032227825A9E516002BB110 /* Embed App Extensions */ = { 63 | isa = PBXCopyFilesBuildPhase; 64 | buildActionMask = 2147483647; 65 | dstPath = ""; 66 | dstSubfolderSpec = 13; 67 | files = ( 68 | 3032227425A9E516002BB110 /* Access Control Changer for Xcode.appex in Embed App Extensions */, 69 | ); 70 | name = "Embed App Extensions"; 71 | runOnlyForDeploymentPostprocessing = 0; 72 | }; 73 | 303222A925A9E58E002BB110 /* Embed Frameworks */ = { 74 | isa = PBXCopyFilesBuildPhase; 75 | buildActionMask = 2147483647; 76 | dstPath = ""; 77 | dstSubfolderSpec = 10; 78 | files = ( 79 | 303222A825A9E58E002BB110 /* XcodeKit.framework in Embed Frameworks */, 80 | ); 81 | name = "Embed Frameworks"; 82 | runOnlyForDeploymentPostprocessing = 0; 83 | }; 84 | 303222AD25A9E5B1002BB110 /* Embed Libraries */ = { 85 | isa = PBXCopyFilesBuildPhase; 86 | buildActionMask = 2147483647; 87 | dstPath = ""; 88 | dstSubfolderSpec = 10; 89 | files = ( 90 | 303222AC25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib in Embed Libraries */, 91 | ); 92 | name = "Embed Libraries"; 93 | runOnlyForDeploymentPostprocessing = 0; 94 | }; 95 | /* End PBXCopyFilesBuildPhase section */ 96 | 97 | /* Begin PBXFileReference section */ 98 | 3032222325A9E4D0002BB110 /* Access Level Changer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Access Level Changer.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 99 | 3032222625A9E4D0002BB110 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 100 | 3032222A25A9E4D1002BB110 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 101 | 3032222F25A9E4D1002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 102 | 3032223025A9E4D1002BB110 /* MakeSwiftCodeOpen.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MakeSwiftCodeOpen.entitlements; sourceTree = ""; }; 103 | 3032223525A9E4D1002BB110 /* MakeSwiftCodeOpenTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MakeSwiftCodeOpenTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 104 | 3032223925A9E4D1002BB110 /* MakeSwiftCodeOpenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MakeSwiftCodeOpenTests.swift; sourceTree = ""; }; 105 | 3032223B25A9E4D1002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 106 | 3032224025A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MakeSwiftCodeOpenUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 107 | 3032224425A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MakeSwiftCodeOpenUITests.swift; sourceTree = ""; }; 108 | 3032224625A9E4D1002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 109 | 3032225825A9E4F7002BB110 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 110 | 3032225925A9E4F8002BB110 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; 111 | 3032225A25A9E4F8002BB110 /* Target.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Target.swift; sourceTree = ""; }; 112 | 3032226525A9E516002BB110 /* Access Control Changer for Xcode.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Access Control Changer for Xcode.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 113 | 3032226725A9E516002BB110 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 114 | 3032226925A9E516002BB110 /* XcodeKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XcodeKit.framework; path = Library/Frameworks/XcodeKit.framework; sourceTree = DEVELOPER_DIR; }; 115 | 3032227025A9E516002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 116 | 3032227125A9E516002BB110 /* XcodeSourceExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = XcodeSourceExtension.entitlements; sourceTree = ""; }; 117 | 3032227E25A9E529002BB110 /* DeclSyntaxProtocol+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DeclSyntaxProtocol+Utilities.swift"; sourceTree = ""; }; 118 | 3032227F25A9E529002BB110 /* SyntaxFactory+Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SyntaxFactory+Utilities.swift"; sourceTree = ""; }; 119 | 3032228025A9E529002BB110 /* DeclModifierSyntax.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeclModifierSyntax.swift; sourceTree = ""; }; 120 | 3032228125A9E529002BB110 /* String+Utility.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Utility.swift"; sourceTree = ""; }; 121 | 3032228E25A9E553002BB110 /* AddPublicToKeywords.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPublicToKeywords.swift; sourceTree = ""; }; 122 | 3032228F25A9E553002BB110 /* HasModifierListSyntax.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HasModifierListSyntax.swift; sourceTree = ""; }; 123 | 3032229025A9E554002BB110 /* SourceEditorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceEditorExtension.swift; sourceTree = ""; }; 124 | 3032229125A9E554002BB110 /* SourceEditorCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceEditorCommand.swift; sourceTree = ""; }; 125 | 303222AA25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = lib_InternalSwiftSyntaxParser.dylib; path = ../../../../Applications/Xcode.app/Contents/Frameworks/lib_InternalSwiftSyntaxParser.dylib; sourceTree = ""; }; 126 | /* End PBXFileReference section */ 127 | 128 | /* Begin PBXFrameworksBuildPhase section */ 129 | 3032222025A9E4D0002BB110 /* Frameworks */ = { 130 | isa = PBXFrameworksBuildPhase; 131 | buildActionMask = 2147483647; 132 | files = ( 133 | 3032229C25A9E580002BB110 /* SwiftSyntax in Frameworks */, 134 | 303222AB25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib in Frameworks */, 135 | ); 136 | runOnlyForDeploymentPostprocessing = 0; 137 | }; 138 | 3032223225A9E4D1002BB110 /* Frameworks */ = { 139 | isa = PBXFrameworksBuildPhase; 140 | buildActionMask = 2147483647; 141 | files = ( 142 | ); 143 | runOnlyForDeploymentPostprocessing = 0; 144 | }; 145 | 3032223D25A9E4D1002BB110 /* Frameworks */ = { 146 | isa = PBXFrameworksBuildPhase; 147 | buildActionMask = 2147483647; 148 | files = ( 149 | ); 150 | runOnlyForDeploymentPostprocessing = 0; 151 | }; 152 | 3032226225A9E516002BB110 /* Frameworks */ = { 153 | isa = PBXFrameworksBuildPhase; 154 | buildActionMask = 2147483647; 155 | files = ( 156 | 303222A725A9E58E002BB110 /* XcodeKit.framework in Frameworks */, 157 | 303222AE25A9E5C2002BB110 /* lib_InternalSwiftSyntaxParser.dylib in Frameworks */, 158 | 3032226825A9E516002BB110 /* Cocoa.framework in Frameworks */, 159 | 303222A225A9E58A002BB110 /* SwiftSyntax in Frameworks */, 160 | ); 161 | runOnlyForDeploymentPostprocessing = 0; 162 | }; 163 | /* End PBXFrameworksBuildPhase section */ 164 | 165 | /* Begin PBXGroup section */ 166 | 3032221A25A9E4D0002BB110 = { 167 | isa = PBXGroup; 168 | children = ( 169 | 3032222525A9E4D0002BB110 /* MakeSwiftCodeOpen */, 170 | 3032223825A9E4D1002BB110 /* MakeSwiftCodeOpenTests */, 171 | 3032224325A9E4D1002BB110 /* MakeSwiftCodeOpenUITests */, 172 | 3032226B25A9E516002BB110 /* XcodeSourceExtension */, 173 | 3032226625A9E516002BB110 /* Frameworks */, 174 | 3032222425A9E4D0002BB110 /* Products */, 175 | ); 176 | sourceTree = ""; 177 | }; 178 | 3032222425A9E4D0002BB110 /* Products */ = { 179 | isa = PBXGroup; 180 | children = ( 181 | 3032222325A9E4D0002BB110 /* Access Level Changer.app */, 182 | 3032223525A9E4D1002BB110 /* MakeSwiftCodeOpenTests.xctest */, 183 | 3032224025A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.xctest */, 184 | 3032226525A9E516002BB110 /* Access Control Changer for Xcode.appex */, 185 | ); 186 | name = Products; 187 | sourceTree = ""; 188 | }; 189 | 3032222525A9E4D0002BB110 /* MakeSwiftCodeOpen */ = { 190 | isa = PBXGroup; 191 | children = ( 192 | 3032225925A9E4F8002BB110 /* Main.storyboard */, 193 | 3032225A25A9E4F8002BB110 /* Target.swift */, 194 | 3032225825A9E4F7002BB110 /* ViewController.swift */, 195 | 3032222625A9E4D0002BB110 /* AppDelegate.swift */, 196 | 3032222A25A9E4D1002BB110 /* Assets.xcassets */, 197 | 3032222F25A9E4D1002BB110 /* Info.plist */, 198 | 3032223025A9E4D1002BB110 /* MakeSwiftCodeOpen.entitlements */, 199 | ); 200 | path = MakeSwiftCodeOpen; 201 | sourceTree = ""; 202 | }; 203 | 3032223825A9E4D1002BB110 /* MakeSwiftCodeOpenTests */ = { 204 | isa = PBXGroup; 205 | children = ( 206 | 3032223925A9E4D1002BB110 /* MakeSwiftCodeOpenTests.swift */, 207 | 3032223B25A9E4D1002BB110 /* Info.plist */, 208 | ); 209 | path = MakeSwiftCodeOpenTests; 210 | sourceTree = ""; 211 | }; 212 | 3032224325A9E4D1002BB110 /* MakeSwiftCodeOpenUITests */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | 3032224425A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.swift */, 216 | 3032224625A9E4D1002BB110 /* Info.plist */, 217 | ); 218 | path = MakeSwiftCodeOpenUITests; 219 | sourceTree = ""; 220 | }; 221 | 3032226625A9E516002BB110 /* Frameworks */ = { 222 | isa = PBXGroup; 223 | children = ( 224 | 303222AA25A9E5B1002BB110 /* lib_InternalSwiftSyntaxParser.dylib */, 225 | 3032226725A9E516002BB110 /* Cocoa.framework */, 226 | 3032226925A9E516002BB110 /* XcodeKit.framework */, 227 | ); 228 | name = Frameworks; 229 | sourceTree = ""; 230 | }; 231 | 3032226B25A9E516002BB110 /* XcodeSourceExtension */ = { 232 | isa = PBXGroup; 233 | children = ( 234 | 3032228E25A9E553002BB110 /* AddPublicToKeywords.swift */, 235 | 3032228F25A9E553002BB110 /* HasModifierListSyntax.swift */, 236 | 3032229125A9E554002BB110 /* SourceEditorCommand.swift */, 237 | 3032229025A9E554002BB110 /* SourceEditorExtension.swift */, 238 | 3032227D25A9E51D002BB110 /* Extension */, 239 | 3032227025A9E516002BB110 /* Info.plist */, 240 | 3032227125A9E516002BB110 /* XcodeSourceExtension.entitlements */, 241 | ); 242 | path = XcodeSourceExtension; 243 | sourceTree = ""; 244 | }; 245 | 3032227D25A9E51D002BB110 /* Extension */ = { 246 | isa = PBXGroup; 247 | children = ( 248 | 3032228025A9E529002BB110 /* DeclModifierSyntax.swift */, 249 | 3032227E25A9E529002BB110 /* DeclSyntaxProtocol+Utilities.swift */, 250 | 3032228125A9E529002BB110 /* String+Utility.swift */, 251 | 3032227F25A9E529002BB110 /* SyntaxFactory+Utilities.swift */, 252 | ); 253 | path = Extension; 254 | sourceTree = ""; 255 | }; 256 | /* End PBXGroup section */ 257 | 258 | /* Begin PBXNativeTarget section */ 259 | 3032222225A9E4D0002BB110 /* MakeSwiftCodeOpen */ = { 260 | isa = PBXNativeTarget; 261 | buildConfigurationList = 3032224925A9E4D1002BB110 /* Build configuration list for PBXNativeTarget "MakeSwiftCodeOpen" */; 262 | buildPhases = ( 263 | 3032221F25A9E4D0002BB110 /* Sources */, 264 | 3032222025A9E4D0002BB110 /* Frameworks */, 265 | 3032222125A9E4D0002BB110 /* Resources */, 266 | 3032227825A9E516002BB110 /* Embed App Extensions */, 267 | 303222AD25A9E5B1002BB110 /* Embed Libraries */, 268 | ); 269 | buildRules = ( 270 | ); 271 | dependencies = ( 272 | 3032227325A9E516002BB110 /* PBXTargetDependency */, 273 | ); 274 | name = MakeSwiftCodeOpen; 275 | packageProductDependencies = ( 276 | 3032229B25A9E580002BB110 /* SwiftSyntax */, 277 | ); 278 | productName = MakeSwiftCodeOpen; 279 | productReference = 3032222325A9E4D0002BB110 /* Access Level Changer.app */; 280 | productType = "com.apple.product-type.application"; 281 | }; 282 | 3032223425A9E4D1002BB110 /* MakeSwiftCodeOpenTests */ = { 283 | isa = PBXNativeTarget; 284 | buildConfigurationList = 3032224C25A9E4D1002BB110 /* Build configuration list for PBXNativeTarget "MakeSwiftCodeOpenTests" */; 285 | buildPhases = ( 286 | 3032223125A9E4D1002BB110 /* Sources */, 287 | 3032223225A9E4D1002BB110 /* Frameworks */, 288 | 3032223325A9E4D1002BB110 /* Resources */, 289 | ); 290 | buildRules = ( 291 | ); 292 | dependencies = ( 293 | 3032223725A9E4D1002BB110 /* PBXTargetDependency */, 294 | ); 295 | name = MakeSwiftCodeOpenTests; 296 | productName = MakeSwiftCodeOpenTests; 297 | productReference = 3032223525A9E4D1002BB110 /* MakeSwiftCodeOpenTests.xctest */; 298 | productType = "com.apple.product-type.bundle.unit-test"; 299 | }; 300 | 3032223F25A9E4D1002BB110 /* MakeSwiftCodeOpenUITests */ = { 301 | isa = PBXNativeTarget; 302 | buildConfigurationList = 3032224F25A9E4D1002BB110 /* Build configuration list for PBXNativeTarget "MakeSwiftCodeOpenUITests" */; 303 | buildPhases = ( 304 | 3032223C25A9E4D1002BB110 /* Sources */, 305 | 3032223D25A9E4D1002BB110 /* Frameworks */, 306 | 3032223E25A9E4D1002BB110 /* Resources */, 307 | ); 308 | buildRules = ( 309 | ); 310 | dependencies = ( 311 | 3032224225A9E4D1002BB110 /* PBXTargetDependency */, 312 | ); 313 | name = MakeSwiftCodeOpenUITests; 314 | productName = MakeSwiftCodeOpenUITests; 315 | productReference = 3032224025A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.xctest */; 316 | productType = "com.apple.product-type.bundle.ui-testing"; 317 | }; 318 | 3032226425A9E516002BB110 /* XcodeSourceExtension */ = { 319 | isa = PBXNativeTarget; 320 | buildConfigurationList = 3032227525A9E516002BB110 /* Build configuration list for PBXNativeTarget "XcodeSourceExtension" */; 321 | buildPhases = ( 322 | 3032226125A9E516002BB110 /* Sources */, 323 | 3032226225A9E516002BB110 /* Frameworks */, 324 | 3032226325A9E516002BB110 /* Resources */, 325 | 303222A925A9E58E002BB110 /* Embed Frameworks */, 326 | ); 327 | buildRules = ( 328 | ); 329 | dependencies = ( 330 | ); 331 | name = XcodeSourceExtension; 332 | packageProductDependencies = ( 333 | 303222A125A9E58A002BB110 /* SwiftSyntax */, 334 | ); 335 | productName = XcodeSourceExtension; 336 | productReference = 3032226525A9E516002BB110 /* Access Control Changer for Xcode.appex */; 337 | productType = "com.apple.product-type.xcode-extension"; 338 | }; 339 | /* End PBXNativeTarget section */ 340 | 341 | /* Begin PBXProject section */ 342 | 3032221B25A9E4D0002BB110 /* Project object */ = { 343 | isa = PBXProject; 344 | attributes = { 345 | LastSwiftUpdateCheck = 1230; 346 | LastUpgradeCheck = 1230; 347 | TargetAttributes = { 348 | 3032222225A9E4D0002BB110 = { 349 | CreatedOnToolsVersion = 12.3; 350 | }; 351 | 3032223425A9E4D1002BB110 = { 352 | CreatedOnToolsVersion = 12.3; 353 | TestTargetID = 3032222225A9E4D0002BB110; 354 | }; 355 | 3032223F25A9E4D1002BB110 = { 356 | CreatedOnToolsVersion = 12.3; 357 | TestTargetID = 3032222225A9E4D0002BB110; 358 | }; 359 | 3032226425A9E516002BB110 = { 360 | CreatedOnToolsVersion = 12.3; 361 | }; 362 | }; 363 | }; 364 | buildConfigurationList = 3032221E25A9E4D0002BB110 /* Build configuration list for PBXProject "MakeSwiftCodeOpen" */; 365 | compatibilityVersion = "Xcode 9.3"; 366 | developmentRegion = en; 367 | hasScannedForEncodings = 0; 368 | knownRegions = ( 369 | en, 370 | Base, 371 | ); 372 | mainGroup = 3032221A25A9E4D0002BB110; 373 | packageReferences = ( 374 | 3032229A25A9E580002BB110 /* XCRemoteSwiftPackageReference "swift-syntax" */, 375 | ); 376 | productRefGroup = 3032222425A9E4D0002BB110 /* Products */; 377 | projectDirPath = ""; 378 | projectRoot = ""; 379 | targets = ( 380 | 3032222225A9E4D0002BB110 /* MakeSwiftCodeOpen */, 381 | 3032223425A9E4D1002BB110 /* MakeSwiftCodeOpenTests */, 382 | 3032223F25A9E4D1002BB110 /* MakeSwiftCodeOpenUITests */, 383 | 3032226425A9E516002BB110 /* XcodeSourceExtension */, 384 | ); 385 | }; 386 | /* End PBXProject section */ 387 | 388 | /* Begin PBXResourcesBuildPhase section */ 389 | 3032222125A9E4D0002BB110 /* Resources */ = { 390 | isa = PBXResourcesBuildPhase; 391 | buildActionMask = 2147483647; 392 | files = ( 393 | 3032222B25A9E4D1002BB110 /* Assets.xcassets in Resources */, 394 | 3032225C25A9E4F8002BB110 /* Main.storyboard in Resources */, 395 | ); 396 | runOnlyForDeploymentPostprocessing = 0; 397 | }; 398 | 3032223325A9E4D1002BB110 /* Resources */ = { 399 | isa = PBXResourcesBuildPhase; 400 | buildActionMask = 2147483647; 401 | files = ( 402 | ); 403 | runOnlyForDeploymentPostprocessing = 0; 404 | }; 405 | 3032223E25A9E4D1002BB110 /* Resources */ = { 406 | isa = PBXResourcesBuildPhase; 407 | buildActionMask = 2147483647; 408 | files = ( 409 | ); 410 | runOnlyForDeploymentPostprocessing = 0; 411 | }; 412 | 3032226325A9E516002BB110 /* Resources */ = { 413 | isa = PBXResourcesBuildPhase; 414 | buildActionMask = 2147483647; 415 | files = ( 416 | ); 417 | runOnlyForDeploymentPostprocessing = 0; 418 | }; 419 | /* End PBXResourcesBuildPhase section */ 420 | 421 | /* Begin PBXSourcesBuildPhase section */ 422 | 3032221F25A9E4D0002BB110 /* Sources */ = { 423 | isa = PBXSourcesBuildPhase; 424 | buildActionMask = 2147483647; 425 | files = ( 426 | 3032225D25A9E4F8002BB110 /* Target.swift in Sources */, 427 | 3032225B25A9E4F8002BB110 /* ViewController.swift in Sources */, 428 | 3032222725A9E4D0002BB110 /* AppDelegate.swift in Sources */, 429 | ); 430 | runOnlyForDeploymentPostprocessing = 0; 431 | }; 432 | 3032223125A9E4D1002BB110 /* Sources */ = { 433 | isa = PBXSourcesBuildPhase; 434 | buildActionMask = 2147483647; 435 | files = ( 436 | 3032223A25A9E4D1002BB110 /* MakeSwiftCodeOpenTests.swift in Sources */, 437 | ); 438 | runOnlyForDeploymentPostprocessing = 0; 439 | }; 440 | 3032223C25A9E4D1002BB110 /* Sources */ = { 441 | isa = PBXSourcesBuildPhase; 442 | buildActionMask = 2147483647; 443 | files = ( 444 | 3032224525A9E4D1002BB110 /* MakeSwiftCodeOpenUITests.swift in Sources */, 445 | ); 446 | runOnlyForDeploymentPostprocessing = 0; 447 | }; 448 | 3032226125A9E516002BB110 /* Sources */ = { 449 | isa = PBXSourcesBuildPhase; 450 | buildActionMask = 2147483647; 451 | files = ( 452 | 3032228425A9E529002BB110 /* DeclModifierSyntax.swift in Sources */, 453 | 3032228225A9E529002BB110 /* DeclSyntaxProtocol+Utilities.swift in Sources */, 454 | 3032229325A9E554002BB110 /* HasModifierListSyntax.swift in Sources */, 455 | 303222B225A9E641002BB110 /* Target.swift in Sources */, 456 | 3032229525A9E554002BB110 /* SourceEditorCommand.swift in Sources */, 457 | 3032228525A9E529002BB110 /* String+Utility.swift in Sources */, 458 | 3032229225A9E554002BB110 /* AddPublicToKeywords.swift in Sources */, 459 | 3032228325A9E529002BB110 /* SyntaxFactory+Utilities.swift in Sources */, 460 | 3032229425A9E554002BB110 /* SourceEditorExtension.swift in Sources */, 461 | ); 462 | runOnlyForDeploymentPostprocessing = 0; 463 | }; 464 | /* End PBXSourcesBuildPhase section */ 465 | 466 | /* Begin PBXTargetDependency section */ 467 | 3032223725A9E4D1002BB110 /* PBXTargetDependency */ = { 468 | isa = PBXTargetDependency; 469 | target = 3032222225A9E4D0002BB110 /* MakeSwiftCodeOpen */; 470 | targetProxy = 3032223625A9E4D1002BB110 /* PBXContainerItemProxy */; 471 | }; 472 | 3032224225A9E4D1002BB110 /* PBXTargetDependency */ = { 473 | isa = PBXTargetDependency; 474 | target = 3032222225A9E4D0002BB110 /* MakeSwiftCodeOpen */; 475 | targetProxy = 3032224125A9E4D1002BB110 /* PBXContainerItemProxy */; 476 | }; 477 | 3032227325A9E516002BB110 /* PBXTargetDependency */ = { 478 | isa = PBXTargetDependency; 479 | target = 3032226425A9E516002BB110 /* XcodeSourceExtension */; 480 | targetProxy = 3032227225A9E516002BB110 /* PBXContainerItemProxy */; 481 | }; 482 | /* End PBXTargetDependency section */ 483 | 484 | /* Begin XCBuildConfiguration section */ 485 | 3032224725A9E4D1002BB110 /* Debug */ = { 486 | isa = XCBuildConfiguration; 487 | buildSettings = { 488 | ALWAYS_SEARCH_USER_PATHS = NO; 489 | CLANG_ANALYZER_NONNULL = YES; 490 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 491 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 492 | CLANG_CXX_LIBRARY = "libc++"; 493 | CLANG_ENABLE_MODULES = YES; 494 | CLANG_ENABLE_OBJC_ARC = YES; 495 | CLANG_ENABLE_OBJC_WEAK = YES; 496 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 497 | CLANG_WARN_BOOL_CONVERSION = YES; 498 | CLANG_WARN_COMMA = YES; 499 | CLANG_WARN_CONSTANT_CONVERSION = YES; 500 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 501 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 502 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 503 | CLANG_WARN_EMPTY_BODY = YES; 504 | CLANG_WARN_ENUM_CONVERSION = YES; 505 | CLANG_WARN_INFINITE_RECURSION = YES; 506 | CLANG_WARN_INT_CONVERSION = YES; 507 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 508 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 509 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 510 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 511 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 512 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 513 | CLANG_WARN_STRICT_PROTOTYPES = YES; 514 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 515 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 516 | CLANG_WARN_UNREACHABLE_CODE = YES; 517 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 518 | COPY_PHASE_STRIP = NO; 519 | DEBUG_INFORMATION_FORMAT = dwarf; 520 | ENABLE_STRICT_OBJC_MSGSEND = YES; 521 | ENABLE_TESTABILITY = YES; 522 | GCC_C_LANGUAGE_STANDARD = gnu11; 523 | GCC_DYNAMIC_NO_PIC = NO; 524 | GCC_NO_COMMON_BLOCKS = YES; 525 | GCC_OPTIMIZATION_LEVEL = 0; 526 | GCC_PREPROCESSOR_DEFINITIONS = ( 527 | "DEBUG=1", 528 | "$(inherited)", 529 | ); 530 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 531 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 532 | GCC_WARN_UNDECLARED_SELECTOR = YES; 533 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 534 | GCC_WARN_UNUSED_FUNCTION = YES; 535 | GCC_WARN_UNUSED_VARIABLE = YES; 536 | MACOSX_DEPLOYMENT_TARGET = 10.15; 537 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 538 | MTL_FAST_MATH = YES; 539 | ONLY_ACTIVE_ARCH = YES; 540 | SDKROOT = macosx; 541 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 542 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 543 | }; 544 | name = Debug; 545 | }; 546 | 3032224825A9E4D1002BB110 /* Release */ = { 547 | isa = XCBuildConfiguration; 548 | buildSettings = { 549 | ALWAYS_SEARCH_USER_PATHS = NO; 550 | CLANG_ANALYZER_NONNULL = YES; 551 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 552 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 553 | CLANG_CXX_LIBRARY = "libc++"; 554 | CLANG_ENABLE_MODULES = YES; 555 | CLANG_ENABLE_OBJC_ARC = YES; 556 | CLANG_ENABLE_OBJC_WEAK = YES; 557 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 558 | CLANG_WARN_BOOL_CONVERSION = YES; 559 | CLANG_WARN_COMMA = YES; 560 | CLANG_WARN_CONSTANT_CONVERSION = YES; 561 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 562 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 563 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 564 | CLANG_WARN_EMPTY_BODY = YES; 565 | CLANG_WARN_ENUM_CONVERSION = YES; 566 | CLANG_WARN_INFINITE_RECURSION = YES; 567 | CLANG_WARN_INT_CONVERSION = YES; 568 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 569 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 570 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 571 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 572 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 573 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 574 | CLANG_WARN_STRICT_PROTOTYPES = YES; 575 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 576 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 577 | CLANG_WARN_UNREACHABLE_CODE = YES; 578 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 579 | COPY_PHASE_STRIP = NO; 580 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 581 | ENABLE_NS_ASSERTIONS = NO; 582 | ENABLE_STRICT_OBJC_MSGSEND = YES; 583 | GCC_C_LANGUAGE_STANDARD = gnu11; 584 | GCC_NO_COMMON_BLOCKS = YES; 585 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 586 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 587 | GCC_WARN_UNDECLARED_SELECTOR = YES; 588 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 589 | GCC_WARN_UNUSED_FUNCTION = YES; 590 | GCC_WARN_UNUSED_VARIABLE = YES; 591 | MACOSX_DEPLOYMENT_TARGET = 10.15; 592 | MTL_ENABLE_DEBUG_INFO = NO; 593 | MTL_FAST_MATH = YES; 594 | SDKROOT = macosx; 595 | SWIFT_COMPILATION_MODE = wholemodule; 596 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 597 | }; 598 | name = Release; 599 | }; 600 | 3032224A25A9E4D1002BB110 /* Debug */ = { 601 | isa = XCBuildConfiguration; 602 | buildSettings = { 603 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 604 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 605 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 606 | CODE_SIGN_ENTITLEMENTS = MakeSwiftCodeOpen/MakeSwiftCodeOpen.entitlements; 607 | CODE_SIGN_STYLE = Automatic; 608 | COMBINE_HIDPI_IMAGES = YES; 609 | CURRENT_PROJECT_VERSION = 4; 610 | DEVELOPMENT_TEAM = R33Y42SDDR; 611 | ENABLE_HARDENED_RUNTIME = YES; 612 | INFOPLIST_FILE = MakeSwiftCodeOpen/Info.plist; 613 | LD_RUNPATH_SEARCH_PATHS = ( 614 | "$(inherited)", 615 | "@executable_path/../Frameworks", 616 | ); 617 | MACOSX_DEPLOYMENT_TARGET = 10.15; 618 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpen; 619 | PRODUCT_NAME = "Access Level Changer"; 620 | SWIFT_VERSION = 5.0; 621 | }; 622 | name = Debug; 623 | }; 624 | 3032224B25A9E4D1002BB110 /* Release */ = { 625 | isa = XCBuildConfiguration; 626 | buildSettings = { 627 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 628 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 629 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 630 | CODE_SIGN_ENTITLEMENTS = MakeSwiftCodeOpen/MakeSwiftCodeOpen.entitlements; 631 | CODE_SIGN_STYLE = Automatic; 632 | COMBINE_HIDPI_IMAGES = YES; 633 | CURRENT_PROJECT_VERSION = 4; 634 | DEVELOPMENT_TEAM = R33Y42SDDR; 635 | ENABLE_HARDENED_RUNTIME = YES; 636 | INFOPLIST_FILE = MakeSwiftCodeOpen/Info.plist; 637 | LD_RUNPATH_SEARCH_PATHS = ( 638 | "$(inherited)", 639 | "@executable_path/../Frameworks", 640 | ); 641 | MACOSX_DEPLOYMENT_TARGET = 10.15; 642 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpen; 643 | PRODUCT_NAME = "Access Level Changer"; 644 | SWIFT_VERSION = 5.0; 645 | }; 646 | name = Release; 647 | }; 648 | 3032224D25A9E4D1002BB110 /* Debug */ = { 649 | isa = XCBuildConfiguration; 650 | buildSettings = { 651 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 652 | BUNDLE_LOADER = "$(TEST_HOST)"; 653 | CODE_SIGN_STYLE = Automatic; 654 | COMBINE_HIDPI_IMAGES = YES; 655 | DEVELOPMENT_TEAM = R33Y42SDDR; 656 | INFOPLIST_FILE = MakeSwiftCodeOpenTests/Info.plist; 657 | LD_RUNPATH_SEARCH_PATHS = ( 658 | "$(inherited)", 659 | "@executable_path/../Frameworks", 660 | "@loader_path/../Frameworks", 661 | ); 662 | MACOSX_DEPLOYMENT_TARGET = 11.1; 663 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpenTests; 664 | PRODUCT_NAME = "$(TARGET_NAME)"; 665 | SWIFT_VERSION = 5.0; 666 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MakeSwiftCodeOpen.app/Contents/MacOS/MakeSwiftCodeOpen"; 667 | }; 668 | name = Debug; 669 | }; 670 | 3032224E25A9E4D1002BB110 /* Release */ = { 671 | isa = XCBuildConfiguration; 672 | buildSettings = { 673 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 674 | BUNDLE_LOADER = "$(TEST_HOST)"; 675 | CODE_SIGN_STYLE = Automatic; 676 | COMBINE_HIDPI_IMAGES = YES; 677 | DEVELOPMENT_TEAM = R33Y42SDDR; 678 | INFOPLIST_FILE = MakeSwiftCodeOpenTests/Info.plist; 679 | LD_RUNPATH_SEARCH_PATHS = ( 680 | "$(inherited)", 681 | "@executable_path/../Frameworks", 682 | "@loader_path/../Frameworks", 683 | ); 684 | MACOSX_DEPLOYMENT_TARGET = 11.1; 685 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpenTests; 686 | PRODUCT_NAME = "$(TARGET_NAME)"; 687 | SWIFT_VERSION = 5.0; 688 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MakeSwiftCodeOpen.app/Contents/MacOS/MakeSwiftCodeOpen"; 689 | }; 690 | name = Release; 691 | }; 692 | 3032225025A9E4D1002BB110 /* Debug */ = { 693 | isa = XCBuildConfiguration; 694 | buildSettings = { 695 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 696 | CODE_SIGN_STYLE = Automatic; 697 | COMBINE_HIDPI_IMAGES = YES; 698 | DEVELOPMENT_TEAM = R33Y42SDDR; 699 | INFOPLIST_FILE = MakeSwiftCodeOpenUITests/Info.plist; 700 | LD_RUNPATH_SEARCH_PATHS = ( 701 | "$(inherited)", 702 | "@executable_path/../Frameworks", 703 | "@loader_path/../Frameworks", 704 | ); 705 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpenUITests; 706 | PRODUCT_NAME = "$(TARGET_NAME)"; 707 | SWIFT_VERSION = 5.0; 708 | TEST_TARGET_NAME = MakeSwiftCodeOpen; 709 | }; 710 | name = Debug; 711 | }; 712 | 3032225125A9E4D1002BB110 /* Release */ = { 713 | isa = XCBuildConfiguration; 714 | buildSettings = { 715 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 716 | CODE_SIGN_STYLE = Automatic; 717 | COMBINE_HIDPI_IMAGES = YES; 718 | DEVELOPMENT_TEAM = R33Y42SDDR; 719 | INFOPLIST_FILE = MakeSwiftCodeOpenUITests/Info.plist; 720 | LD_RUNPATH_SEARCH_PATHS = ( 721 | "$(inherited)", 722 | "@executable_path/../Frameworks", 723 | "@loader_path/../Frameworks", 724 | ); 725 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpenUITests; 726 | PRODUCT_NAME = "$(TARGET_NAME)"; 727 | SWIFT_VERSION = 5.0; 728 | TEST_TARGET_NAME = MakeSwiftCodeOpen; 729 | }; 730 | name = Release; 731 | }; 732 | 3032227625A9E516002BB110 /* Debug */ = { 733 | isa = XCBuildConfiguration; 734 | buildSettings = { 735 | CODE_SIGN_ENTITLEMENTS = XcodeSourceExtension/XcodeSourceExtension.entitlements; 736 | CODE_SIGN_STYLE = Automatic; 737 | COMBINE_HIDPI_IMAGES = YES; 738 | CURRENT_PROJECT_VERSION = 3; 739 | DEVELOPMENT_TEAM = R33Y42SDDR; 740 | ENABLE_HARDENED_RUNTIME = YES; 741 | INFOPLIST_FILE = XcodeSourceExtension/Info.plist; 742 | LD_RUNPATH_SEARCH_PATHS = ( 743 | "$(inherited)", 744 | "@executable_path/../Frameworks", 745 | "@executable_path/../../../../Frameworks", 746 | ); 747 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpen.XcodeSourceExtension; 748 | PRODUCT_NAME = "Access Control Changer for Xcode"; 749 | SKIP_INSTALL = YES; 750 | SWIFT_VERSION = 5.0; 751 | }; 752 | name = Debug; 753 | }; 754 | 3032227725A9E516002BB110 /* Release */ = { 755 | isa = XCBuildConfiguration; 756 | buildSettings = { 757 | CODE_SIGN_ENTITLEMENTS = XcodeSourceExtension/XcodeSourceExtension.entitlements; 758 | CODE_SIGN_STYLE = Automatic; 759 | COMBINE_HIDPI_IMAGES = YES; 760 | CURRENT_PROJECT_VERSION = 3; 761 | DEVELOPMENT_TEAM = R33Y42SDDR; 762 | ENABLE_HARDENED_RUNTIME = YES; 763 | INFOPLIST_FILE = XcodeSourceExtension/Info.plist; 764 | LD_RUNPATH_SEARCH_PATHS = ( 765 | "$(inherited)", 766 | "@executable_path/../Frameworks", 767 | "@executable_path/../../../../Frameworks", 768 | ); 769 | PRODUCT_BUNDLE_IDENTIFIER = kazuhiro.hayashi.MakeSwiftCodeOpen.XcodeSourceExtension; 770 | PRODUCT_NAME = "Access Control Changer for Xcode"; 771 | SKIP_INSTALL = YES; 772 | SWIFT_VERSION = 5.0; 773 | }; 774 | name = Release; 775 | }; 776 | /* End XCBuildConfiguration section */ 777 | 778 | /* Begin XCConfigurationList section */ 779 | 3032221E25A9E4D0002BB110 /* Build configuration list for PBXProject "MakeSwiftCodeOpen" */ = { 780 | isa = XCConfigurationList; 781 | buildConfigurations = ( 782 | 3032224725A9E4D1002BB110 /* Debug */, 783 | 3032224825A9E4D1002BB110 /* Release */, 784 | ); 785 | defaultConfigurationIsVisible = 0; 786 | defaultConfigurationName = Release; 787 | }; 788 | 3032224925A9E4D1002BB110 /* Build configuration list for PBXNativeTarget "MakeSwiftCodeOpen" */ = { 789 | isa = XCConfigurationList; 790 | buildConfigurations = ( 791 | 3032224A25A9E4D1002BB110 /* Debug */, 792 | 3032224B25A9E4D1002BB110 /* Release */, 793 | ); 794 | defaultConfigurationIsVisible = 0; 795 | defaultConfigurationName = Release; 796 | }; 797 | 3032224C25A9E4D1002BB110 /* Build configuration list for PBXNativeTarget "MakeSwiftCodeOpenTests" */ = { 798 | isa = XCConfigurationList; 799 | buildConfigurations = ( 800 | 3032224D25A9E4D1002BB110 /* Debug */, 801 | 3032224E25A9E4D1002BB110 /* Release */, 802 | ); 803 | defaultConfigurationIsVisible = 0; 804 | defaultConfigurationName = Release; 805 | }; 806 | 3032224F25A9E4D1002BB110 /* Build configuration list for PBXNativeTarget "MakeSwiftCodeOpenUITests" */ = { 807 | isa = XCConfigurationList; 808 | buildConfigurations = ( 809 | 3032225025A9E4D1002BB110 /* Debug */, 810 | 3032225125A9E4D1002BB110 /* Release */, 811 | ); 812 | defaultConfigurationIsVisible = 0; 813 | defaultConfigurationName = Release; 814 | }; 815 | 3032227525A9E516002BB110 /* Build configuration list for PBXNativeTarget "XcodeSourceExtension" */ = { 816 | isa = XCConfigurationList; 817 | buildConfigurations = ( 818 | 3032227625A9E516002BB110 /* Debug */, 819 | 3032227725A9E516002BB110 /* Release */, 820 | ); 821 | defaultConfigurationIsVisible = 0; 822 | defaultConfigurationName = Release; 823 | }; 824 | /* End XCConfigurationList section */ 825 | 826 | /* Begin XCRemoteSwiftPackageReference section */ 827 | 3032229A25A9E580002BB110 /* XCRemoteSwiftPackageReference "swift-syntax" */ = { 828 | isa = XCRemoteSwiftPackageReference; 829 | repositoryURL = "https://github.com/apple/swift-syntax.git"; 830 | requirement = { 831 | branch = "swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-11-a"; 832 | kind = branch; 833 | }; 834 | }; 835 | /* End XCRemoteSwiftPackageReference section */ 836 | 837 | /* Begin XCSwiftPackageProductDependency section */ 838 | 3032229B25A9E580002BB110 /* SwiftSyntax */ = { 839 | isa = XCSwiftPackageProductDependency; 840 | package = 3032229A25A9E580002BB110 /* XCRemoteSwiftPackageReference "swift-syntax" */; 841 | productName = SwiftSyntax; 842 | }; 843 | 303222A125A9E58A002BB110 /* SwiftSyntax */ = { 844 | isa = XCSwiftPackageProductDependency; 845 | package = 3032229A25A9E580002BB110 /* XCRemoteSwiftPackageReference "swift-syntax" */; 846 | productName = SwiftSyntax; 847 | }; 848 | /* End XCSwiftPackageProductDependency section */ 849 | }; 850 | rootObject = 3032221B25A9E4D0002BB110 /* Project object */; 851 | } 852 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "SwiftSyntax", 6 | "repositoryURL": "https://github.com/apple/swift-syntax.git", 7 | "state": { 8 | "branch": "swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-11-a", 9 | "revision": "844574d683f53d0737a9c6d706c3ef31ed2955eb", 10 | "version": null 11 | } 12 | } 13 | ] 14 | }, 15 | "version": 1 16 | } 17 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcodeproj/xcuserdata/kazuhiro.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MakeSwiftCodeOpen.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 2 11 | 12 | XcodeSourceExtension.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "SwiftSyntax", 6 | "repositoryURL": "https://github.com/apple/swift-syntax.git", 7 | "state": { 8 | "branch": "swift-5.3-DEVELOPMENT-SNAPSHOT-2020-11-11-a", 9 | "revision": "844574d683f53d0737a9c6d706c3ef31ed2955eb", 10 | "version": null 11 | } 12 | } 13 | ] 14 | }, 15 | "version": 1 16 | } 17 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // MakeSwiftCodeOpen 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/09. 6 | // 7 | 8 | import Cocoa 9 | 10 | @main 11 | class AppDelegate: NSObject, NSApplicationDelegate { 12 | 13 | 14 | 15 | 16 | func applicationDidFinishLaunching(_ aNotification: Notification) { 17 | // Insert code here to initialize your application 18 | } 19 | 20 | func applicationWillTerminate(_ aNotification: Notification) { 21 | // Insert code here to tear down your application 22 | } 23 | 24 | func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 25 | true 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon_16x16.png", 5 | "idiom" : "mac", 6 | "scale" : "1x", 7 | "size" : "16x16" 8 | }, 9 | { 10 | "filename" : "icon_16x16@2x.png", 11 | "idiom" : "mac", 12 | "scale" : "2x", 13 | "size" : "16x16" 14 | }, 15 | { 16 | "filename" : "icon_16x16@2x-1.png", 17 | "idiom" : "mac", 18 | "scale" : "1x", 19 | "size" : "32x32" 20 | }, 21 | { 22 | "filename" : "icon_32x32@2x.png", 23 | "idiom" : "mac", 24 | "scale" : "2x", 25 | "size" : "32x32" 26 | }, 27 | { 28 | "filename" : "icon_128x128.png", 29 | "idiom" : "mac", 30 | "scale" : "1x", 31 | "size" : "128x128" 32 | }, 33 | { 34 | "filename" : "icon_128x128@2x.png", 35 | "idiom" : "mac", 36 | "scale" : "2x", 37 | "size" : "128x128" 38 | }, 39 | { 40 | "filename" : "icon_256x256.png", 41 | "idiom" : "mac", 42 | "scale" : "1x", 43 | "size" : "256x256" 44 | }, 45 | { 46 | "filename" : "icon_256x256@2x.png", 47 | "idiom" : "mac", 48 | "scale" : "2x", 49 | "size" : "256x256" 50 | }, 51 | { 52 | "filename" : "icon_512x512.png", 53 | "idiom" : "mac", 54 | "scale" : "1x", 55 | "size" : "512x512" 56 | }, 57 | { 58 | "filename" : "icon_512x512@2x.png", 59 | "idiom" : "mac", 60 | "scale" : "2x", 61 | "size" : "512x512" 62 | } 63 | ], 64 | "info" : { 65 | "author" : "xcode", 66 | "version" : 1 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_128x128.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_16x16.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x-1.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_256x256.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_512x512.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/PreferenceIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon_256x256.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "icon_256x256@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/PreferenceIcon.imageset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/PreferenceIcon.imageset/icon_256x256.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Assets.xcassets/PreferenceIcon.imageset/icon_256x256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kazuhiro4949/AccessLevelChanger/d110333a277be03d1ffbb490370c322cb80b4f83/MakeSwiftCodeOpen/Assets.xcassets/PreferenceIcon.imageset/icon_256x256@2x.png -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | LSApplicationCategoryType 24 | public.app-category.developer-tools 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 293 | 303 | 313 | 323 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 377 | 387 | 397 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 449 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/MakeSwiftCodeOpen.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | $(TeamIdentifierPrefix)kazuhiro.hayashi.MakeSwiftCodeOpen 10 | 11 | com.apple.security.files.user-selected.read-only 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/Target.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Target.swift 3 | // SwiftDIHelper 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/09. 6 | // 7 | 8 | import Foundation 9 | 10 | enum Target: Int, Hashable, CaseIterable { 11 | case `class` 12 | case `struct` 13 | case `enum` 14 | case `protocol` 15 | case `extension` 16 | case variable 17 | case function 18 | case `init` 19 | case `subscript` 20 | case `typealias` 21 | case `associatedtype` 22 | } 23 | 24 | extension Dictionary where Key == Target, Value == Bool { 25 | static let `default`: [Target: Bool] = Target 26 | .allCases 27 | .reduce(into: [Target: Bool]()) { (result, target) in 28 | result[target] = true 29 | } 30 | 31 | func export() -> [String: Bool] { 32 | reduce(into: [String: Bool]()) { (result, elem) in 33 | result["\(elem.key.rawValue)"] = elem.value 34 | } 35 | } 36 | 37 | static func make(_ rawValue: [String: Bool]) -> [Target: Bool] { 38 | return rawValue.reduce(into: [Target: Bool]()) { (result, elem) in 39 | if let int = Int(elem.key), let target = Target(rawValue: int) { 40 | result[target] = elem.value 41 | } 42 | } 43 | } 44 | } 45 | 46 | extension UserDefaults { 47 | static let appGroups = UserDefaults( 48 | suiteName: "R33Y42SDDR.kazuhiro.hayashi.MakeSwiftCodeOpen" 49 | )! 50 | 51 | static var disabledNestedDecl: String = "disabledNestedDecl" 52 | static var targetStatesKey: String = "targetStates" 53 | } 54 | 55 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpen/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // SwiftDIHelper 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/02. 6 | // 7 | 8 | import Cocoa 9 | 10 | 11 | 12 | class ViewController: NSViewController { 13 | @IBOutlet weak var documentationTextField: NSTextField! 14 | @IBOutlet weak var onlyTopLevelCheckButton: NSButton! 15 | 16 | var targetStates = [Target: Bool].default 17 | let userDefaults = UserDefaults.appGroups 18 | 19 | @IBOutlet weak var classTargetButton: NSButton! 20 | @IBOutlet weak var structTargetButton: NSButton! 21 | @IBOutlet weak var enumTargetButton: NSButton! 22 | @IBOutlet weak var protocolTargetButton: NSButton! 23 | @IBOutlet weak var extensionTargetButton: NSButton! 24 | 25 | @IBOutlet weak var variableTargetButton: NSButton! 26 | @IBOutlet weak var functionTargetButton: NSButton! 27 | @IBOutlet weak var initTargetButton: NSButton! 28 | @IBOutlet weak var subscriptTargetButton: NSButton! 29 | 30 | @IBOutlet weak var typealiasButton: NSButton! 31 | @IBOutlet weak var associatedTypeButton: NSButton! 32 | 33 | override func viewDidLoad() { 34 | super.viewDidLoad() 35 | onlyTopLevelCheckButton.state = NSButton.StateValue( 36 | isOn: userDefaults.bool(forKey: UserDefaults.disabledNestedDecl) 37 | ) 38 | 39 | 40 | if let targetStates = userDefaults.value(forKey: UserDefaults.targetStatesKey) as? [String: Bool] { 41 | self.targetStates = .make(targetStates) 42 | } else { 43 | userDefaults.setValue( 44 | targetStates.export(), 45 | forKey: UserDefaults.targetStatesKey) 46 | } 47 | 48 | configure() 49 | 50 | let linkAttrValue = NSAttributedString( 51 | string: "https://kazuhiro4949.github.io/AccessLevelChanger/", 52 | attributes: [ 53 | .link: URL(string: "https://kazuhiro4949.github.io/AccessLevelChanger/")!, 54 | .font: NSFont.systemFont(ofSize: 12) 55 | 56 | ]) 57 | documentationTextField.attributedStringValue = linkAttrValue 58 | documentationTextField.isSelectable = true 59 | } 60 | 61 | private func configure() { 62 | classTargetButton.state = .init(isOn: targetStates[.class]!) 63 | structTargetButton.state = .init(isOn: targetStates[.struct]!) 64 | enumTargetButton.state = .init(isOn: targetStates[.enum]!) 65 | protocolTargetButton.state = .init(isOn: targetStates[.protocol]!) 66 | extensionTargetButton.state = .init(isOn: targetStates[.extension]!) 67 | variableTargetButton.state = .init(isOn: targetStates[.variable]!) 68 | functionTargetButton.state = .init(isOn: targetStates[.function]!) 69 | initTargetButton.state = .init(isOn: targetStates[.`init`]!) 70 | subscriptTargetButton.state = .init(isOn: targetStates[.`subscript`]!) 71 | typealiasButton.state = .init(isOn: targetStates[.typealias]!) 72 | associatedTypeButton.state = .init(isOn: targetStates[.associatedtype]!) 73 | } 74 | 75 | override var representedObject: Any? { 76 | didSet { 77 | // Update the view, if already loaded. 78 | } 79 | } 80 | 81 | @IBAction func enableNestedCheckmarkActionSent(_ sender: NSButton) { 82 | switch sender.state { 83 | case .off: 84 | userDefaults.set(false, forKey: UserDefaults.disabledNestedDecl) 85 | case .on: 86 | userDefaults.set(true, forKey: UserDefaults.disabledNestedDecl) 87 | case .mixed: 88 | break 89 | default: 90 | break 91 | } 92 | } 93 | 94 | @IBAction func TargetCheckBoxiesSentAction(_ sender: NSButton) { 95 | guard let target = Target(rawValue: sender.tag) else { 96 | return 97 | } 98 | 99 | targetStates[target] = sender.isOn 100 | 101 | 102 | userDefaults.set(targetStates.export(), forKey: UserDefaults.targetStatesKey) 103 | } 104 | } 105 | 106 | extension NSButton { 107 | var isOn: Bool? { 108 | switch state { 109 | case .on: 110 | return true 111 | case .off: 112 | return false 113 | case .mixed: 114 | return nil 115 | default: 116 | return nil 117 | } 118 | } 119 | } 120 | 121 | extension NSControl.StateValue { 122 | init(isOn: Bool) { 123 | if isOn { 124 | self = .on 125 | } else { 126 | self = .off 127 | } 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpenTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpenTests/MakeSwiftCodeOpenTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MakeSwiftCodeOpenTests.swift 3 | // MakeSwiftCodeOpenTests 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/09. 6 | // 7 | 8 | import XCTest 9 | @testable import MakeSwiftCodeOpen 10 | 11 | class MakeSwiftCodeOpenTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testExample() throws { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | } 25 | 26 | func testPerformanceExample() throws { 27 | // This is an example of a performance test case. 28 | self.measure { 29 | // Put the code you want to measure the time of here. 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpenUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /MakeSwiftCodeOpenUITests/MakeSwiftCodeOpenUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MakeSwiftCodeOpenUITests.swift 3 | // MakeSwiftCodeOpenUITests 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/09. 6 | // 7 | 8 | import XCTest 9 | 10 | class MakeSwiftCodeOpenUITests: XCTestCase { 11 | 12 | override func setUpWithError() throws { 13 | // Put setup code here. This method is called before the invocation of each test method in the class. 14 | 15 | // In UI tests it is usually best to stop immediately when a failure occurs. 16 | continueAfterFailure = false 17 | 18 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 19 | } 20 | 21 | override func tearDownWithError() throws { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | func testExample() throws { 26 | // UI tests must launch the application that they test. 27 | let app = XCUIApplication() 28 | app.launch() 29 | 30 | // Use recording to get started writing UI tests. 31 | // Use XCTAssert and related functions to verify your tests produce the correct results. 32 | } 33 | 34 | func testLaunchPerformance() throws { 35 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { 36 | // This measures how long it takes to launch your application. 37 | measure(metrics: [XCTApplicationLaunchMetric()]) { 38 | XCUIApplication().launch() 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AccessLevelChanger 2 | Access Level Changer is one of Xcode Source Editor Extension. 3 | 4 | Changing Swift's access level is a tedious task. This app makes that easy on Xcode. 5 | 6 | 7 | 8 | 9 | 10 | Screen Shot 2021-01-13 at 7 47 33 11 | 12 | It can perform a batch conversion from internal access level to public. 13 | 14 | | before | | after | 15 | |:------------:|:------------:|:------------:| 16 | | | → | | 17 | 18 | ## Usage 19 | 20 | Read a documentation: https://kazuhiro4949.github.io/AccessLevelChanger/ 21 | 22 | ## Requirement 23 | 24 | - Xcode 12.x 25 | - Swift 5.3 26 | 27 | # License 28 | 29 | MIT License 30 | 31 | Copyright (c) 2021 Kazuhiro Hayashi 32 | 33 | Permission is hereby granted, free of charge, to any person obtaining a copy 34 | of this software and associated documentation files (the "Software"), to deal 35 | in the Software without restriction, including without limitation the rights 36 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 37 | copies of the Software, and to permit persons to whom the Software is 38 | furnished to do so, subject to the following conditions: 39 | 40 | The above copyright notice and this permission notice shall be included in all 41 | copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 44 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 45 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 46 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 47 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 48 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 49 | SOFTWARE. 50 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3032235025AA96DE002BB110 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032234F25AA96DE002BB110 /* AppDelegate.swift */; }; 11 | 3032235225AA96DE002BB110 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032235125AA96DE002BB110 /* SceneDelegate.swift */; }; 12 | 3032235425AA96DE002BB110 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032235325AA96DE002BB110 /* ViewController.swift */; }; 13 | 3032235725AA96DE002BB110 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3032235525AA96DE002BB110 /* Main.storyboard */; }; 14 | 3032235925AA96E0002BB110 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3032235825AA96E0002BB110 /* Assets.xcassets */; }; 15 | 3032235C25AA96E0002BB110 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3032235A25AA96E0002BB110 /* LaunchScreen.storyboard */; }; 16 | 3032236725AA96E0002BB110 /* Sample_iOSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032236625AA96E0002BB110 /* Sample_iOSTests.swift */; }; 17 | 3032237225AA96E0002BB110 /* Sample_iOSUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3032237125AA96E0002BB110 /* Sample_iOSUITests.swift */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 3032236325AA96E0002BB110 /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 3032234425AA96DE002BB110 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 3032234B25AA96DE002BB110; 26 | remoteInfo = Sample_iOS; 27 | }; 28 | 3032236E25AA96E0002BB110 /* PBXContainerItemProxy */ = { 29 | isa = PBXContainerItemProxy; 30 | containerPortal = 3032234425AA96DE002BB110 /* Project object */; 31 | proxyType = 1; 32 | remoteGlobalIDString = 3032234B25AA96DE002BB110; 33 | remoteInfo = Sample_iOS; 34 | }; 35 | /* End PBXContainerItemProxy section */ 36 | 37 | /* Begin PBXFileReference section */ 38 | 3032234C25AA96DE002BB110 /* Sample_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sample_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 3032234F25AA96DE002BB110 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 40 | 3032235125AA96DE002BB110 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; 41 | 3032235325AA96DE002BB110 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 42 | 3032235625AA96DE002BB110 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 43 | 3032235825AA96E0002BB110 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 44 | 3032235B25AA96E0002BB110 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 45 | 3032235D25AA96E0002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | 3032236225AA96E0002BB110 /* Sample_iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sample_iOSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 3032236625AA96E0002BB110 /* Sample_iOSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sample_iOSTests.swift; sourceTree = ""; }; 48 | 3032236825AA96E0002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 49 | 3032236D25AA96E0002BB110 /* Sample_iOSUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Sample_iOSUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 50 | 3032237125AA96E0002BB110 /* Sample_iOSUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sample_iOSUITests.swift; sourceTree = ""; }; 51 | 3032237325AA96E0002BB110 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 52 | /* End PBXFileReference section */ 53 | 54 | /* Begin PBXFrameworksBuildPhase section */ 55 | 3032234925AA96DE002BB110 /* Frameworks */ = { 56 | isa = PBXFrameworksBuildPhase; 57 | buildActionMask = 2147483647; 58 | files = ( 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | 3032235F25AA96E0002BB110 /* Frameworks */ = { 63 | isa = PBXFrameworksBuildPhase; 64 | buildActionMask = 2147483647; 65 | files = ( 66 | ); 67 | runOnlyForDeploymentPostprocessing = 0; 68 | }; 69 | 3032236A25AA96E0002BB110 /* Frameworks */ = { 70 | isa = PBXFrameworksBuildPhase; 71 | buildActionMask = 2147483647; 72 | files = ( 73 | ); 74 | runOnlyForDeploymentPostprocessing = 0; 75 | }; 76 | /* End PBXFrameworksBuildPhase section */ 77 | 78 | /* Begin PBXGroup section */ 79 | 3032234325AA96DE002BB110 = { 80 | isa = PBXGroup; 81 | children = ( 82 | 3032234E25AA96DE002BB110 /* Sample_iOS */, 83 | 3032236525AA96E0002BB110 /* Sample_iOSTests */, 84 | 3032237025AA96E0002BB110 /* Sample_iOSUITests */, 85 | 3032234D25AA96DE002BB110 /* Products */, 86 | ); 87 | sourceTree = ""; 88 | }; 89 | 3032234D25AA96DE002BB110 /* Products */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | 3032234C25AA96DE002BB110 /* Sample_iOS.app */, 93 | 3032236225AA96E0002BB110 /* Sample_iOSTests.xctest */, 94 | 3032236D25AA96E0002BB110 /* Sample_iOSUITests.xctest */, 95 | ); 96 | name = Products; 97 | sourceTree = ""; 98 | }; 99 | 3032234E25AA96DE002BB110 /* Sample_iOS */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 3032234F25AA96DE002BB110 /* AppDelegate.swift */, 103 | 3032235125AA96DE002BB110 /* SceneDelegate.swift */, 104 | 3032235325AA96DE002BB110 /* ViewController.swift */, 105 | 3032235525AA96DE002BB110 /* Main.storyboard */, 106 | 3032235825AA96E0002BB110 /* Assets.xcassets */, 107 | 3032235A25AA96E0002BB110 /* LaunchScreen.storyboard */, 108 | 3032235D25AA96E0002BB110 /* Info.plist */, 109 | ); 110 | path = Sample_iOS; 111 | sourceTree = ""; 112 | }; 113 | 3032236525AA96E0002BB110 /* Sample_iOSTests */ = { 114 | isa = PBXGroup; 115 | children = ( 116 | 3032236625AA96E0002BB110 /* Sample_iOSTests.swift */, 117 | 3032236825AA96E0002BB110 /* Info.plist */, 118 | ); 119 | path = Sample_iOSTests; 120 | sourceTree = ""; 121 | }; 122 | 3032237025AA96E0002BB110 /* Sample_iOSUITests */ = { 123 | isa = PBXGroup; 124 | children = ( 125 | 3032237125AA96E0002BB110 /* Sample_iOSUITests.swift */, 126 | 3032237325AA96E0002BB110 /* Info.plist */, 127 | ); 128 | path = Sample_iOSUITests; 129 | sourceTree = ""; 130 | }; 131 | /* End PBXGroup section */ 132 | 133 | /* Begin PBXNativeTarget section */ 134 | 3032234B25AA96DE002BB110 /* Sample_iOS */ = { 135 | isa = PBXNativeTarget; 136 | buildConfigurationList = 3032237625AA96E0002BB110 /* Build configuration list for PBXNativeTarget "Sample_iOS" */; 137 | buildPhases = ( 138 | 3032234825AA96DE002BB110 /* Sources */, 139 | 3032234925AA96DE002BB110 /* Frameworks */, 140 | 3032234A25AA96DE002BB110 /* Resources */, 141 | ); 142 | buildRules = ( 143 | ); 144 | dependencies = ( 145 | ); 146 | name = Sample_iOS; 147 | productName = Sample_iOS; 148 | productReference = 3032234C25AA96DE002BB110 /* Sample_iOS.app */; 149 | productType = "com.apple.product-type.application"; 150 | }; 151 | 3032236125AA96E0002BB110 /* Sample_iOSTests */ = { 152 | isa = PBXNativeTarget; 153 | buildConfigurationList = 3032237925AA96E0002BB110 /* Build configuration list for PBXNativeTarget "Sample_iOSTests" */; 154 | buildPhases = ( 155 | 3032235E25AA96E0002BB110 /* Sources */, 156 | 3032235F25AA96E0002BB110 /* Frameworks */, 157 | 3032236025AA96E0002BB110 /* Resources */, 158 | ); 159 | buildRules = ( 160 | ); 161 | dependencies = ( 162 | 3032236425AA96E0002BB110 /* PBXTargetDependency */, 163 | ); 164 | name = Sample_iOSTests; 165 | productName = Sample_iOSTests; 166 | productReference = 3032236225AA96E0002BB110 /* Sample_iOSTests.xctest */; 167 | productType = "com.apple.product-type.bundle.unit-test"; 168 | }; 169 | 3032236C25AA96E0002BB110 /* Sample_iOSUITests */ = { 170 | isa = PBXNativeTarget; 171 | buildConfigurationList = 3032237C25AA96E0002BB110 /* Build configuration list for PBXNativeTarget "Sample_iOSUITests" */; 172 | buildPhases = ( 173 | 3032236925AA96E0002BB110 /* Sources */, 174 | 3032236A25AA96E0002BB110 /* Frameworks */, 175 | 3032236B25AA96E0002BB110 /* Resources */, 176 | ); 177 | buildRules = ( 178 | ); 179 | dependencies = ( 180 | 3032236F25AA96E0002BB110 /* PBXTargetDependency */, 181 | ); 182 | name = Sample_iOSUITests; 183 | productName = Sample_iOSUITests; 184 | productReference = 3032236D25AA96E0002BB110 /* Sample_iOSUITests.xctest */; 185 | productType = "com.apple.product-type.bundle.ui-testing"; 186 | }; 187 | /* End PBXNativeTarget section */ 188 | 189 | /* Begin PBXProject section */ 190 | 3032234425AA96DE002BB110 /* Project object */ = { 191 | isa = PBXProject; 192 | attributes = { 193 | LastSwiftUpdateCheck = 1230; 194 | LastUpgradeCheck = 1230; 195 | TargetAttributes = { 196 | 3032234B25AA96DE002BB110 = { 197 | CreatedOnToolsVersion = 12.3; 198 | }; 199 | 3032236125AA96E0002BB110 = { 200 | CreatedOnToolsVersion = 12.3; 201 | TestTargetID = 3032234B25AA96DE002BB110; 202 | }; 203 | 3032236C25AA96E0002BB110 = { 204 | CreatedOnToolsVersion = 12.3; 205 | TestTargetID = 3032234B25AA96DE002BB110; 206 | }; 207 | }; 208 | }; 209 | buildConfigurationList = 3032234725AA96DE002BB110 /* Build configuration list for PBXProject "Sample_iOS" */; 210 | compatibilityVersion = "Xcode 9.3"; 211 | developmentRegion = en; 212 | hasScannedForEncodings = 0; 213 | knownRegions = ( 214 | en, 215 | Base, 216 | ); 217 | mainGroup = 3032234325AA96DE002BB110; 218 | productRefGroup = 3032234D25AA96DE002BB110 /* Products */; 219 | projectDirPath = ""; 220 | projectRoot = ""; 221 | targets = ( 222 | 3032234B25AA96DE002BB110 /* Sample_iOS */, 223 | 3032236125AA96E0002BB110 /* Sample_iOSTests */, 224 | 3032236C25AA96E0002BB110 /* Sample_iOSUITests */, 225 | ); 226 | }; 227 | /* End PBXProject section */ 228 | 229 | /* Begin PBXResourcesBuildPhase section */ 230 | 3032234A25AA96DE002BB110 /* Resources */ = { 231 | isa = PBXResourcesBuildPhase; 232 | buildActionMask = 2147483647; 233 | files = ( 234 | 3032235C25AA96E0002BB110 /* LaunchScreen.storyboard in Resources */, 235 | 3032235925AA96E0002BB110 /* Assets.xcassets in Resources */, 236 | 3032235725AA96DE002BB110 /* Main.storyboard in Resources */, 237 | ); 238 | runOnlyForDeploymentPostprocessing = 0; 239 | }; 240 | 3032236025AA96E0002BB110 /* Resources */ = { 241 | isa = PBXResourcesBuildPhase; 242 | buildActionMask = 2147483647; 243 | files = ( 244 | ); 245 | runOnlyForDeploymentPostprocessing = 0; 246 | }; 247 | 3032236B25AA96E0002BB110 /* Resources */ = { 248 | isa = PBXResourcesBuildPhase; 249 | buildActionMask = 2147483647; 250 | files = ( 251 | ); 252 | runOnlyForDeploymentPostprocessing = 0; 253 | }; 254 | /* End PBXResourcesBuildPhase section */ 255 | 256 | /* Begin PBXSourcesBuildPhase section */ 257 | 3032234825AA96DE002BB110 /* Sources */ = { 258 | isa = PBXSourcesBuildPhase; 259 | buildActionMask = 2147483647; 260 | files = ( 261 | 3032235425AA96DE002BB110 /* ViewController.swift in Sources */, 262 | 3032235025AA96DE002BB110 /* AppDelegate.swift in Sources */, 263 | 3032235225AA96DE002BB110 /* SceneDelegate.swift in Sources */, 264 | ); 265 | runOnlyForDeploymentPostprocessing = 0; 266 | }; 267 | 3032235E25AA96E0002BB110 /* Sources */ = { 268 | isa = PBXSourcesBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | 3032236725AA96E0002BB110 /* Sample_iOSTests.swift in Sources */, 272 | ); 273 | runOnlyForDeploymentPostprocessing = 0; 274 | }; 275 | 3032236925AA96E0002BB110 /* Sources */ = { 276 | isa = PBXSourcesBuildPhase; 277 | buildActionMask = 2147483647; 278 | files = ( 279 | 3032237225AA96E0002BB110 /* Sample_iOSUITests.swift in Sources */, 280 | ); 281 | runOnlyForDeploymentPostprocessing = 0; 282 | }; 283 | /* End PBXSourcesBuildPhase section */ 284 | 285 | /* Begin PBXTargetDependency section */ 286 | 3032236425AA96E0002BB110 /* PBXTargetDependency */ = { 287 | isa = PBXTargetDependency; 288 | target = 3032234B25AA96DE002BB110 /* Sample_iOS */; 289 | targetProxy = 3032236325AA96E0002BB110 /* PBXContainerItemProxy */; 290 | }; 291 | 3032236F25AA96E0002BB110 /* PBXTargetDependency */ = { 292 | isa = PBXTargetDependency; 293 | target = 3032234B25AA96DE002BB110 /* Sample_iOS */; 294 | targetProxy = 3032236E25AA96E0002BB110 /* PBXContainerItemProxy */; 295 | }; 296 | /* End PBXTargetDependency section */ 297 | 298 | /* Begin PBXVariantGroup section */ 299 | 3032235525AA96DE002BB110 /* Main.storyboard */ = { 300 | isa = PBXVariantGroup; 301 | children = ( 302 | 3032235625AA96DE002BB110 /* Base */, 303 | ); 304 | name = Main.storyboard; 305 | sourceTree = ""; 306 | }; 307 | 3032235A25AA96E0002BB110 /* LaunchScreen.storyboard */ = { 308 | isa = PBXVariantGroup; 309 | children = ( 310 | 3032235B25AA96E0002BB110 /* Base */, 311 | ); 312 | name = LaunchScreen.storyboard; 313 | sourceTree = ""; 314 | }; 315 | /* End PBXVariantGroup section */ 316 | 317 | /* Begin XCBuildConfiguration section */ 318 | 3032237425AA96E0002BB110 /* Debug */ = { 319 | isa = XCBuildConfiguration; 320 | buildSettings = { 321 | ALWAYS_SEARCH_USER_PATHS = NO; 322 | CLANG_ANALYZER_NONNULL = YES; 323 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 324 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 325 | CLANG_CXX_LIBRARY = "libc++"; 326 | CLANG_ENABLE_MODULES = YES; 327 | CLANG_ENABLE_OBJC_ARC = YES; 328 | CLANG_ENABLE_OBJC_WEAK = YES; 329 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 330 | CLANG_WARN_BOOL_CONVERSION = YES; 331 | CLANG_WARN_COMMA = YES; 332 | CLANG_WARN_CONSTANT_CONVERSION = YES; 333 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 334 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 335 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 336 | CLANG_WARN_EMPTY_BODY = YES; 337 | CLANG_WARN_ENUM_CONVERSION = YES; 338 | CLANG_WARN_INFINITE_RECURSION = YES; 339 | CLANG_WARN_INT_CONVERSION = YES; 340 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 341 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 342 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 343 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 344 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 345 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 346 | CLANG_WARN_STRICT_PROTOTYPES = YES; 347 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 348 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 349 | CLANG_WARN_UNREACHABLE_CODE = YES; 350 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 351 | COPY_PHASE_STRIP = NO; 352 | DEBUG_INFORMATION_FORMAT = dwarf; 353 | ENABLE_STRICT_OBJC_MSGSEND = YES; 354 | ENABLE_TESTABILITY = YES; 355 | GCC_C_LANGUAGE_STANDARD = gnu11; 356 | GCC_DYNAMIC_NO_PIC = NO; 357 | GCC_NO_COMMON_BLOCKS = YES; 358 | GCC_OPTIMIZATION_LEVEL = 0; 359 | GCC_PREPROCESSOR_DEFINITIONS = ( 360 | "DEBUG=1", 361 | "$(inherited)", 362 | ); 363 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 364 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 365 | GCC_WARN_UNDECLARED_SELECTOR = YES; 366 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 367 | GCC_WARN_UNUSED_FUNCTION = YES; 368 | GCC_WARN_UNUSED_VARIABLE = YES; 369 | IPHONEOS_DEPLOYMENT_TARGET = 14.3; 370 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 371 | MTL_FAST_MATH = YES; 372 | ONLY_ACTIVE_ARCH = YES; 373 | SDKROOT = iphoneos; 374 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 375 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 376 | }; 377 | name = Debug; 378 | }; 379 | 3032237525AA96E0002BB110 /* Release */ = { 380 | isa = XCBuildConfiguration; 381 | buildSettings = { 382 | ALWAYS_SEARCH_USER_PATHS = NO; 383 | CLANG_ANALYZER_NONNULL = YES; 384 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 385 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 386 | CLANG_CXX_LIBRARY = "libc++"; 387 | CLANG_ENABLE_MODULES = YES; 388 | CLANG_ENABLE_OBJC_ARC = YES; 389 | CLANG_ENABLE_OBJC_WEAK = YES; 390 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 391 | CLANG_WARN_BOOL_CONVERSION = YES; 392 | CLANG_WARN_COMMA = YES; 393 | CLANG_WARN_CONSTANT_CONVERSION = YES; 394 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 395 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 396 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 397 | CLANG_WARN_EMPTY_BODY = YES; 398 | CLANG_WARN_ENUM_CONVERSION = YES; 399 | CLANG_WARN_INFINITE_RECURSION = YES; 400 | CLANG_WARN_INT_CONVERSION = YES; 401 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 402 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 403 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 404 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 405 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 406 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 407 | CLANG_WARN_STRICT_PROTOTYPES = YES; 408 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 409 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 410 | CLANG_WARN_UNREACHABLE_CODE = YES; 411 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 412 | COPY_PHASE_STRIP = NO; 413 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 414 | ENABLE_NS_ASSERTIONS = NO; 415 | ENABLE_STRICT_OBJC_MSGSEND = YES; 416 | GCC_C_LANGUAGE_STANDARD = gnu11; 417 | GCC_NO_COMMON_BLOCKS = YES; 418 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 419 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 420 | GCC_WARN_UNDECLARED_SELECTOR = YES; 421 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 422 | GCC_WARN_UNUSED_FUNCTION = YES; 423 | GCC_WARN_UNUSED_VARIABLE = YES; 424 | IPHONEOS_DEPLOYMENT_TARGET = 14.3; 425 | MTL_ENABLE_DEBUG_INFO = NO; 426 | MTL_FAST_MATH = YES; 427 | SDKROOT = iphoneos; 428 | SWIFT_COMPILATION_MODE = wholemodule; 429 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 430 | VALIDATE_PRODUCT = YES; 431 | }; 432 | name = Release; 433 | }; 434 | 3032237725AA96E0002BB110 /* Debug */ = { 435 | isa = XCBuildConfiguration; 436 | buildSettings = { 437 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 438 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 439 | CODE_SIGN_STYLE = Automatic; 440 | DEVELOPMENT_TEAM = R33Y42SDDR; 441 | INFOPLIST_FILE = Sample_iOS/Info.plist; 442 | LD_RUNPATH_SEARCH_PATHS = ( 443 | "$(inherited)", 444 | "@executable_path/Frameworks", 445 | ); 446 | PRODUCT_BUNDLE_IDENTIFIER = "kazuhiro.hayashi.Sample-iOS"; 447 | PRODUCT_NAME = "$(TARGET_NAME)"; 448 | SWIFT_VERSION = 5.0; 449 | TARGETED_DEVICE_FAMILY = "1,2"; 450 | }; 451 | name = Debug; 452 | }; 453 | 3032237825AA96E0002BB110 /* Release */ = { 454 | isa = XCBuildConfiguration; 455 | buildSettings = { 456 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 457 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 458 | CODE_SIGN_STYLE = Automatic; 459 | DEVELOPMENT_TEAM = R33Y42SDDR; 460 | INFOPLIST_FILE = Sample_iOS/Info.plist; 461 | LD_RUNPATH_SEARCH_PATHS = ( 462 | "$(inherited)", 463 | "@executable_path/Frameworks", 464 | ); 465 | PRODUCT_BUNDLE_IDENTIFIER = "kazuhiro.hayashi.Sample-iOS"; 466 | PRODUCT_NAME = "$(TARGET_NAME)"; 467 | SWIFT_VERSION = 5.0; 468 | TARGETED_DEVICE_FAMILY = "1,2"; 469 | }; 470 | name = Release; 471 | }; 472 | 3032237A25AA96E0002BB110 /* Debug */ = { 473 | isa = XCBuildConfiguration; 474 | buildSettings = { 475 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 476 | BUNDLE_LOADER = "$(TEST_HOST)"; 477 | CODE_SIGN_STYLE = Automatic; 478 | DEVELOPMENT_TEAM = R33Y42SDDR; 479 | INFOPLIST_FILE = Sample_iOSTests/Info.plist; 480 | IPHONEOS_DEPLOYMENT_TARGET = 14.3; 481 | LD_RUNPATH_SEARCH_PATHS = ( 482 | "$(inherited)", 483 | "@executable_path/Frameworks", 484 | "@loader_path/Frameworks", 485 | ); 486 | PRODUCT_BUNDLE_IDENTIFIER = "kazuhiro.hayashi.Sample-iOSTests"; 487 | PRODUCT_NAME = "$(TARGET_NAME)"; 488 | SWIFT_VERSION = 5.0; 489 | TARGETED_DEVICE_FAMILY = "1,2"; 490 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Sample_iOS.app/Sample_iOS"; 491 | }; 492 | name = Debug; 493 | }; 494 | 3032237B25AA96E0002BB110 /* Release */ = { 495 | isa = XCBuildConfiguration; 496 | buildSettings = { 497 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 498 | BUNDLE_LOADER = "$(TEST_HOST)"; 499 | CODE_SIGN_STYLE = Automatic; 500 | DEVELOPMENT_TEAM = R33Y42SDDR; 501 | INFOPLIST_FILE = Sample_iOSTests/Info.plist; 502 | IPHONEOS_DEPLOYMENT_TARGET = 14.3; 503 | LD_RUNPATH_SEARCH_PATHS = ( 504 | "$(inherited)", 505 | "@executable_path/Frameworks", 506 | "@loader_path/Frameworks", 507 | ); 508 | PRODUCT_BUNDLE_IDENTIFIER = "kazuhiro.hayashi.Sample-iOSTests"; 509 | PRODUCT_NAME = "$(TARGET_NAME)"; 510 | SWIFT_VERSION = 5.0; 511 | TARGETED_DEVICE_FAMILY = "1,2"; 512 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Sample_iOS.app/Sample_iOS"; 513 | }; 514 | name = Release; 515 | }; 516 | 3032237D25AA96E0002BB110 /* Debug */ = { 517 | isa = XCBuildConfiguration; 518 | buildSettings = { 519 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 520 | CODE_SIGN_STYLE = Automatic; 521 | DEVELOPMENT_TEAM = R33Y42SDDR; 522 | INFOPLIST_FILE = Sample_iOSUITests/Info.plist; 523 | LD_RUNPATH_SEARCH_PATHS = ( 524 | "$(inherited)", 525 | "@executable_path/Frameworks", 526 | "@loader_path/Frameworks", 527 | ); 528 | PRODUCT_BUNDLE_IDENTIFIER = "kazuhiro.hayashi.Sample-iOSUITests"; 529 | PRODUCT_NAME = "$(TARGET_NAME)"; 530 | SWIFT_VERSION = 5.0; 531 | TARGETED_DEVICE_FAMILY = "1,2"; 532 | TEST_TARGET_NAME = Sample_iOS; 533 | }; 534 | name = Debug; 535 | }; 536 | 3032237E25AA96E0002BB110 /* Release */ = { 537 | isa = XCBuildConfiguration; 538 | buildSettings = { 539 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 540 | CODE_SIGN_STYLE = Automatic; 541 | DEVELOPMENT_TEAM = R33Y42SDDR; 542 | INFOPLIST_FILE = Sample_iOSUITests/Info.plist; 543 | LD_RUNPATH_SEARCH_PATHS = ( 544 | "$(inherited)", 545 | "@executable_path/Frameworks", 546 | "@loader_path/Frameworks", 547 | ); 548 | PRODUCT_BUNDLE_IDENTIFIER = "kazuhiro.hayashi.Sample-iOSUITests"; 549 | PRODUCT_NAME = "$(TARGET_NAME)"; 550 | SWIFT_VERSION = 5.0; 551 | TARGETED_DEVICE_FAMILY = "1,2"; 552 | TEST_TARGET_NAME = Sample_iOS; 553 | }; 554 | name = Release; 555 | }; 556 | /* End XCBuildConfiguration section */ 557 | 558 | /* Begin XCConfigurationList section */ 559 | 3032234725AA96DE002BB110 /* Build configuration list for PBXProject "Sample_iOS" */ = { 560 | isa = XCConfigurationList; 561 | buildConfigurations = ( 562 | 3032237425AA96E0002BB110 /* Debug */, 563 | 3032237525AA96E0002BB110 /* Release */, 564 | ); 565 | defaultConfigurationIsVisible = 0; 566 | defaultConfigurationName = Release; 567 | }; 568 | 3032237625AA96E0002BB110 /* Build configuration list for PBXNativeTarget "Sample_iOS" */ = { 569 | isa = XCConfigurationList; 570 | buildConfigurations = ( 571 | 3032237725AA96E0002BB110 /* Debug */, 572 | 3032237825AA96E0002BB110 /* Release */, 573 | ); 574 | defaultConfigurationIsVisible = 0; 575 | defaultConfigurationName = Release; 576 | }; 577 | 3032237925AA96E0002BB110 /* Build configuration list for PBXNativeTarget "Sample_iOSTests" */ = { 578 | isa = XCConfigurationList; 579 | buildConfigurations = ( 580 | 3032237A25AA96E0002BB110 /* Debug */, 581 | 3032237B25AA96E0002BB110 /* Release */, 582 | ); 583 | defaultConfigurationIsVisible = 0; 584 | defaultConfigurationName = Release; 585 | }; 586 | 3032237C25AA96E0002BB110 /* Build configuration list for PBXNativeTarget "Sample_iOSUITests" */ = { 587 | isa = XCConfigurationList; 588 | buildConfigurations = ( 589 | 3032237D25AA96E0002BB110 /* Debug */, 590 | 3032237E25AA96E0002BB110 /* Release */, 591 | ); 592 | defaultConfigurationIsVisible = 0; 593 | defaultConfigurationName = Release; 594 | }; 595 | /* End XCConfigurationList section */ 596 | }; 597 | rootObject = 3032234425AA96DE002BB110 /* Project object */; 598 | } 599 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS.xcodeproj/xcuserdata/kazuhiro.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Sample_iOS.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 2 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Sample_iOS 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/10. 6 | // 7 | 8 | import UIKit 9 | 10 | @main 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | // MARK: UISceneSession Lifecycle 21 | 22 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 23 | // Called when a new scene session is being created. 24 | // Use this method to select a configuration to create the new scene with. 25 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 26 | } 27 | 28 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { 29 | // Called when the user discards a scene session. 30 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 31 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 32 | } 33 | 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UIApplicationSceneManifest 24 | 25 | UIApplicationSupportsMultipleScenes 26 | 27 | UISceneConfigurations 28 | 29 | UIWindowSceneSessionRoleApplication 30 | 31 | 32 | UISceneConfigurationName 33 | Default Configuration 34 | UISceneDelegateClassName 35 | $(PRODUCT_MODULE_NAME).SceneDelegate 36 | UISceneStoryboardFile 37 | Main 38 | 39 | 40 | 41 | 42 | UIApplicationSupportsIndirectInputEvents 43 | 44 | UILaunchStoryboardName 45 | LaunchScreen 46 | UIMainStoryboardFile 47 | Main 48 | UIRequiredDeviceCapabilities 49 | 50 | armv7 51 | 52 | UISupportedInterfaceOrientations 53 | 54 | UIInterfaceOrientationPortrait 55 | UIInterfaceOrientationLandscapeLeft 56 | UIInterfaceOrientationLandscapeRight 57 | 58 | UISupportedInterfaceOrientations~ipad 59 | 60 | UIInterfaceOrientationPortrait 61 | UIInterfaceOrientationPortraitUpsideDown 62 | UIInterfaceOrientationLandscapeLeft 63 | UIInterfaceOrientationLandscapeRight 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // Sample_iOS 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/10. 6 | // 7 | 8 | import UIKit 9 | 10 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 11 | 12 | var window: UIWindow? 13 | 14 | 15 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 16 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 17 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 18 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 19 | guard let _ = (scene as? UIWindowScene) else { return } 20 | } 21 | 22 | func sceneDidDisconnect(_ scene: UIScene) { 23 | // Called as the scene is being released by the system. 24 | // This occurs shortly after the scene enters the background, or when its session is discarded. 25 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 26 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 27 | } 28 | 29 | func sceneDidBecomeActive(_ scene: UIScene) { 30 | // Called when the scene has moved from an inactive state to an active state. 31 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 32 | } 33 | 34 | func sceneWillResignActive(_ scene: UIScene) { 35 | // Called when the scene will move from an active state to an inactive state. 36 | // This may occur due to temporary interruptions (ex. an incoming phone call). 37 | } 38 | 39 | func sceneWillEnterForeground(_ scene: UIScene) { 40 | // Called as the scene transitions from the background to the foreground. 41 | // Use this method to undo the changes made on entering the background. 42 | } 43 | 44 | func sceneDidEnterBackground(_ scene: UIScene) { 45 | // Called as the scene transitions from the foreground to the background. 46 | // Use this method to save data, release shared resources, and store enough scene-specific state information 47 | // to restore the scene back to its current state. 48 | } 49 | 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOS/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // Sample_iOS 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/10. 6 | // 7 | 8 | import UIKit 9 | 10 | protocol ViewControllerDelegate: AnyObject { 11 | func viewControllerDidSelectClose(_ vc: ViewController) 12 | } 13 | 14 | class ViewController: UIViewController { 15 | typealias Label = String 16 | 17 | struct Section { 18 | enum Row { 19 | case main 20 | case footer 21 | } 22 | 23 | let rows: [Row] 24 | } 25 | 26 | var section: [Section] = [Section]() { 27 | didSet { 28 | view.setNeedsLayout() 29 | } 30 | } 31 | 32 | override func viewDidLoad() { 33 | super.viewDidLoad() 34 | 35 | let prop1 = "" 36 | print(prop1) 37 | } 38 | 39 | // MARK:- properties 40 | private(set) var prop1: String = "" 41 | var prop2: String = "" 42 | internal fileprivate(set) var prop3: String = "" 43 | private var prop4: String = "" 44 | private private(set) var prop5: String = "" 45 | internal var prop6: String = "" 46 | var test3: String { 47 | set { 48 | 49 | } 50 | get { 51 | func test() { 52 | 53 | } 54 | let aaa = "" 55 | print(aaa) 56 | return "" 57 | } 58 | } 59 | var test4: String! { 60 | "" 61 | } 62 | 63 | // MARK:- methods 64 | func func1() {} 65 | private func func2() {} 66 | fileprivate func func3() {} 67 | internal func func4() {} 68 | func func5() {} 69 | @IBAction func func6(_ test: Any) {} 70 | func func7() { 71 | func func8() { 72 | func func9() { 73 | func func10() {} 74 | } 75 | } 76 | } 77 | } 78 | 79 | extension ViewController { 80 | func protocolFunc1() {} 81 | private func protocolFunc2() {} 82 | func protocolFunc3() {} 83 | } 84 | 85 | struct Struct1 { 86 | private var prop1: String 87 | var prop2: String 88 | 89 | init() { 90 | prop1 = "" 91 | prop2 = "" 92 | } 93 | 94 | func func1() {} 95 | mutating func func2() {} 96 | } 97 | 98 | enum Enum1 { 99 | case case1 100 | case case2 101 | case case3 102 | 103 | func fucn1() {} 104 | 105 | private var prop1: String { 106 | "" 107 | } 108 | } 109 | 110 | func func1() {} 111 | 112 | var prop1 = "" 113 | 114 | protocol Protocol1 { 115 | func func1() 116 | } 117 | 118 | typealias TypeAlias = String 119 | 120 | 121 | precedencegroup NoAssignmentPrecedence { 122 | assignment: false 123 | } 124 | 125 | infix operator ??=: NoAssignmentPrecedence 126 | 127 | func ??=(left: String, right: String) { 128 | 129 | } 130 | 131 | func testfunc2() { 132 | func testfunc3() { 133 | var aaa = "" 134 | } 135 | } 136 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOSTests/Sample_iOSTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Sample_iOSTests.swift 3 | // Sample_iOSTests 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/10. 6 | // 7 | 8 | import XCTest 9 | @testable import Sample_iOS 10 | 11 | class Sample_iOSTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testExample() throws { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | } 25 | 26 | func testPerformanceExample() throws { 27 | // This is an example of a performance test case. 28 | self.measure { 29 | // Put the code you want to measure the time of here. 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOSUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Sample_iOS/Sample_iOSUITests/Sample_iOSUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Sample_iOSUITests.swift 3 | // Sample_iOSUITests 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/10. 6 | // 7 | 8 | import XCTest 9 | 10 | class Sample_iOSUITests: XCTestCase { 11 | 12 | override func setUpWithError() throws { 13 | // Put setup code here. This method is called before the invocation of each test method in the class. 14 | 15 | // In UI tests it is usually best to stop immediately when a failure occurs. 16 | continueAfterFailure = false 17 | 18 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 19 | } 20 | 21 | override func tearDownWithError() throws { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | func testExample() throws { 26 | // UI tests must launch the application that they test. 27 | let app = XCUIApplication() 28 | app.launch() 29 | 30 | // Use recording to get started writing UI tests. 31 | // Use XCTAssert and related functions to verify your tests produce the correct results. 32 | } 33 | 34 | func testLaunchPerformance() throws { 35 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { 36 | // This measures how long it takes to launch your application. 37 | measure(metrics: [XCTApplicationLaunchMetric()]) { 38 | XCUIApplication().launch() 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /XcodeSourceExtension/AddPublicToKeywords.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddPublicToKeywords.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/03. 6 | // 7 | 8 | import Foundation 9 | import SwiftSyntax 10 | 11 | extension DeclSyntaxProtocol { 12 | var isNotMemberListItem: Bool { 13 | parent?.is(MemberDeclListItemSyntax.self) == false 14 | } 15 | } 16 | 17 | class AddPublicToKeywords: SyntaxRewriter { 18 | private let userDefaults = UserDefaults.appGroups 19 | 20 | private var states: [Target: Bool] { 21 | let states = userDefaults 22 | .value(forKey: UserDefaults.targetStatesKey) as? [String: Bool] 23 | if let _states = states { 24 | return .make(_states) 25 | } else { 26 | return .default 27 | } 28 | } 29 | 30 | private var disabledNestedDecl: Bool { 31 | UserDefaults.appGroups 32 | .bool(forKey: UserDefaults.disabledNestedDecl) 33 | } 34 | 35 | // Can have public members 36 | override func visit(_ node: ClassDeclSyntax) -> DeclSyntax { 37 | if disabledNestedDecl, !node.isNotMemberListItem { 38 | return DeclSyntax(node) 39 | } 40 | 41 | if states[.class] == false { 42 | return super.visit(node) 43 | } 44 | 45 | let decl = node 46 | .withReplacedScopeModifiers( 47 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 48 | ) 49 | return super.visit(decl) 50 | } 51 | 52 | override func visit(_ node: StructDeclSyntax) -> DeclSyntax { 53 | if disabledNestedDecl, !node.isNotMemberListItem { 54 | return DeclSyntax(node) 55 | } 56 | 57 | 58 | if states[.struct] == false { 59 | return super.visit(node) 60 | } 61 | 62 | let decl = node 63 | .withReplacedScopeModifiers( 64 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 65 | ) 66 | return super.visit(decl) 67 | } 68 | 69 | override func visit(_ node: EnumDeclSyntax) -> DeclSyntax { 70 | if disabledNestedDecl, !node.isNotMemberListItem { 71 | return DeclSyntax(node) 72 | } 73 | 74 | if states[.enum] == false { 75 | return super.visit(node) 76 | } 77 | 78 | let decl = node 79 | .withReplacedScopeModifiers( 80 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 81 | ) 82 | return super.visit(decl) 83 | } 84 | 85 | // Cannot have public members 86 | override func visit(_ node: FunctionDeclSyntax) -> DeclSyntax { 87 | guard node.enabledToChangingToPublic else { 88 | return DeclSyntax(node) 89 | } 90 | 91 | if states[.function] == false { 92 | return DeclSyntax(node) 93 | } 94 | 95 | let decl = node 96 | .withReplacedScopeModifiers( 97 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 98 | ) 99 | return DeclSyntax(decl) 100 | } 101 | 102 | override func visit(_ node: VariableDeclSyntax) -> DeclSyntax { 103 | guard node.enabledToChangingToPublic else { 104 | return DeclSyntax(node) 105 | } 106 | 107 | if states[.variable] == false { 108 | return DeclSyntax(node) 109 | } 110 | 111 | let decl = node 112 | .withReplacedScopeModifiers( 113 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 114 | ) 115 | return DeclSyntax(decl) 116 | } 117 | 118 | override func visit(_ node: SubscriptDeclSyntax) -> DeclSyntax { 119 | guard node.enabledToChangingToPublic else { 120 | return DeclSyntax(node) 121 | } 122 | 123 | if states[.subscript] == false { 124 | return DeclSyntax(node) 125 | } 126 | 127 | let decl = node 128 | .withReplacedScopeModifiers( 129 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 130 | ) 131 | 132 | return DeclSyntax(decl) 133 | } 134 | 135 | override func visit(_ node: InitializerDeclSyntax) -> DeclSyntax { 136 | guard node.enabledToChangingToPublic else { 137 | return DeclSyntax(node) 138 | } 139 | 140 | if states[.`init`] == false { 141 | return DeclSyntax(node) 142 | } 143 | 144 | let decl = node 145 | .withReplacedScopeModifiers( 146 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 147 | ) 148 | 149 | return DeclSyntax(decl) 150 | } 151 | 152 | override func visit(_ node: ProtocolDeclSyntax) -> DeclSyntax { 153 | if states[.protocol] == false { 154 | return DeclSyntax(node) 155 | } 156 | 157 | let decl = node 158 | .withReplacedScopeModifiers( 159 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 160 | ) 161 | return DeclSyntax(decl) 162 | } 163 | 164 | override func visit(_ node: TypealiasDeclSyntax) -> DeclSyntax { 165 | if states[.typealias] == false { 166 | return DeclSyntax(node) 167 | } 168 | 169 | let decl = node 170 | .withReplacedScopeModifiers( 171 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 172 | ) 173 | 174 | return DeclSyntax(decl) 175 | } 176 | 177 | 178 | override func visit(_ node: AssociatedtypeDeclSyntax) -> DeclSyntax { 179 | if states[.associatedtype] == false { 180 | return DeclSyntax(node) 181 | } 182 | 183 | let decl = node 184 | .withReplacedScopeModifiers( 185 | with: [SyntaxFactory.makeDeclPublicKeywordModifier()] 186 | ) 187 | 188 | return DeclSyntax(decl) 189 | } 190 | } 191 | 192 | extension DeclSyntaxProtocol { 193 | var enabledToChangingToPublic: Bool { 194 | let containingDecl = parent?.as(MemberDeclListItemSyntax.self)? 195 | .parent?.as(MemberDeclListSyntax.self)? 196 | .parent?.as(MemberDeclBlockSyntax.self)? 197 | .parent 198 | 199 | guard containingDecl != nil else { 200 | return true 201 | } 202 | 203 | if let decl = containingDecl?.as(ClassDeclSyntax.self) { 204 | return decl.modifiers?.hasPublic == true 205 | } else if let decl = containingDecl?.as(StructDeclSyntax.self) { 206 | return decl.modifiers?.hasPublic == true 207 | } else if let decl = containingDecl?.as(EnumDeclSyntax.self) { 208 | return decl.modifiers?.hasPublic == true 209 | } else { 210 | return true 211 | } 212 | } 213 | } 214 | -------------------------------------------------------------------------------- /XcodeSourceExtension/Extension/DeclModifierSyntax.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeclModifierSyntax.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/04. 6 | // 7 | 8 | import Foundation 9 | import SwiftSyntax 10 | 11 | // MARK:- Scope 12 | extension DeclModifierSyntax { 13 | var isReplacingTargetScopeToPublic: Bool { 14 | isInternalKeyword && hasNoDetail 15 | } 16 | 17 | var isScope: Bool { 18 | isPublicKeyword 19 | || isPrivateKeyword 20 | || isFileprivateKeyword 21 | || isInternalKeyword 22 | } 23 | 24 | var isPublicKeyword: Bool { 25 | name.tokenKind == .publicKeyword 26 | } 27 | 28 | var isPrivateKeyword: Bool { 29 | name.tokenKind == .privateKeyword 30 | } 31 | 32 | var isFileprivateKeyword: Bool { 33 | name.tokenKind == .fileprivateKeyword 34 | } 35 | 36 | var isInternalKeyword: Bool { 37 | name.tokenKind == .internalKeyword 38 | } 39 | 40 | var hasNoDetail: Bool { 41 | detailLeftParen == nil && detail == nil && detailRightParen == nil 42 | } 43 | 44 | var hasSetDetail: Bool { 45 | detailLeftParen?.text == "(" 46 | && detail?.text == "set" 47 | && detailRightParen?.text == ")" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /XcodeSourceExtension/Extension/DeclSyntaxProtocol+Utilities.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeclSyntaxProtocol+Utilities.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/04. 6 | // 7 | 8 | import Foundation 9 | import SwiftSyntax 10 | 11 | extension DeclSyntaxProtocol { 12 | var asDecl: DeclSyntax { 13 | DeclSyntax(self) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /XcodeSourceExtension/Extension/String+Utility.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Utility.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/07. 6 | // 7 | 8 | import Foundation 9 | 10 | extension String { 11 | var lines: [String] { 12 | reduce(into: [""]) { (result, char) in 13 | var lastLine = result.removeLast() 14 | if lastLine.last?.isNewline == true { 15 | result.append(lastLine) 16 | lastLine = "" 17 | } 18 | 19 | lastLine.append(char) 20 | result.append(lastLine) 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /XcodeSourceExtension/Extension/SyntaxFactory+Utilities.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SyntaxFactory+Utilities.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/04. 6 | // 7 | 8 | import Foundation 9 | import SwiftSyntax 10 | 11 | extension SyntaxFactory { 12 | static func makeDeclPublicKeywordModifier() -> DeclModifierSyntax { 13 | SyntaxFactory.makeDeclModifier( 14 | name: makePublicKeyword(), 15 | detailLeftParen: nil, 16 | detail: nil, 17 | detailRightParen: nil 18 | ) 19 | .withTrailingTrivia(.spaces(1)) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /XcodeSourceExtension/HasModifierListSyntax.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HasModifierListSyntax.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/04. 6 | // 7 | 8 | import Foundation 9 | import SwiftSyntax 10 | 11 | //MARK: - Rule fro replaceing with public 12 | extension ModifierListSyntax { 13 | var hasPublic: Bool { 14 | return filter(\.isScope) 15 | .contains(where: { $0.isPublicKeyword })// internal ** 16 | } 17 | 18 | var needsReplacingPublic: Bool { 19 | return filter(\.isScope) 20 | .contains(where: { $0.isReplacingTargetScopeToPublic })// internal ** 21 | } 22 | 23 | var needsAppendPublic: Bool { 24 | guard !contains(where: { $0.isPublicKeyword }) else { // public 25 | return false 26 | } 27 | 28 | let scopes = filter(\.isScope) 29 | if scopes.isEmpty { // no scope 30 | return true 31 | } else if scopes.count == 1, let scope = scopes.first { // private(set) || fileprivate(set) 32 | return (scope.isPrivateKeyword && scope.hasSetDetail) 33 | || (scope.isFileprivateKeyword && scope.hasSetDetail) 34 | } else { 35 | return false 36 | } 37 | } 38 | } 39 | 40 | 41 | protocol HasModifierListSyntax { 42 | var modifiers: ModifierListSyntax? { get } 43 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> Self 44 | } 45 | 46 | extension HasModifierListSyntax { 47 | func replacingScopeModifiers(with declModifierSyntaxes: [DeclModifierSyntax]) -> ModifierListSyntax? { 48 | if modifiers?.needsReplacingPublic == true { 49 | var newModifiers = modifiers?.compactMap({ (modifierSyntax) -> DeclModifierSyntax? in 50 | if modifierSyntax.isReplacingTargetScopeToPublic { 51 | return nil 52 | } else { 53 | return modifierSyntax 54 | .withLeadingTrivia(.zero) 55 | .withTrailingTrivia(.spaces(1)) 56 | } 57 | }) ?? [] 58 | newModifiers.insert(contentsOf: declModifierSyntaxes, at: 0) 59 | return SyntaxFactory.makeModifierList(newModifiers) 60 | } else if modifiers == nil || modifiers?.needsAppendPublic == true { 61 | var newModifiers = modifiers?.map { 62 | $0.withLeadingTrivia(.zero) 63 | .withTrailingTrivia(.spaces(1)) 64 | } ?? [] 65 | newModifiers.insert(contentsOf: declModifierSyntaxes, at: 0) 66 | return SyntaxFactory.makeModifierList(newModifiers) 67 | } else { 68 | return modifiers 69 | } 70 | } 71 | } 72 | 73 | extension VariableDeclSyntax: HasModifierListSyntax { 74 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> VariableDeclSyntax { 75 | withLetOrVarKeyword( 76 | letOrVarKeyword.withLeadingTrivia(.zero) 77 | ) 78 | .withAttributes( 79 | attributes?.withLeadingTrivia(.zero) 80 | ) 81 | .withModifiers( 82 | replacingScopeModifiers(with: modifiers) 83 | ) 84 | .withLeadingTrivia(leadingTrivia ?? .zero) 85 | } 86 | } 87 | 88 | extension FunctionDeclSyntax: HasModifierListSyntax { 89 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> FunctionDeclSyntax { 90 | withFuncKeyword( 91 | funcKeyword.withLeadingTrivia(.zero) 92 | ) 93 | .withAttributes( 94 | attributes?.withLeadingTrivia(.zero) 95 | ) 96 | .withModifiers( 97 | replacingScopeModifiers(with: modifiers) 98 | ) 99 | .withLeadingTrivia(leadingTrivia ?? .zero) 100 | } 101 | } 102 | 103 | extension ClassDeclSyntax: HasModifierListSyntax { 104 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> ClassDeclSyntax { 105 | withClassKeyword( 106 | classKeyword.withLeadingTrivia(.zero) 107 | ) 108 | .withAttributes( 109 | attributes?.withLeadingTrivia(.zero) 110 | ) 111 | .withModifiers( 112 | replacingScopeModifiers(with: modifiers) 113 | ) 114 | .withLeadingTrivia( 115 | leadingTrivia ?? .zero 116 | ) 117 | } 118 | } 119 | 120 | extension StructDeclSyntax: HasModifierListSyntax { 121 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> StructDeclSyntax { 122 | withStructKeyword( 123 | structKeyword.withLeadingTrivia(.zero) 124 | ) 125 | .withAttributes( 126 | attributes?.withLeadingTrivia(.zero) 127 | ) 128 | .withModifiers( 129 | replacingScopeModifiers(with: modifiers) 130 | ) 131 | .withLeadingTrivia( 132 | leadingTrivia ?? .zero 133 | ) 134 | } 135 | } 136 | 137 | 138 | extension EnumDeclSyntax: HasModifierListSyntax { 139 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> EnumDeclSyntax { 140 | withEnumKeyword( 141 | enumKeyword.withLeadingTrivia(.zero) 142 | ) 143 | .withAttributes( 144 | attributes?.withLeadingTrivia(.zero) 145 | ) 146 | .withModifiers( 147 | replacingScopeModifiers(with: modifiers) 148 | ) 149 | .withLeadingTrivia( 150 | leadingTrivia ?? .zero 151 | ) 152 | } 153 | } 154 | 155 | 156 | extension ProtocolDeclSyntax: HasModifierListSyntax { 157 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> ProtocolDeclSyntax { 158 | withProtocolKeyword( 159 | protocolKeyword.withLeadingTrivia(.zero) 160 | ) 161 | .withAttributes( 162 | attributes?.withLeadingTrivia(.zero) 163 | ) 164 | .withModifiers( 165 | replacingScopeModifiers(with: modifiers) 166 | ) 167 | .withLeadingTrivia(leadingTrivia ?? .zero) 168 | } 169 | } 170 | 171 | extension TypealiasDeclSyntax: HasModifierListSyntax { 172 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> TypealiasDeclSyntax { 173 | withTypealiasKeyword( 174 | typealiasKeyword.withLeadingTrivia(.zero) 175 | ) 176 | .withAttributes( 177 | attributes?.withLeadingTrivia(.zero) 178 | ) 179 | .withModifiers( 180 | replacingScopeModifiers(with: modifiers) 181 | ) 182 | .withLeadingTrivia(leadingTrivia ?? .zero) 183 | } 184 | } 185 | 186 | extension SubscriptDeclSyntax: HasModifierListSyntax { 187 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> SubscriptDeclSyntax { 188 | withSubscriptKeyword( 189 | subscriptKeyword.withLeadingTrivia(.zero) 190 | ) 191 | .withAttributes( 192 | attributes?.withLeadingTrivia(.zero) 193 | ) 194 | .withModifiers( 195 | replacingScopeModifiers(with: modifiers) 196 | ) 197 | .withLeadingTrivia(leadingTrivia ?? .zero) 198 | } 199 | } 200 | 201 | extension InitializerDeclSyntax: HasModifierListSyntax { 202 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> InitializerDeclSyntax { 203 | withInitKeyword( 204 | initKeyword.withLeadingTrivia(.zero) 205 | ) 206 | .withAttributes( 207 | attributes?.withLeadingTrivia(.zero) 208 | ) 209 | .withModifiers( 210 | replacingScopeModifiers(with: modifiers) 211 | ) 212 | .withLeadingTrivia(leadingTrivia ?? .zero) 213 | } 214 | } 215 | 216 | extension AssociatedtypeDeclSyntax: HasModifierListSyntax { 217 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> AssociatedtypeDeclSyntax { 218 | withAssociatedtypeKeyword( 219 | associatedtypeKeyword.withLeadingTrivia(.zero) 220 | ) 221 | .withAttributes( 222 | attributes?.withLeadingTrivia(.zero) 223 | ) 224 | .withModifiers( 225 | replacingScopeModifiers(with: modifiers) 226 | ) 227 | .withLeadingTrivia(leadingTrivia ?? .zero) 228 | } 229 | } 230 | 231 | extension OperatorDeclSyntax: HasModifierListSyntax { 232 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> OperatorDeclSyntax { 233 | withOperatorKeyword( 234 | operatorKeyword.withLeadingTrivia(.zero) 235 | ) 236 | .withAttributes( 237 | attributes?.withLeadingTrivia(.zero) 238 | ) 239 | .withModifiers( 240 | replacingScopeModifiers(with: modifiers) 241 | ) 242 | .withLeadingTrivia(leadingTrivia ?? .zero) 243 | } 244 | } 245 | 246 | extension PrecedenceGroupDeclSyntax: HasModifierListSyntax { 247 | func withReplacedScopeModifiers(with modifiers: [DeclModifierSyntax]) -> PrecedenceGroupDeclSyntax { 248 | withPrecedencegroupKeyword( 249 | precedencegroupKeyword.withLeadingTrivia(.zero) 250 | ) 251 | .withAttributes( 252 | attributes?.withLeadingTrivia(.zero) 253 | ) 254 | .withModifiers( 255 | replacingScopeModifiers(with: modifiers) 256 | ) 257 | .withLeadingTrivia(leadingTrivia ?? .zero) 258 | } 259 | } 260 | -------------------------------------------------------------------------------- /XcodeSourceExtension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | Access Control Changer 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | XCSourceEditorCommandDefinitions 30 | 31 | 32 | XCSourceEditorCommandClassName 33 | $(PRODUCT_MODULE_NAME).SourceEditorCommand 34 | XCSourceEditorCommandIdentifier 35 | $(PRODUCT_BUNDLE_IDENTIFIER).SourceEditorCommand 36 | XCSourceEditorCommandName 37 | Replace internal with public 38 | 39 | 40 | XCSourceEditorExtensionPrincipalClass 41 | $(PRODUCT_MODULE_NAME).SourceEditorExtension 42 | 43 | NSExtensionPointIdentifier 44 | com.apple.dt.Xcode.extension.source-editor 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /XcodeSourceExtension/SourceEditorCommand.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorCommand.swift 3 | // SwiftDIHelperXcodeExtension 4 | // 5 | // Created by Kazuhiro Hayashi on 2021/01/02. 6 | // 7 | 8 | import Foundation 9 | import XcodeKit 10 | import SwiftSyntax 11 | 12 | class SourceEditorCommand: NSObject, XCSourceEditorCommand { 13 | 14 | func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: @escaping (Error?) -> Void) -> Void { 15 | do { 16 | let buffer = invocation.buffer 17 | guard let selections = buffer.selections as? [XCSourceTextRange] else { 18 | completionHandler(nil) 19 | return 20 | } 21 | 22 | guard let lines = buffer.lines as? [String] else { 23 | completionHandler(nil) 24 | return 25 | } 26 | 27 | for selection in selections { 28 | let selectedLines = lines[selection.start.line.. 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | $(TeamIdentifierPrefix)kazuhiro.hayashi.MakeSwiftCodeOpen 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | Access Level Changer is one of **Xcode Source Editor Extension**. 2 | 3 | It can perform a batch conversion of your source code from internal access level to public. 4 | 5 | This has macOS app too. 6 | In the app, you can choose wether each declaration in your code needs to be changed. 7 | 8 | It supports only Swift Language. 9 | 10 | Swift and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries. 11 | [Access Level Changer for Xcode](https://kazuhiro4949.github.io/AccessLevelChanger/) is not affiliated with Apple, Inc. 12 | 13 | # Usage 14 | 15 | First of all, you needs to change the preference to use Xcode Source Editor Extension. 16 | 17 | ### 1. Open System Preferences -> Extension 18 | Screen Shot 2021-01-11 at 16 48 41 19 | 20 | ### 2. Put a checkmark next to "Access Level Changer for Xcode" 21 | Screen Shot 2021-01-11 at 16 42 56 22 | 23 | Then, you can use the extension after Running (or restarting) Xcode. 24 | 25 | ### 3. Select and highlight a range in your source code 26 | 27 | Screen Shot 2021-01-11 at 16 50 47 28 | 29 | ### 4. Click the Editor -> Access Level Changer for Xcode menu 30 | 31 | Screen Shot 2021-01-11 at 16 51 39 32 | 33 | 34 | ### 5. That performs the batch conversion to your highlighted source code. 35 | 36 | Screen Shot 2021-01-11 at 17 06 16 37 | 38 | -------------------------------------------------------------------------------- /docs/privacypolicy.md: -------------------------------------------------------------------------------- 1 | 2 | ## Privacy Policy 3 | built Access Level Changer For Xcode as a Free app. This SERVICE is provided by 4 | at no cost and is intended for use as is. 5 | 6 | This page is used to inform visitors regarding my policies with the collection, use, and disclosure 7 | of Personal Information if anyone decided to use my Service. 8 | 9 | If you choose to use my Service, then you agree to the collection and use of information in 10 | relation to this policy. The Personal Information that I collect is used for providing and improving 11 | the Service. I will not use or share your information with anyone except as described 12 | in this Privacy Policy. 13 | 14 | The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is 15 | accessible at Access Level Changer For Xcode unless otherwise defined in this Privacy Policy. 16 | 17 | ## Information Collection and Use 18 | 19 | or a better experience, while using our Service, I may require you to provide us with certain 20 | personally identifiable information. The information that I request will be retained on your device and is not collected by me in any way. 21 | 22 | The app does use third party services that may collect information used to identify you. 23 | Link to privacy policy of third party service providers used by the app 24 | 25 | ## Log Data 26 | 27 | I want to inform you that whenever you use my Service, in a case of 28 | an error in the app I collect data and information (through third party products) on your phone 29 | called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, 30 | device name, operating system version, the configuration of the app when utilizing my Service, 31 | the time and date of your use of the Service, and other statistics. 32 | ## Cookies 33 | Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. 34 | These are sent to your browser from the websites that you visit and are stored on your device's internal 35 | memory. 36 | 37 | This Service does not use these “cookies” explicitly. However, the app may use third party code and 38 | libraries that use “cookies” to collect information and improve their services. You have the option to 39 | either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose 40 | to refuse our cookies, you may not be able to use some portions of this Service. 41 | 42 | ## Service Providers 43 | 44 | I may employ third-party companies and individuals due to the following reasons: 45 | 46 | - To facilitate our Service; 47 | - To provide the Service on our behalf; 48 | - To perform Service-related services; or 49 | - To assist us in analyzing how our Service is used. 50 | 51 | I want to inform users of this Service that these third parties have access to 52 | your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, 53 | they are obligated not to disclose or use the information for any other purpose. 54 | 55 | ## Security 56 | 57 | I value your trust in providing us your Personal Information, thus we are striving 58 | to use commercially acceptable means of protecting it. But remember that no method of transmission over 59 | the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee 60 | its absolute security. 61 | 62 | ## Links to Other Sites 63 | 64 | This Service may contain links to other sites. If you click on a third-party link, you will be directed 65 | to that site. Note that these external sites are not operated by me. Therefore, I strongly 66 | advise you to review the Privacy Policy of these websites. I have no control over 67 | and assume no responsibility for the content, privacy policies, or practices of any third-party sites 68 | or services. 69 | 70 | ## Children’s Privacy 71 | 72 | These Services do not address anyone under the age of 13. I do not knowingly collect 73 | personally identifiable information from children under 13. In the case I discover that a child 74 | under 13 has provided me with personal information, I immediately delete this from 75 | our servers. If you are a parent or guardian and you are aware that your child has provided us with personal 76 | information, please contact me so that I will be able to do necessary actions. 77 | 78 | ## Changes to This Privacy Policy 79 | 80 | I may update our Privacy Policy from time to time. Thus, you are advised to review 81 | this page periodically for any changes. I will notify you of any changes by posting 82 | the new Privacy Policy on this page. These changes are effective immediately after they are posted on 83 | this page. 84 | ## Contact Us 85 | 86 | If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact 87 | me. 88 | 89 | This privacy policy page was created at [privacypolicytemplate.net](https://privacypolicytemplate.net) 90 | and modified/generated by [App 91 | Privacy Policy Generator](https://app-privacy-policy-generator.firebaseapp.com/") 92 | 93 | 94 | --------------------------------------------------------------------------------