解锁Xcode项目文件以查找和替换

瑞安·普洛斯(Ryan Poolos)

我通常使用Xcode的工作区“查找和替换”。与正则表达式结合使用时,它非常强大。

但是,我有一个包含30-40个项目的工作区,并且只需要对构建设置进行大的更改。我希望跳入Xcode,并在碰到块时放一些正则表达式来更改所有项目的构建设置。我所有的Xcode项目文件都被锁定。因此,正则表达式查找效果很好,但是我无法替换。我什至无法预览。它只会影响我所看到的项目文件。我打开了Finder来检查权限,它们是完全打开的,并且所有OSX文件锁均已关闭。因此,这似乎是Xcode锁定问题。我试图像使用Xcode中的普通文件(文件>解锁...)那样锁定/解锁项目文件,但是这些选项对于项目来说是灰色的。

有人遇到过吗?在我必须手动更新30多个项目的构建设置之前,有什么可行的解决方案?

布莱恩·穆西亚(Bryan Musial)

我在这个问题上做了一些深入的研究,以从上面的评论中证实或驳斥我的假设。Xcode确实确实可以直接针对查找/替换活动中涉及的文件的磁盘数据进行工作。文件系统事件表明,find / replace操作将打开.pbxproj文件,并从上到下开始regex活动,遍历文件和组对构建配置和设置部分的引用,最终将搜索应用于每个文件指向的磁盘数据.pbxproj中的条目数

自然,根据用户输入的正则表达式,完全有可能完全匹配搜索中光标当前位置的内容,并触发替换操作,这将破坏当前搜索的上下文。这将最有可能导致过早终止搜索,但是如果没有很好地进行搜索,则还可能触发无限长的查找/替换操作(例如,将“。”替换为“ aa”)。为避免涉及此Xcode查找/替换行为的整个“自食蛇”问题,似乎Apple已选择在搜索操作期间锁定.pbxproj。虽然这确实意味着您不能使用Xcode的“查找/替换”正则表达式工具,但这里有许多出色的文本编辑器(甚至是免费的!)!),可让您通过多文件搜索(TextWrangler和BBEdit)进行正则表达式查找/替换。这些编辑器使您可以将搜索过滤到主项目的子文件夹中的文件模式(例如* .pbxproj)。根据项目在磁盘上的组织方式,从一个共同的祖先开始进行搜索,您可以像在Xcode中一样逐步进行查找/替换操作。实际上,您在Xcode中标识的相同正则表达式字符串可用于这些工具中,以影响所需的更改。从一个共同祖先开始选择一个搜索,就可以像在Xcode中一样逐步进行查找/替换操作。实际上,您在Xcode中标识的相同正则表达式字符串可用于这些工具中,以影响所需的更改。从一个共同祖先开始选择一个搜索,就可以像在Xcode中一样逐步进行查找/替换操作。实际上,您在Xcode中标识的相同正则表达式字符串可用于这些工具中,以影响所需的更改。

与大多数大规模或自主编辑一样,请确保保留要编辑的文件的备份(至少对您来说是双重的,因为您的项目完全是本地的,非源代码控制的项目),以防万一您需要回滚您的项目变化。祝您好运,并让我们知道您选择了哪种方式以及进展如何。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章