我有一个工作应用程序Xcode
,但是当我尝试构建和运行它时,模拟器会显示我正在处理的故事板的旧版本。我已经更改了情节提要上的一些设计,但这并没有反映在模拟器中,没有任何更新。
有没有人有任何想法?
我有一个工作应用程序Xcode
,但是当我尝试构建和运行它时,模拟器会显示我正在处理的故事板的旧版本。我已经更改了情节提要上的一些设计,但这并没有反映在模拟器中,没有任何更新。
有没有人有任何想法?
删除模拟器上的应用程序。
干净的
项目清单
构建和运行
在您的控制器中使用NSLog(@"")
以检查代码执行。
我只花了至少 6 个小时。我有一个解决方案,但我还向苹果提交了技术支持票,以尝试获取有关原因和正确解决方案的更多信息。
只需删除对故事板文件的引用并将它们重新添加到同一文件组中。
这似乎将情节提要文件包含回构建期间生成的应用程序包中(可以在
DerivedData/APPNAME/Build/Products/Debug-iphonesimultator/APPNAME.app
从这里我可以看到我的更改按预期从情节提要中反映出来。
PS - 你在使用本地化吗?我曾是。
我为此浪费了2个小时。
解决方案非常简单:删除应用程序,关闭iPhone 5S (iOS 7.1.1),然后打开它。
当您打开本地化时,xcode 将故事板文件移动到本地化文件夹(例如Base.lproj/name.storyboard)中。当您在模拟器上构建和运行项目时,xcode 将 name.storyboard 复制到"derivedData"/Base.lproj/name.storyboard中,但之前在本地化之前创建的"derivedData"/name.storyboard仍然存在。在这种情况下,模拟器使用比较容易找到的文件,即模拟器使用旧文件“derivedData”/name.storyboard进行操作。
解决方案:只需在导航器和目标/常规中重命名故事板文件。
当我的计算机上有一个项目的多个副本时,这个错误第一次发生在我身上。无论出于何种原因,有多个副本的事实使得故事板看起来好像没有在副本之间更新,并且在某些情况下代码没有更新。我以为我忘记在回家之前把正确的副本放在我的闪存驱动器上,但结果证明这是一个 XCode 错误。
删除使用相同名称的任何多个副本,重新启动 XCode 并打开您最近的副本。非常奇怪,但从现在开始我可能会使用 BitBucket 或 GitHub,而不是把它扔到闪存驱动器上。
删除
~/库/开发者/Xcode/derivedData/
为我工作!
本地化后我也遇到了同样的问题我的解决方案是单击产品,清理构建文件夹。然后就好了
我发现删除和添加故事板文件在我的情况下不起作用,它也有副作用,比如它会自动将一个主 nib 条目添加到应用程序的 plist 文件中(这随后使应用程序无法在 iPhone 模拟器中启动)。
我不想尝试从模拟器中删除应用程序,因为我在应用程序的 Document 目录下有很多文件。
最后我找到了另一种效果很好的方法:只需删除“/Users/$username/Library/Application Support/iPhone Simulator/7.1/Applications/$app/$yourapp.app”文件。Documents 目录下的文件保持不变。
(我也本地化了我的故事板。)
I found this same thing happened with Xcode 6.1.1 if I happened to have copied a project; the new project run in the simulator was actually still reflecting the old, original project.
In my case the problem was with how the default area was set up for derived data (essentially the location where the binary files go for a build). Mine was set to legacy and the simulator was using the wrong project, even after a clean. The solution was to go to Preferences->Locations, press Advanced, and change the location from Legacy to Unique.
模拟器上的情节提要本应如此。设备上的情节提要不会更新。我不得不从 iPhone 中删除应用程序,然后在设备上重新运行它,以便让 Storyboard 在设备上更新。对我来说幸运的是,这只是测试数据,但我在一个视图上使用了自动布局并返回手动。我认为这就是造成我问题的原因。
使用本地化故事板时我也得到了这个 -在 Xcode 中运行只是拒绝安装最新版本的已编译故事板。我认为这与Run将更改的资源复制到设备的方式有关 - 它与其他形式的设备应用程序安装不同。
在不删除应用程序和丢失任何数据的情况下解决此问题的最快方法是:
为了让 iTunes 看到您有一个新版本,您的应用程序内部版本号需要在生成存档之前增加(如果您还没有这样做)。
我发现这种方法意味着您不必从设备上删除应用程序,您只是强制它安装整个安装包,而不是我认为Run正在做的差异。
我不确定是什么原因造成的,如果是本地化资源错误或什么,但这对我来说仍然是 Xcode 7 中的一个问题。