You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`<path-to-output-file>` is a path to the file that the extraced data will be written to. If it's an optional parameter. If ommited, tool will print out to the standard output.
22
22
23
+
`<path-to-xcodeproj>` is a path to the Xcode project file. It's an optional parameter and should be provided only when the tool fails to automatically identify which project to parse.
24
+
23
25
## Data formats
24
26
25
27
The input data format is defined by the Xcode project file structure and best described [here](http://www.monobjc.net/xcode-project-file-format.html). The user should not need to ever work with it outside of Xcode.
@@ -42,13 +44,14 @@ The output data format is called `Files.json` and presented below:
42
44
},
43
45
"sourceFiles": [ <string> ],
44
46
"layoutFiles": [ <string> ],
45
-
"systemLinkedFrameworks": [<string>],
47
+
"implicitlyLinkedFrameworks": [<string>],
46
48
"explicitlyLinkedFrameworks": [
47
49
{
48
50
"name":<string>,
49
51
"path":<string>
50
52
}
51
-
]
53
+
],
54
+
"frameworkSearchPaths": [ <string> ]
52
55
}
53
56
```
54
57
`project` is an object that contains the path to the project root directory and path to the actual xcodeproj or xcworkspace file. This directory will be copied by the Renamer to provide place for writing the obfuscated Swift source files to.
@@ -61,10 +64,12 @@ The output data format is called `Files.json` and presented below:
61
64
62
65
`layoutFiles` is an array of paths to storyboard / xib files containing the layouts that the tool should obfuscate.
63
66
64
-
`systemLinkedFrameworks` contains the list of names of frameworks that are imported in the source code (with various form of Swift `import` statement), but not included in the Xcode project. Since Xcode autolinks the system frameworks by default (see `CLANG_MODULES_AUTOLINK` flag), these frameworks should be automatically found by the compiler, which uses the SDK path for this purpose. They are used to identify the module that the symbol is part of.
67
+
`implicitlyLinkedFrameworks` contains the list of names of frameworks that are imported in the source code (with various form of Swift `import` statement), but not included in the Xcode project. There are two types of such frameworks. One is system frameworks. Since Xcode autolinks the system frameworks by default (see `CLANG_MODULES_AUTOLINK` flag), these frameworks should be automatically found by the compiler, which uses the SDK path for this purpose. Second one is frameworks with paths added to search paths, but not explicitely stated as dependencies. They are used to identify the module that the symbol is part of.
65
68
66
69
`explicitlyLinkedFrameworks` contains the list of framework objects with name and path. These are taken from the Xcode project, which must contain the names and paths to frameworks that are not automatically linked. They are required for the Swift compiler to perform the analysis and also used to identify which module is the symbol part of.
67
70
71
+
`frameworkSearchPaths` contains the list of paths to search for non-system frameworks. It's especially useful when working with Cocoapods projects, since they dont specify the framework dependencies explicitely, but set the paths.
0 commit comments