Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何解决每隔14天在设备上发生的间歇性故障?_Swift - Fatal编程技术网

Swift 如何解决每隔14天在设备上发生的间歇性故障?

Swift 如何解决每隔14天在设备上发生的间歇性故障?,swift,Swift,我会尽量简洁明了,但没那么容易。我已经创建了一个应用程序,它在模拟器和iPhone上都能正常运行,但在我的iPhone上测试了一段时间后,应用程序崩溃了,我无法运行它,直到它从Xcode重建。这也无助于退出应用程序,它只是显示启动屏幕,然后崩溃,主屏幕显示在iPhone上。我在crashlog中查看了iPhone的设置-->隐私-->分析中的应用程序,但什么都没有 由于它无助于重新启动应用程序,我假设它与自定义类或超出边界的数组无关,而是与应用程序委托有关。有人能告诉我如何缩小范围吗?有一个带有

我会尽量简洁明了,但没那么容易。我已经创建了一个应用程序,它在模拟器和iPhone上都能正常运行,但在我的iPhone上测试了一段时间后,应用程序崩溃了,我无法运行它,直到它从Xcode重建。这也无助于退出应用程序,它只是显示启动屏幕,然后崩溃,主屏幕显示在iPhone上。我在crashlog中查看了iPhone的设置-->隐私-->分析中的应用程序,但什么都没有

由于它无助于重新启动应用程序,我假设它与自定义类或超出边界的数组无关,而是与应用程序委托有关。有人能告诉我如何缩小范围吗?有一个带有bug的应用程序已经够糟糕了,但让它完全崩溃并依赖于重建/重新安装更糟糕:((它不在应用商店中,所以还没有危机)

下面是我的AppDelegate.swift文件。Dummy()只是数组的一堆硬编码的附件,所以我将省略它

AppDelegate
导入UIKit
导入CoreData
进口沙菲奥里
进口火基
@UIApplicationMain
类AppDelegate:UIResponder、UIApplicationLegate{
var-orientationLock=UIInterfaceOrientationMask.allButUpsideDown
func应用程序(application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplication.launchOptions键:任意]?)->Bool{
FirebaseApp.configure()
commonData.getAllCustomers()
dummy.setUpProducts()
dummy.setUpProductGroups()
dummy.setUpStores()
dummy.setUpStock()
commonData.store=“7004”
commonData.webStore=“7901”
返回真值
}
//MARK:UISceneSession生命周期
func应用程序(uApplication:UIApplication,用于连接的配置SceneSession:UISceneSession,选项:UIScene.ConnectionOptions)->UISceneConfiguration{
//在创建新场景会话时调用。
//使用此方法可以选择配置以创建新场景。
返回UISceneConfiguration(名称:“默认配置”,会话角色:ConnectionSceneSession.role)
}
func应用程序(application:UIApplication,didDiscardSceneSessions sceneSessions:Set){
//当用户放弃场景会话时调用。
//如果在应用程序未运行时丢弃了任何会话,则将在application:didFinishLaunchingWithOptions后不久调用该会话。
//使用此方法释放特定于被丢弃场景的任何资源,因为它们不会返回。
}
//标记:-核心数据堆栈
lazy var persistentContainer:NSPersistentCloudKitContainer={
/*
应用程序的持久容器。此实现
创建并返回一个容器,该容器已加载
此属性是可选的,因为存在合法的
可能导致存储创建失败的错误条件。
*/
let container=NSPersistentCloudKitContainer(名称:“范例\位置”)
中的container.loadPersistentStores(completionHandler:{(storeDescription,错误)
如果let error=错误为N错误{
//将此实现替换为适当处理错误的代码。
//fatalError()导致应用程序生成崩溃日志并终止。您不应在装运应用程序中使用此函数,尽管它在开发过程中可能很有用。
/*
此处出现错误的典型原因包括:
*父目录不存在、无法创建或不允许写入。
*由于设备锁定时的权限或数据保护,无法访问持久存储。
*设备空间不足。
*无法将存储迁移到当前模型版本。
检查错误消息以确定实际问题是什么。
*/
fatalError(“未解决的错误\(error),\(error.userInfo)”)
}
})
返回容器
}()
//MARK:-核心数据保存支持
func saveContext(){
let context=persistentContainer.viewContext
如果context.has发生更改{
做{
尝试context.save()
}抓住{
//将此实现替换为适当处理错误的代码。
//fatalError()导致应用程序生成崩溃日志并终止。您不应在装运应用程序中使用此函数,尽管它在开发过程中可能很有用。
设nserror=错误为nserror
fatalError(“未解决的错误\(nserror),\(nserror.userInfo)”)
}
}
}
func应用程序(application:UIApplication,支持的界面方向窗口:UIWindow?->UIInterfaceOrientationTask{
返回自我定向锁
}
}

过了一段时间,我终于发现了这个问题,它与代码无关:)崩溃的原因是我仍然在使用一个未付费的开发人员帐户,而对于这些帐户,应用程序必须每14天重新构建一次。

是否有错误消息?您是否尝试添加异常断点?“当我的iPhone上有一个崩溃的内置版本时,我是否可以在调试模式下运行它而不重新构建它?”是的。您可以设置Xcode在启动时挂入应用程序,并通过点击手机上的springboard图标自行启动,而无需使用Xcode构建或运行。如果您已经设置了断点,您将停止在那里。请注意,
print
将不起作用,因此您应该改用
os\u log
,并观察mac Console应用程序中发生的情况