├── .github
├── FUNDING.yml
└── workflows
│ └── ci-mac.yaml
├── .gitmodules
├── dyld-cache-dump.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── xcshareddata
│ └── xcschemes
│ │ └── dyld-cache-dump.xcscheme
└── project.pbxproj
├── .gitignore
├── LICENSE
├── README.md
├── dyld-cache-dump
├── String+LocalizedError.swift
├── Arguments.swift
├── main.swift
└── Extractor.swift
└── CODE_OF_CONDUCT.md
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: macmade
2 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "Submodules/xcconfig"]
2 | path = Submodules/xcconfig
3 | url = https://github.com/macmade/xcconfig.git
4 |
--------------------------------------------------------------------------------
/dyld-cache-dump.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/dyld-cache-dump.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Mac Finder
2 | .DS_Store
3 | .Trashes
4 | Icon?
5 |
6 | # Thumbnails
7 | ._*
8 |
9 | # Files that might appear on external disk
10 | .Spotlight-V100
11 | .Trashes
12 |
13 | # Xcode
14 | *.pbxuser
15 | *.mode1v3
16 | *.mode2v3
17 | *.perspectivev3
18 | *.xccheckout
19 | *.profraw
20 | !default.pbxuser
21 | !default.mode1v3
22 | !default.mode2v3
23 | !default.perspectivev3
24 | xcuserdata
25 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2023 Jean-David Gadina - www.xs-labs.com
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
13 | all 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
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.github/workflows/ci-mac.yaml:
--------------------------------------------------------------------------------
1 | name: ci-mac
2 | on: [push]
3 | jobs:
4 | ci:
5 | runs-on: macos-latest
6 | strategy:
7 | matrix:
8 | run-config:
9 | - { scheme: 'dyld-cache-dump', configuration: 'Debug', project: 'dyld-cache-dump.xcodeproj', build: 1, analyze: 1, test: 0, info: 1, destination: 'platform=macOS' }
10 | - { scheme: 'dyld-cache-dump', configuration: 'Release', project: 'dyld-cache-dump.xcodeproj', build: 1, analyze: 1, test: 0, info: 1, destination: 'platform=macOS' }
11 | steps:
12 |
13 | - uses: actions/checkout@v1
14 | with:
15 | submodules: 'recursive'
16 |
17 | - uses: macmade/action-xcodebuild@v1.0.0
18 |
19 | - uses: macmade/action-slack@v1.0.0
20 | if: ${{ always() }}
21 | env:
22 | SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
23 | with:
24 | channel: '#ci'
25 | status: ${{ job.status }}
26 | title: ${{ matrix.run-config[ 'scheme' ] }} - ${{ matrix.run-config[ 'configuration' ] }}
27 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | dyld-cache-dump
2 | ===============
3 |
4 | [](https://github.com/macmade/dyld-cache-dump/actions/workflows/ci-mac.yaml)
5 | [](https://github.com/macmade/dyld-cache-dump/issues)
6 | 
7 | 
8 | [](https://twitter.com/macmade)
9 | [](https://github.com/sponsors/macmade)
10 |
11 | ### About
12 |
13 | A macOS command-line tool to dump the contents of dyld shared cache files.
14 |
15 | ```
16 | Usage: dyld-cache-dump SOURCE DESTINATION
17 | ```
18 |
19 | ### Installation
20 |
21 | ```
22 | brew install --HEAD macmade/tap/dyld-cache-dump
23 | ```
24 |
25 | License
26 | -------
27 |
28 | Project is released under the terms of the MIT License.
29 |
30 | Repository Infos
31 | ----------------
32 |
33 | Owner: Jean-David Gadina - XS-Labs
34 | Web: www.xs-labs.com
35 | Blog: www.noxeos.com
36 | Twitter: @macmade
37 | GitHub: github.com/macmade
38 | LinkedIn: ch.linkedin.com/in/macmade/
39 | StackOverflow: stackoverflow.com/users/182676/macmade
40 |
--------------------------------------------------------------------------------
/dyld-cache-dump/String+LocalizedError.swift:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * The MIT License (MIT)
3 | *
4 | * Copyright (c) 2023, Jean-David Gadina - www.xs-labs.com
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the Software), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | ******************************************************************************/
24 |
25 | import Foundation
26 |
27 | extension String: @retroactive LocalizedError
28 | {
29 | public var errorDescription: String?
30 | {
31 | self
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/dyld-cache-dump/Arguments.swift:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * The MIT License (MIT)
3 | *
4 | * Copyright (c) 2023, Jean-David Gadina - www.xs-labs.com
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the Software), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | ******************************************************************************/
24 |
25 | import Foundation
26 | import Darwin
27 |
28 | public class Arguments
29 | {
30 | public static let shared = Arguments()
31 |
32 | public private( set ) var executable: String
33 | public private( set ) var source: String?
34 | public private( set ) var destination: String?
35 |
36 | private init()
37 | {
38 | let args = ProcessInfo.processInfo.arguments
39 |
40 | if let exec = args.first
41 | {
42 | self.executable = URL( filePath: exec ).lastPathComponent
43 | }
44 | else
45 | {
46 | self.executable = "dyld-cache-dump"
47 | }
48 |
49 | if args.count >= 2
50 | {
51 | self.source = args[ 1 ]
52 | }
53 |
54 | if args.count >= 3
55 | {
56 | self.destination = args[ 2 ]
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/dyld-cache-dump/main.swift:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * The MIT License (MIT)
3 | *
4 | * Copyright (c) 2023, Jean-David Gadina - www.xs-labs.com
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the Software), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | ******************************************************************************/
24 |
25 | import Foundation
26 |
27 | do
28 | {
29 | guard let source = Arguments.shared.source, let destination = Arguments.shared.destination
30 | else
31 | {
32 | print( "Usage: \( Arguments.shared.executable ) SOURCE DESTINATION" )
33 | exit( EXIT_FAILURE )
34 | }
35 |
36 | var extracted: Int32 = 0
37 |
38 | try Extractor().extract( cache: URL( filePath: source ), to: URL( filePath: destination ) )
39 | {
40 | let percent = ( Double( $0 ) / Double( $1 ) ) * 100
41 |
42 | print( "Extracting DYLD shared cache: \( $0 ) of \( $1 ) - \( String( format: "%.0f", percent ) )%", terminator: "\r" )
43 | fflush( stdout )
44 |
45 | extracted = $0
46 | }
47 |
48 | print( "Extracted \( extracted ) files from \( source )" )
49 | }
50 | catch
51 | {
52 | print( "Error: \( error )" )
53 | exit( EXIT_FAILURE )
54 | }
55 |
--------------------------------------------------------------------------------
/dyld-cache-dump.xcodeproj/xcshareddata/xcschemes/dyld-cache-dump.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
43 |
45 |
51 |
52 |
53 |
54 |
60 |
62 |
68 |
69 |
70 |
71 |
73 |
74 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/dyld-cache-dump/Extractor.swift:
--------------------------------------------------------------------------------
1 | /*******************************************************************************
2 | * The MIT License (MIT)
3 | *
4 | * Copyright (c) 2023, Jean-David Gadina - www.xs-labs.com
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the Software), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in
14 | * all copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | * THE SOFTWARE.
23 | ******************************************************************************/
24 |
25 | import Cocoa
26 | import Darwin
27 |
28 | public class Extractor
29 | {
30 | private static let extractorBundlePath = "/usr/lib/dsc_extractor.bundle"
31 | private static let extractorFuncName = "dyld_shared_cache_extract_dylibs_progress"
32 |
33 | private typealias ExtractorFuncType = @convention( c ) ( UnsafePointer< CChar >, UnsafePointer< CChar >, ( Int32, Int32 ) -> Void ) -> Void
34 |
35 | private var extractorFunc: ExtractorFuncType
36 |
37 | public init() throws
38 | {
39 | guard let handle = dlopen( Extractor.extractorBundlePath, RTLD_LAZY )
40 | else
41 | {
42 | throw "Cannot open \( Extractor.extractorBundlePath )"
43 | }
44 |
45 | guard let symbol = dlsym( handle, Extractor.extractorFuncName )
46 | else
47 | {
48 | throw "Cannot load \( Extractor.extractorFuncName ) from \( Extractor.extractorBundlePath )"
49 | }
50 |
51 | self.extractorFunc = unsafeBitCast( symbol, to: ExtractorFuncType.self )
52 | }
53 |
54 | public func extract( cache: URL, to destination: URL, progress: ( ( Int32, Int32 ) -> Void )? ) throws
55 | {
56 | guard FileManager.default.fileExists( atPath: cache.path( percentEncoded: false ) )
57 | else
58 | {
59 | throw "Cache file does not exist at \( cache.path( percentEncoded: false ) )"
60 | }
61 |
62 | var isDir: ObjCBool = false
63 |
64 | if FileManager.default.fileExists( atPath: destination.path( percentEncoded: false ), isDirectory: &isDir )
65 | {
66 | if isDir.boolValue == false
67 | {
68 | throw "Cannot use existing file \( destination.path( percentEncoded: false ) ) as destination"
69 | }
70 |
71 | try self.recylce( url: destination )
72 | }
73 |
74 | self.extractorFunc( cache.path( percentEncoded: false ), destination.path( percentEncoded: false ) )
75 | {
76 | progress?( $0 + 1, $1 )
77 | }
78 |
79 | self.setFilesAsExecutable( in: destination )
80 | }
81 |
82 | private func setFilesAsExecutable( in directory: URL )
83 | {
84 | guard let enumerator = FileManager.default.enumerator( at: directory, includingPropertiesForKeys: nil )
85 | else
86 | {
87 | return
88 | }
89 |
90 | enumerator.forEach
91 | {
92 | guard let file = $0 as? URL
93 | else
94 | {
95 | return
96 | }
97 |
98 | var isDir: ObjCBool = false
99 |
100 | if FileManager.default.fileExists( atPath: file.path( percentEncoded: false ), isDirectory: &isDir ), isDir.boolValue == false
101 | {
102 | let attributes: [ FileAttributeKey: Any ] = [
103 | .posixPermissions: 0o755
104 | ]
105 |
106 | try? FileManager.default.setAttributes( attributes, ofItemAtPath: file.path( percentEncoded: false ) )
107 | }
108 | }
109 | }
110 |
111 | private func recylce( url: URL ) throws
112 | {
113 | let group = DispatchGroup()
114 | var recycleError: Error?
115 |
116 | group.enter()
117 |
118 | DispatchQueue.global( qos: .userInitiated ).async
119 | {
120 | NSWorkspace.shared.recycle( [ url ] )
121 | {
122 | urls, error in
123 |
124 | recycleError = error
125 |
126 | group.leave()
127 | }
128 | }
129 |
130 | group.wait()
131 |
132 | if let error = recycleError
133 | {
134 | throw error
135 | }
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | xs-labs.com.
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series
86 | of actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or
93 | permanent ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within
113 | the community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.0, available at
119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120 |
121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
122 | enforcement ladder](https://github.com/mozilla/diversity).
123 |
124 | [homepage]: https://www.contributor-covenant.org
125 |
126 | For answers to common questions about this code of conduct, see the FAQ at
127 | https://www.contributor-covenant.org/faq. Translations are available at
128 | https://www.contributor-covenant.org/translations.
129 |
--------------------------------------------------------------------------------
/dyld-cache-dump.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 56;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 056CA43A2A376F1C00F61F63 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 056CA4392A376F1C00F61F63 /* main.swift */; };
11 | 056CA4412A3772D600F61F63 /* Extractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 056CA4402A3772D600F61F63 /* Extractor.swift */; };
12 | 056CA4432A3772F400F61F63 /* String+LocalizedError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 056CA4422A3772F400F61F63 /* String+LocalizedError.swift */; };
13 | 056CA4452A37747800F61F63 /* Arguments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 056CA4442A37747800F61F63 /* Arguments.swift */; };
14 | /* End PBXBuildFile section */
15 |
16 | /* Begin PBXCopyFilesBuildPhase section */
17 | 056CA4342A376F1C00F61F63 /* CopyFiles */ = {
18 | isa = PBXCopyFilesBuildPhase;
19 | buildActionMask = 2147483647;
20 | dstPath = /usr/share/man/man1/;
21 | dstSubfolderSpec = 0;
22 | files = (
23 | );
24 | runOnlyForDeploymentPostprocessing = 1;
25 | };
26 | /* End PBXCopyFilesBuildPhase section */
27 |
28 | /* Begin PBXFileReference section */
29 | 056CA4362A376F1C00F61F63 /* dyld-cache-dump */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "dyld-cache-dump"; sourceTree = BUILT_PRODUCTS_DIR; };
30 | 056CA4392A376F1C00F61F63 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; };
31 | 056CA4402A3772D600F61F63 /* Extractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extractor.swift; sourceTree = ""; };
32 | 056CA4422A3772F400F61F63 /* String+LocalizedError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+LocalizedError.swift"; sourceTree = ""; };
33 | 056CA4442A37747800F61F63 /* Arguments.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Arguments.swift; sourceTree = ""; };
34 | 056CA4462A3782EA00F61F63 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; };
35 | 056CA4472A3782EA00F61F63 /* CODE_OF_CONDUCT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CODE_OF_CONDUCT.md; sourceTree = ""; };
36 | 056CA4482A3782EA00F61F63 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
37 | 056CA44A2A3782F500F61F63 /* CODE_OF_CONDUCT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CODE_OF_CONDUCT.md; sourceTree = ""; };
38 | 056CA44B2A3782F500F61F63 /* Release - ccache.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release - ccache.xcconfig"; sourceTree = ""; };
39 | 056CA44C2A3782F500F61F63 /* Common.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Common.xcconfig; sourceTree = ""; };
40 | 056CA44D2A3782F500F61F63 /* Debug - ccache.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug - ccache.xcconfig"; sourceTree = ""; };
41 | 056CA44E2A3782F500F61F63 /* Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
42 | 056CA44F2A3782F500F61F63 /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; };
43 | 056CA4502A3782F500F61F63 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
44 | 056CA4512A3782F500F61F63 /* Release - Library.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Release - Library.xcconfig"; sourceTree = ""; };
45 | 056CA4532A3782F500F61F63 /* Signing.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Signing.xcconfig; sourceTree = ""; };
46 | 056CA4542A3782F500F61F63 /* Architectures.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Architectures.xcconfig; sourceTree = ""; };
47 | 056CA4562A3782F500F61F63 /* Issues.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Issues.xcconfig; sourceTree = ""; };
48 | 056CA4582A3782F500F61F63 /* Apple-APIs.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Apple-APIs.xcconfig"; sourceTree = ""; };
49 | 056CA4592A3782F500F61F63 /* Generic-Issues.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Generic-Issues.xcconfig"; sourceTree = ""; };
50 | 056CA45A2A3782F500F61F63 /* Security.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Security.xcconfig; sourceTree = ""; };
51 | 056CA45B2A3782F500F61F63 /* Objective-C.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Objective-C.xcconfig"; sourceTree = ""; };
52 | 056CA45C2A3782F500F61F63 /* Analysis-Policy.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Analysis-Policy.xcconfig"; sourceTree = ""; };
53 | 056CA45D2A3782F500F61F63 /* Deployment.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Deployment.xcconfig; sourceTree = ""; };
54 | 056CA45E2A3782F500F61F63 /* Build-Options.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Build-Options.xcconfig"; sourceTree = ""; };
55 | 056CA45F2A3782F500F61F63 /* Swift-Compiler.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Swift-Compiler.xcconfig"; sourceTree = ""; };
56 | 056CA4602A3782F500F61F63 /* Static-Analyzer.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Static-Analyzer.xcconfig"; sourceTree = ""; };
57 | 056CA4622A3782F500F61F63 /* Warnings-Policies.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Warnings-Policies.xcconfig"; sourceTree = ""; };
58 | 056CA4632A3782F500F61F63 /* Code-Generation.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Code-Generation.xcconfig"; sourceTree = ""; };
59 | 056CA4642A3782F500F61F63 /* Language.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Language.xcconfig; sourceTree = ""; };
60 | 056CA4652A3782F500F61F63 /* General.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = General.xcconfig; sourceTree = ""; };
61 | 056CA4662A3782F500F61F63 /* Search-Paths.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Search-Paths.xcconfig"; sourceTree = ""; };
62 | 056CA4672A3782F500F61F63 /* Apple-LLVM.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Apple-LLVM.xcconfig"; sourceTree = ""; };
63 | 056CA46A2A3782F500F61F63 /* Modules.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Modules.xcconfig; sourceTree = ""; };
64 | 056CA46B2A3782F500F61F63 /* Objective-C.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Objective-C.xcconfig"; sourceTree = ""; };
65 | 056CA46C2A3782F500F61F63 /* C++.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "C++.xcconfig"; sourceTree = ""; };
66 | 056CA46D2A3782F500F61F63 /* Code-Generation.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Code-Generation.xcconfig"; sourceTree = ""; };
67 | 056CA46E2A3782F500F61F63 /* Address-Sanitizer.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Address-Sanitizer.xcconfig"; sourceTree = ""; };
68 | 056CA46F2A3782F500F61F63 /* Language.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Language.xcconfig; sourceTree = ""; };
69 | 056CA4702A3782F500F61F63 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; };
70 | 056CA4712A3782F500F61F63 /* Undefined-Behavior-Sanitizer.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Undefined-Behavior-Sanitizer.xcconfig"; sourceTree = ""; };
71 | 056CA4722A3782F500F61F63 /* Warning-Policies.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Warning-Policies.xcconfig"; sourceTree = ""; };
72 | 056CA4742A3782F500F61F63 /* Objective-C-ARC.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Objective-C-ARC.xcconfig"; sourceTree = ""; };
73 | 056CA4752A3782F500F61F63 /* Objective-C.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Objective-C.xcconfig"; sourceTree = ""; };
74 | 056CA4762A3782F500F61F63 /* C++.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "C++.xcconfig"; sourceTree = ""; };
75 | 056CA4772A3782F500F61F63 /* All-Languages.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "All-Languages.xcconfig"; sourceTree = ""; };
76 | 056CA4782A3782F500F61F63 /* Preprocessing.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Preprocessing.xcconfig; sourceTree = ""; };
77 | 056CA4792A3782F500F61F63 /* Debug - Library.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug - Library.xcconfig"; sourceTree = ""; };
78 | 056CA47A2A3782F500F61F63 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; };
79 | 056CA47C2A3782F500F61F63 /* ccache-config.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "ccache-config.sh"; sourceTree = ""; };
80 | 056CA47D2A3782F500F61F63 /* ccache.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = ccache.sh; sourceTree = ""; };
81 | 056CA47F2A3782F500F61F63 /* FUNDING.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = FUNDING.yml; sourceTree = ""; };
82 | 056CA4802A3782F500F61F63 /* Debug - zld.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Debug - zld.xcconfig"; sourceTree = ""; };
83 | /* End PBXFileReference section */
84 |
85 | /* Begin PBXFrameworksBuildPhase section */
86 | 056CA4332A376F1C00F61F63 /* Frameworks */ = {
87 | isa = PBXFrameworksBuildPhase;
88 | buildActionMask = 2147483647;
89 | files = (
90 | );
91 | runOnlyForDeploymentPostprocessing = 0;
92 | };
93 | /* End PBXFrameworksBuildPhase section */
94 |
95 | /* Begin PBXGroup section */
96 | 056CA42D2A376F1C00F61F63 = {
97 | isa = PBXGroup;
98 | children = (
99 | 056CA4472A3782EA00F61F63 /* CODE_OF_CONDUCT.md */,
100 | 056CA4462A3782EA00F61F63 /* LICENSE */,
101 | 056CA4482A3782EA00F61F63 /* README.md */,
102 | 056CA4492A3782F500F61F63 /* xcconfig */,
103 | 056CA4382A376F1C00F61F63 /* dyld-cache-dump */,
104 | 056CA4372A376F1C00F61F63 /* Products */,
105 | );
106 | sourceTree = "";
107 | };
108 | 056CA4372A376F1C00F61F63 /* Products */ = {
109 | isa = PBXGroup;
110 | children = (
111 | 056CA4362A376F1C00F61F63 /* dyld-cache-dump */,
112 | );
113 | name = Products;
114 | sourceTree = "";
115 | };
116 | 056CA4382A376F1C00F61F63 /* dyld-cache-dump */ = {
117 | isa = PBXGroup;
118 | children = (
119 | 056CA4442A37747800F61F63 /* Arguments.swift */,
120 | 056CA4402A3772D600F61F63 /* Extractor.swift */,
121 | 056CA4392A376F1C00F61F63 /* main.swift */,
122 | 056CA4422A3772F400F61F63 /* String+LocalizedError.swift */,
123 | );
124 | path = "dyld-cache-dump";
125 | sourceTree = "";
126 | };
127 | 056CA4492A3782F500F61F63 /* xcconfig */ = {
128 | isa = PBXGroup;
129 | children = (
130 | 056CA44A2A3782F500F61F63 /* CODE_OF_CONDUCT.md */,
131 | 056CA44B2A3782F500F61F63 /* Release - ccache.xcconfig */,
132 | 056CA44C2A3782F500F61F63 /* Common.xcconfig */,
133 | 056CA44D2A3782F500F61F63 /* Debug - ccache.xcconfig */,
134 | 056CA44E2A3782F500F61F63 /* Debug.xcconfig */,
135 | 056CA44F2A3782F500F61F63 /* Release.xcconfig */,
136 | 056CA4502A3782F500F61F63 /* README.md */,
137 | 056CA4512A3782F500F61F63 /* Release - Library.xcconfig */,
138 | 056CA4522A3782F500F61F63 /* Common */,
139 | 056CA4792A3782F500F61F63 /* Debug - Library.xcconfig */,
140 | 056CA47A2A3782F500F61F63 /* .gitignore */,
141 | 056CA47B2A3782F500F61F63 /* Scripts */,
142 | 056CA47E2A3782F500F61F63 /* .github */,
143 | 056CA4802A3782F500F61F63 /* Debug - zld.xcconfig */,
144 | );
145 | name = xcconfig;
146 | path = Submodules/xcconfig;
147 | sourceTree = "";
148 | };
149 | 056CA4522A3782F500F61F63 /* Common */ = {
150 | isa = PBXGroup;
151 | children = (
152 | 056CA4532A3782F500F61F63 /* Signing.xcconfig */,
153 | 056CA4542A3782F500F61F63 /* Architectures.xcconfig */,
154 | 056CA4552A3782F500F61F63 /* Static-Analyzer */,
155 | 056CA45D2A3782F500F61F63 /* Deployment.xcconfig */,
156 | 056CA45E2A3782F500F61F63 /* Build-Options.xcconfig */,
157 | 056CA45F2A3782F500F61F63 /* Swift-Compiler.xcconfig */,
158 | 056CA4602A3782F500F61F63 /* Static-Analyzer.xcconfig */,
159 | 056CA4612A3782F500F61F63 /* Swift-Compiler */,
160 | 056CA4662A3782F500F61F63 /* Search-Paths.xcconfig */,
161 | 056CA4672A3782F500F61F63 /* Apple-LLVM.xcconfig */,
162 | 056CA4682A3782F500F61F63 /* Apple-LLVM */,
163 | );
164 | path = Common;
165 | sourceTree = "";
166 | };
167 | 056CA4552A3782F500F61F63 /* Static-Analyzer */ = {
168 | isa = PBXGroup;
169 | children = (
170 | 056CA4562A3782F500F61F63 /* Issues.xcconfig */,
171 | 056CA4572A3782F500F61F63 /* Issues */,
172 | );
173 | path = "Static-Analyzer";
174 | sourceTree = "";
175 | };
176 | 056CA4572A3782F500F61F63 /* Issues */ = {
177 | isa = PBXGroup;
178 | children = (
179 | 056CA4582A3782F500F61F63 /* Apple-APIs.xcconfig */,
180 | 056CA4592A3782F500F61F63 /* Generic-Issues.xcconfig */,
181 | 056CA45A2A3782F500F61F63 /* Security.xcconfig */,
182 | 056CA45B2A3782F500F61F63 /* Objective-C.xcconfig */,
183 | 056CA45C2A3782F500F61F63 /* Analysis-Policy.xcconfig */,
184 | );
185 | path = Issues;
186 | sourceTree = "";
187 | };
188 | 056CA4612A3782F500F61F63 /* Swift-Compiler */ = {
189 | isa = PBXGroup;
190 | children = (
191 | 056CA4622A3782F500F61F63 /* Warnings-Policies.xcconfig */,
192 | 056CA4632A3782F500F61F63 /* Code-Generation.xcconfig */,
193 | 056CA4642A3782F500F61F63 /* Language.xcconfig */,
194 | 056CA4652A3782F500F61F63 /* General.xcconfig */,
195 | );
196 | path = "Swift-Compiler";
197 | sourceTree = "";
198 | };
199 | 056CA4682A3782F500F61F63 /* Apple-LLVM */ = {
200 | isa = PBXGroup;
201 | children = (
202 | 056CA4692A3782F500F61F63 /* Language */,
203 | 056CA46D2A3782F500F61F63 /* Code-Generation.xcconfig */,
204 | 056CA46E2A3782F500F61F63 /* Address-Sanitizer.xcconfig */,
205 | 056CA46F2A3782F500F61F63 /* Language.xcconfig */,
206 | 056CA4702A3782F500F61F63 /* Warnings.xcconfig */,
207 | 056CA4712A3782F500F61F63 /* Undefined-Behavior-Sanitizer.xcconfig */,
208 | 056CA4722A3782F500F61F63 /* Warning-Policies.xcconfig */,
209 | 056CA4732A3782F500F61F63 /* Warnings */,
210 | 056CA4782A3782F500F61F63 /* Preprocessing.xcconfig */,
211 | );
212 | path = "Apple-LLVM";
213 | sourceTree = "";
214 | };
215 | 056CA4692A3782F500F61F63 /* Language */ = {
216 | isa = PBXGroup;
217 | children = (
218 | 056CA46A2A3782F500F61F63 /* Modules.xcconfig */,
219 | 056CA46B2A3782F500F61F63 /* Objective-C.xcconfig */,
220 | 056CA46C2A3782F500F61F63 /* C++.xcconfig */,
221 | );
222 | path = Language;
223 | sourceTree = "";
224 | };
225 | 056CA4732A3782F500F61F63 /* Warnings */ = {
226 | isa = PBXGroup;
227 | children = (
228 | 056CA4742A3782F500F61F63 /* Objective-C-ARC.xcconfig */,
229 | 056CA4752A3782F500F61F63 /* Objective-C.xcconfig */,
230 | 056CA4762A3782F500F61F63 /* C++.xcconfig */,
231 | 056CA4772A3782F500F61F63 /* All-Languages.xcconfig */,
232 | );
233 | path = Warnings;
234 | sourceTree = "";
235 | };
236 | 056CA47B2A3782F500F61F63 /* Scripts */ = {
237 | isa = PBXGroup;
238 | children = (
239 | 056CA47C2A3782F500F61F63 /* ccache-config.sh */,
240 | 056CA47D2A3782F500F61F63 /* ccache.sh */,
241 | );
242 | path = Scripts;
243 | sourceTree = "";
244 | };
245 | 056CA47E2A3782F500F61F63 /* .github */ = {
246 | isa = PBXGroup;
247 | children = (
248 | 056CA47F2A3782F500F61F63 /* FUNDING.yml */,
249 | );
250 | path = .github;
251 | sourceTree = "";
252 | };
253 | /* End PBXGroup section */
254 |
255 | /* Begin PBXNativeTarget section */
256 | 056CA4352A376F1C00F61F63 /* dyld-cache-dump */ = {
257 | isa = PBXNativeTarget;
258 | buildConfigurationList = 056CA43D2A376F1C00F61F63 /* Build configuration list for PBXNativeTarget "dyld-cache-dump" */;
259 | buildPhases = (
260 | 056CA4322A376F1C00F61F63 /* Sources */,
261 | 056CA4332A376F1C00F61F63 /* Frameworks */,
262 | 056CA4342A376F1C00F61F63 /* CopyFiles */,
263 | );
264 | buildRules = (
265 | );
266 | dependencies = (
267 | );
268 | name = "dyld-cache-dump";
269 | productName = "dyld-cache-extract";
270 | productReference = 056CA4362A376F1C00F61F63 /* dyld-cache-dump */;
271 | productType = "com.apple.product-type.tool";
272 | };
273 | /* End PBXNativeTarget section */
274 |
275 | /* Begin PBXProject section */
276 | 056CA42E2A376F1C00F61F63 /* Project object */ = {
277 | isa = PBXProject;
278 | attributes = {
279 | BuildIndependentTargetsInParallel = 1;
280 | LastSwiftUpdateCheck = 1430;
281 | LastUpgradeCheck = 1430;
282 | TargetAttributes = {
283 | 056CA4352A376F1C00F61F63 = {
284 | CreatedOnToolsVersion = 14.3.1;
285 | };
286 | };
287 | };
288 | buildConfigurationList = 056CA4312A376F1C00F61F63 /* Build configuration list for PBXProject "dyld-cache-dump" */;
289 | compatibilityVersion = "Xcode 14.0";
290 | developmentRegion = en;
291 | hasScannedForEncodings = 0;
292 | knownRegions = (
293 | en,
294 | Base,
295 | );
296 | mainGroup = 056CA42D2A376F1C00F61F63;
297 | productRefGroup = 056CA4372A376F1C00F61F63 /* Products */;
298 | projectDirPath = "";
299 | projectRoot = "";
300 | targets = (
301 | 056CA4352A376F1C00F61F63 /* dyld-cache-dump */,
302 | );
303 | };
304 | /* End PBXProject section */
305 |
306 | /* Begin PBXSourcesBuildPhase section */
307 | 056CA4322A376F1C00F61F63 /* Sources */ = {
308 | isa = PBXSourcesBuildPhase;
309 | buildActionMask = 2147483647;
310 | files = (
311 | 056CA4452A37747800F61F63 /* Arguments.swift in Sources */,
312 | 056CA4412A3772D600F61F63 /* Extractor.swift in Sources */,
313 | 056CA4432A3772F400F61F63 /* String+LocalizedError.swift in Sources */,
314 | 056CA43A2A376F1C00F61F63 /* main.swift in Sources */,
315 | );
316 | runOnlyForDeploymentPostprocessing = 0;
317 | };
318 | /* End PBXSourcesBuildPhase section */
319 |
320 | /* Begin XCBuildConfiguration section */
321 | 056CA43B2A376F1C00F61F63 /* Debug */ = {
322 | isa = XCBuildConfiguration;
323 | baseConfigurationReference = 056CA44E2A3782F500F61F63 /* Debug.xcconfig */;
324 | buildSettings = {
325 | };
326 | name = Debug;
327 | };
328 | 056CA43C2A376F1C00F61F63 /* Release */ = {
329 | isa = XCBuildConfiguration;
330 | baseConfigurationReference = 056CA44F2A3782F500F61F63 /* Release.xcconfig */;
331 | buildSettings = {
332 | };
333 | name = Release;
334 | };
335 | 056CA43E2A376F1C00F61F63 /* Debug */ = {
336 | isa = XCBuildConfiguration;
337 | buildSettings = {
338 | PRODUCT_NAME = "$(TARGET_NAME)";
339 | };
340 | name = Debug;
341 | };
342 | 056CA43F2A376F1C00F61F63 /* Release */ = {
343 | isa = XCBuildConfiguration;
344 | buildSettings = {
345 | PRODUCT_NAME = "$(TARGET_NAME)";
346 | };
347 | name = Release;
348 | };
349 | /* End XCBuildConfiguration section */
350 |
351 | /* Begin XCConfigurationList section */
352 | 056CA4312A376F1C00F61F63 /* Build configuration list for PBXProject "dyld-cache-dump" */ = {
353 | isa = XCConfigurationList;
354 | buildConfigurations = (
355 | 056CA43B2A376F1C00F61F63 /* Debug */,
356 | 056CA43C2A376F1C00F61F63 /* Release */,
357 | );
358 | defaultConfigurationIsVisible = 0;
359 | defaultConfigurationName = Release;
360 | };
361 | 056CA43D2A376F1C00F61F63 /* Build configuration list for PBXNativeTarget "dyld-cache-dump" */ = {
362 | isa = XCConfigurationList;
363 | buildConfigurations = (
364 | 056CA43E2A376F1C00F61F63 /* Debug */,
365 | 056CA43F2A376F1C00F61F63 /* Release */,
366 | );
367 | defaultConfigurationIsVisible = 0;
368 | defaultConfigurationName = Release;
369 | };
370 | /* End XCConfigurationList section */
371 | };
372 | rootObject = 056CA42E2A376F1C00F61F63 /* Project object */;
373 | }
374 |
--------------------------------------------------------------------------------