我在设备上安装了应用的旧版本。在我的新版本中,我不再使用.xib文件,因为它从复杂事物变为表视图,我可以在代码中实例化它。使用.xib在设备上更新应用程序已移除崩溃应用
但是,当我在设备上构建并运行时,它会崩溃,因为它仍会尝试从旧应用程序中包含的.xib文件加载控制器,并且抱怨缺少UILabel的键/值对。
例如:
SomeViewController.h(的UITableViewController)
SomeViewController.m
SomeViewController.xib(在新的版本中删除)
SomeViewController *controller = [[SomeViewController alloc] initWithStyle:UITableViewStylePlain];
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self)
{
}
return self;
}
即使我称之为 “initWithStyle” 它仍然会尝试加载预先存在的.xib!
我目前的解决方案是用空白的UITableView创建SomeViewController.xib。
但是,我怀疑当用户从应用程序商店更新应用程序时,它会覆盖整个应用程序,而不会留下任何东西。
这是真的吗?应用程序更新是否覆盖现有的应用程序,还是会留下延迟的.xib文件?
现在我必须用其他视图测试旧版本,以确保没有其他问题缠绵。
上NIB的读通过开发文本: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html
也许,我发现了一个bug?
另一种选择是让我将这个类重新命名为SomeController之类的东西,以避免自动加载关联的.xib文件。
摘要:使用Xcode构建和运行应用程序只发送已更改的文件,吃了一个“frankenbuild”。使用Adhoc构建进行测试。 – 2013-07-08 13:15:07
谢谢!我最近阅读了一些关于在发布之前测试adhoc构建的必要性的帖子,以确保处理各种问题。添加到我的测试清单中。 – Christopher 2013-07-09 01:08:19
很高兴我能帮到你。我在搜索测试构建的方法时遇到了这一段文档,以便我可以避免出现同样的问题。 – 2013-07-09 02:59:42