故事板不会在模拟器中更新

时间:2013-02-01 14:51:31

标签: ios xcode storyboard ios-simulator

我在Xcode中有一个可用的应用程序,但是当我尝试构建并运行它时,模拟器会显示我正在处理的故事板的旧版本。我改变了故事板上的一些设计,但这并没有反映在模拟器中,没有任何更新。

有没有人有任何想法?

11 个答案:

答案 0 :(得分:21)

  1. 在模拟器上删除应用程序。

  2. 清洁

  3. 列出项目

  4. Build&运行

  5. 使用控制器中的NSLog(@"")检查代码执行情况。

答案 1 :(得分:12)

我刚刚花了至少6个小时。我有一个解决方案,但我还向苹果提交了技术支持票,试图获得有关原因和正确解决方案的更多信息。

只需删除对情节提要文件的引用,然后将其添加回同一文件组中。

这似乎将故事板文件包含在构建期间生成的应用程序包中(可以在

中看到)
DerivedData/APPNAME/Build/Products/Debug-iphonesimultator/APPNAME.app 

从这里,我可以看到我的更改从故事板中反映出来。

PS - 您是否在使用本地化?我是。

答案 2 :(得分:6)

我失去了2个小时。

解决方案很简单:删除app,关闭 iPhone 5S(iOS 7.1.1),并将其打开。

答案 3 :(得分:2)

当您启用本地化时, xcode在本地化文件夹中移动故事板文件(例如 Base.lproj / name.storyboard )。当您在模拟器上构建和运行项目时,xcode将name.storyboard复制到" derivedData" /Base.lproj/name.storyboard ,但之前在本地化之前创建&# 34; derivedData" /name.storyboard 仍然存在。在这种情况下,模拟器使用可以更容易找到的文件,即模拟器使用旧文件" derivedData" /name.storyboard 来操作。

解决方案:只需在导航器和目标/常规中重命名故事板文件。

答案 4 :(得分:1)

当我在计算机上有多个项目副本时,第一次发生这个错误。无论出于何种原因,存在多个副本的事实使得它看起来好像故事板在副本之间没有更新,并且在某些情况下代码没有更新。我以为我忘了在回家之前把正确的副本扔到我的闪存盘上,但事实证明这是一个XCode错误。

使用相同的名称删除任何多个副本,重新启动XCode并打开最新的副本。非常离奇,但我可能会从现在开始使用BitBucket或GitHub,而不是将它扔到闪存盘上。

答案 5 :(得分:1)

删除

  

〜/ Library / Developer / Xcode / derivedData /

为我工作!

答案 6 :(得分:0)

模拟器上的故事板应该是它本来应该的。设备上的故事板不会更新。我不得不从iPhone中删除该应用程序,然后在设备上重新运行该应用程序,以便在设备上更新Storyboard。幸运的是,它只是测试数据,但我在一个视图上使用自动布局并返回到手动。我认为这是导致我这个问题的原因。

答案 7 :(得分:0)

我发现在我的情况下删除和添加storyboard文件并不起作用,它也有副作用,因为它会自动将一个主nib条目添加到App的plist文件中(随后会生成App无法在iPhone模拟器中启动)。

我不想尝试从模拟器中删除应用程序,因为我在App的Document目录下有很多文件。

最后我找到了另一种运作良好的方法:只需删除" / Users / $ username / Library / Application Support / iPhone Simulator / 7.1 / Applications / $ app / $ yourapp.app"文件。文档目录下的文件不受影响。

(我也将我的故事板本地化了。)

答案 8 :(得分:0)

如果我碰巧复制了一个项目,我发现Xcode 6.1.1也发生了同样的事情。在模拟器中运行的新项目实际上仍然反映了旧的原始项目。

在我的情况下,问题在于如何为派生数据设置默认区域(实质上是二进制文件用于构建的位置)。我被设置为遗产,模拟器正在使用错误的项目,即使在干净之后。解决方案是转到偏好设置 - > 地理位置,按高级,然后将位置从 Legacy 更改为唯一

答案 9 :(得分:0)

我在使用本地化的故事板时也是这样 - 在Xcode中运行只是拒绝安装最新版本的已编译故事板。我认为这与运行将更改后的资源复制到设备的方式有关 - 它与其他形式的设备应用安装方式不同。

通过而不删除应用并丢失任何数据的最快方法是:

  • 在Xcode中生成存档版本
  • 将此导出为 Adhoc 部署
  • 双击生成的 IPA ,将其添加到iTunes
  • 从iTunes的设备页面强制更新到该应用

为了让iTunes看到您有新版本,您的应用内部版本号需要增加(如果您还没有这样做),那么在生成存档之前。< / p>

我发现这种方法意味着你不必从设备上删除应用程序,你只是强迫它安装整个安装包而不是我认为的差异运行正在做。

我不确定是什么导致这种情况,如果是本地化资源错误或者是什么,但这对我来说仍然是Xcode 7中的一个问题。

答案 10 :(得分:0)

本地化后我也遇到相同的问题我的解决方案是单击产品,清除构建文件夹。那就没事了