忽略库.xcodeproj文件更改

时间:2013-06-07 12:52:59

标签: ios xcode git build

在我的iOs应用程序中,我正在使用谷歌的静态库。我从他们的git存储库中取出了源代码,我将该项目链接为我的应用程序的子项目。

我需要更改有关跳过安装的库项目设置的一些构建标志和设置。但是现在整个项目都不会提交,因为我无法提交库项目文件。我想保持库连接到他们的存储库,以便能够获得新的更新。

当然我可以取消选中复选框标记,但还有其他解决方案吗?

3 个答案:

答案 0 :(得分:2)

您需要派生lib项目并将其添加为子模块,这样您就可以对lib进行更改,广告在原始仓库中添加上游,您可以从中获取更改并保持lib更新。这里是关于fork a repo的github帮助页面,这里有一篇关于submodules

的文章

之后你按照github页面中的解释分叉了lib,这很容易......

如果您的项目是一个git项目,请在您的git项目根目录中添加一个子模块

// git submodule add git://forkPath.git destinationFolder
// like this
git submodule add git://github.com/chneukirchen/rack.git rack

现在您需要初始化并更新项目子模块,就像这样

git submodule init
git submodule update

如果您的项目是SVN项目或类似项目,请在项目根目录之外的某处(可能在同一级别)克隆分支:

// git clone git://forkPath.git
git clone git://github.com/chneukirchen/rack.git

现在你只需要将分叉项目链接到你的项目,导入类等......

更新一个福克:

来自子模块项目文件夹...

进入子模块的根目录,进入另一个git仓库,添加原始仓库的远程上游:

// git remote add upstream https://originalRepo.git
git remote add upstream https://github.com/octocat/Spoon-Knife.git

现在您必须从上游提取更改并合并更改

git fetch upstream
git merge upstream/master

现在让您可以进行所需的所有更改并提交

git commit fileToCommit.m -m 'a comment'

并推送到fork项目

git push 

或者如果您在特定分支机构工作

git push origin/master

答案 1 :(得分:0)

构建脚本可能会帮助你:

  • 保留当前Google图书馆项目的位置

  • 编写一个git更新该文件夹的脚本,并在每次构建时运行。使用过时的“flag”文件,脚本可以写入,每天只更新一次文件夹

  • 编写另一个脚本,对于项目文件以外的每个导入文件,将其复制到第二个文件夹

  • 将要使用的项目文件放在第二个文件夹中

  • 删除对主库文件夹的原始引用,然后导入新的第二个文件夹。

Voila,现在您已更新了源文件和修改后的项目文件。如果构建因添加新文件而中断,则可以将修改后的原始文件复制到第二个文件夹,根据需要更改设置。

答案 2 :(得分:0)

对于跟踪更改,您可以使用git子模块,甚至更好 - Cocoapods(如果可能)。此外,您可以使用XCode工作区并将库保留为工作空间内的“并行”项目,而不是将其作为子项目 - 这使我的工作更简单。