为什么我在iOS应用中获取文本文件的旧值?

时间:2014-03-16 21:12:47

标签: ios objective-c git

我正在尝试将最后一个已知的git版本放在我的应用中的about页面中。我通过使用包含一行的gitVersion.txt文件 - 提交号来跟踪最后一个提交号。

这就是我正在做的事情:

NSString *gitFile = [NSBundle.mainBundle pathForResource:@"gitVersion" ofType:@"txt"];
NSError *error = nil;
NSString *gitVersion = [NSString stringWithContentsOfFile:gitFile encoding:NSUTF8StringEncoding error:&error];
NSString *labelText = [NSString stringWithFormat:@"Build: %@",[gitVersion substringToIndex:7]];

问题在于,自从我第一次执行此操作以来,无论我使用新提交更新文件多少次,它始终使用我输入的第一个提交。

请注意,即使我生成ipa并检查.app是否为gitVersion.txt,它仍具有旧值。这告诉我它已缓存在某处,我不知道如何更新它...

其他信息:

我已经做了通常的'清洁'甚至' Clean Build Folder'选项。我还试过重置内容和设置'在模拟器中,但没有运气。

1 个答案:

答案 0 :(得分:0)

原来我有2个gitVersion.txt文件,而且我一直在更新iOS甚至看不到的那个。

我是如何犯这个错误的:

  1. 我在根目录中创建了gitVersion.txt(A)(可以找到.xcodeproj)。
  2. 我在不知情的情况下将文件添加到我的Xcode项目中,而不是根目录,选择'将项目复制到目标组的文件夹(如果需要)'。这创建了gitVersion.txt(B)。
  3. 我随时更新了git版本,我正在更新gitVersion.txt(A),而应用程序是从gitVersion.txt(B)中找到的原始git修订版中提取的!
  4. 我是如何解决问题的:

    1. 我用git rm ProjectFolder/gitVersion.txt
    2. 删除了gitVersion.txt(B)
    3. 我从Xcode项目中删除了gitVersion.txt(B)。
    4. 我将gitVersion.txt(A)添加到Xcode项目中,取消选中'将项目复制到目标组的文件夹(如果需要)'。
    5. (可选)为了咒骂他们的名字而从git众神那里悔改......
    6. 我的祈祷得到了解答,它现在从根目录更新就好了!