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

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

有没有人有任何想法? 谢谢

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

2)清洁

3)build立和运行

在你的控制器中使用NSLog(@"")来检查代码执行。

我只花了至less6个小时。 我有一个解决scheme,但我也向苹果索取了一张技术支持票,试图获得有关事业和适当解决scheme的更多信息。

只需删除对故事板文件的引用,并将其添加回同一个文件组中。

这似乎包括故事板文件回到生成期间生成的应用程序包(可以在DerivedData/APPNAME/Build/Products/Debug-iphonesimultator/APPNAME.app中看到。从这里我可以看到我的更改从故事板反映为预期。

PS – 你是否使用本地化? 我曾是。

我为此失去了2个小时。

解决scheme是braindead简单:删除应用程序, closures iPhone 5S(iOS 7.1.1),并将其打开。

当您打开本地化时,xcode在本地化文件夹中移动故事板文件(例如Base.lproj / name.storyboard )。 当你在模拟器上build立并运行项目时,xcode将name.storyboard复制到“derivedData”/Base.lproj/name.storyboard ,但是之前创build的本地化“derivedData”/name.storyboard仍然存在。 在这种情况下,模拟器使用可以更容易find的文件,即模拟器使用旧文件“derivedData”/name.storyboard进行操作。

解决scheme:只需重命名故事板文件,在导航器和目标/一般。

当我在计算机上有多个项目副本时,这个错误首次发生在我身上。 无论出于何种原因,有多个副本的事实使得看起来好像故事板没有在副本之间更新,并且在某些情况下代码没有被更新。 我以为我已经忘记在回家之前把正确的拷贝扔在我的闪存驱动器上,但事实certificate这是一个XCode错误。

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

模拟器上的故事板是应该的。 设备上的故事板不会更新。 我不得不从iPhone上删除应用程序,然后在设备上重新运行它,以便在设备上更新故事板。 幸运的是,对于我来说只是testing数据,但是我在一个视图上使用了自动布局,然后回到手动状态。 我认为这是对我造成的问题。

我发现删除和添加故事板文件在我的情况下不起作用,它也有副作用,如它会自动添加一个主要的笔尖进入应用程序的plist文件(随后使应用程序无法在iPhone模拟器启动)。

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

最后,我find了另一种行之有效的方法:只需删除“/用户/ $用户名/库/应用程序支持/ iPhone模拟器/ 7.1 /应用程序/ $应用程序/ $ yourapp.app”文件。 Documents目录下的文件是不变的。

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

如果碰巧复制了一个项目,我发现Xcode 6.1.1也出现了这种情况; 在模拟器上运行的新项目实际上仍然反映了原来项目。

在我的情况下,问题是如何为派生数据设置默认区域(实质上是二进制文件的构build位置)。 矿被设置为遗留和模拟器使用错误的项目,即使在一个干净的。 解决scheme是去首选项 – > 位置 ,按高级 ,并将位置从旧版更改为唯一

当使用本地化的故事板时,我也得到了这一点 – 在Xcode中运行只是拒绝安装最新版本的编译故事板。 我认为这与运行方式将更改的资源复制到设备上的方式有关 – 它与其他forms的设备应用程序安装不同。

不删除应用程序并丢失任何数据的情况下 ,最快的方法是:

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

为了让iTunes看到你有一个新的版本,你的应用程序内部版本号将需要增加(如果你不这样做),生成的档案。

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

我不确定是什么原因造成的,如果是本地化的资源bug或者什么的,但是这对我来说仍然是Xcode 7的一个问题。