Rob*_*ert 11 iphone xcode objective-c ios
我对多个目标最常见的问题之一是忘记向所有目标添加文件.它很容易导入文件,而不是勾选所有框...
在构建阶段,有一个"编译源"视图,它是为每个目标编译的文件列表.然而,接缝不是简单的方法来比较目标,看看哪些文件在一个文件而不是另一个文件.
有没有办法找到不属于特定目标的文件?也许一个脚本?
我不知道编写脚本的方法,但是对于文件,您可以查看所有目标的列表,并选中相关联的目标,您可以从该列表中选中或取消选中目标。
打开“实用工具”窗格并选择“文件检查器”。然后选择一个文件,相关的目标将在文件检查器的目标成员区域中。
您甚至可以选择多个文件,并且与某些但并非所有选定文件相关联的目标将标有“-”。如果您选中一个目标,则所有选定的文件都将添加到该目标中。
小智 5
假设MyProject.xcodeproj在工作目录中,并且所有源代码都在工作目录中或之下,则可以使用hack *这样的方式查找不属于任何目标的.m文件:
find . -name "*.m" -exec basename '{}' \; | xargs -I '{}' sh -c 'grep "{} in Sources" MyProject.xcodeproj/project.pbxproj > /dev/null; echo "$?\c"; echo " {}"' | grep "^1"
Run Code Online (Sandbox Code Playgroud)
从项目中删除文件后,您可以使用以下类似脚本从git repo中删除它们-以及从项目中不再引用的其他objc源文件:
find . -name "*.[hm]" -exec basename '{}' \; | xargs -I '{}' sh -c 'grep {} MyProject.xcodeproj/project.pbxproj > /dev/null; echo "$?\c"; echo " {}"' | grep "^1" | cut -c3- | xargs -I '%' find . -name '%' -exec git rm '{}' \;
Run Code Online (Sandbox Code Playgroud)
*从某种意义上讲,这取决于Xcode文件格式的实现细节。
| 归档时间: |
|
| 查看次数: |
4847 次 |
| 最近记录: |