如何解决首次部署到 IOS 设备的“没有这样的表:Z_METADATA”错误

Posted

技术标签:

【中文标题】如何解决首次部署到 IOS 设备的“没有这样的表:Z_METADATA”错误【英文标题】:how to resolve "no such table: Z_METADATA" error for first deploy to an IOS device 【发布时间】:2011-04-09 22:05:39 【问题描述】:

我的应用程序第一次部署到 ios 设备时崩溃了,因为我收到:“'no such table: Z_METADATA'”错误。我已经从我的设备复制了 SQLite 文件并在 SQLite 浏览器中打开它,但我看不到其中的表。

它似乎出现在设置数据库的代码中(我取自 Apple 示例):

 NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"CoreDataProjectTemplate.sqlite"];
[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]  // Errors out here

我得到了错误:

Unresolved error Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)" UserInfo=0x1905e0 NSFilePath=/var/mobile/Applications/543D2AA1-2484-4A6B-A694-DCD55B81E224/Documents/CoreDataProjectTemplate.sqlite, NSUnderlyingException=I/O error for database at /var/mobile/Applications/543D2AA1-2484-4A6B-A694-DCD55B81E224/Documents/CoreDataProjectTemplate.sqlite.  SQLite error code:1, 'no such table: Z_METADATA', 
    NSFilePath = "/var/mobile/Applications/543D2AA1-2484-4A6B-A694-DCD55B81E224/Documents/CoreDataProjectTemplate.sqlite";
    NSUnderlyingException = "I/O error for database at /var/mobile/Applications/543D2AA1-2484-4A6B-A694-DCD55B81E224/Documents/CoreDataProjectTemplate.sqlite.  SQLite error code:1, 'no such table: Z_METADATA'";

warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.1 (8G4)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).

所以我想我的问题包括:

    我该如何解决这个问题? 我使用的 Apple 代码是否应该创建 Z_METADATA 表? (如果有,为什么不在那里)

谢谢

更新:我尝试手动删除设备上的 sqlite 文件,之后应用程序部署正常。我也许只是将发生的事情视为异常吗?

【问题讨论】:

存在一个可能提供一些提示的问题 - ***.com/questions/3533874/… 是的 - 我在发帖之前通读了这篇文章 - 不幸的是它没有帮助 更新:我尝试手动删除设备上的 sqlite 文件,之后应用程序部署良好。我也许只是将发生的事情视为异常吗? 是的,这很可能是异常情况。 Core Data 应该为您处理所有这些事情。 【参考方案1】:

我尝试手动删除设备上的 sqlite 文件,之后应用程序部署正常。

(可能因此将其视为异常)

【讨论】:

以上是关于如何解决首次部署到 IOS 设备的“没有这样的表:Z_METADATA”错误的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 iOS App 是由特定用户(不是在特定设备上)首次启动的?

如何首次在设备上测试 iPhone 应用程序?

如何构建 React Native iOS 应用程序,获取 .app 文件并部署到设备?

Visual Studio 2015 Apache Cordova 应用程序:如何直接部署到连接到 PC(不是 Mac)的 iOS 本地设备?

如何将 iPhone 应用程序从 Xcode 4.3.1 部署到具有 IOS 5.0.1 越狱的真实 iPhone 设备 [重复]

如何解决android.database.sqlite.SQLiteException:没有这样的表错误?