【问题标题】:Why is a new project with the same app ID still designated a new location?为什么同一个 app ID 的新项目还是指定了新的位置?
【发布时间】:2015-09-26 21:48:34
【问题描述】:

我们创建了一个具有相同应用 ID 的新项目,但它在独立存储中被指定为不同的文件夹。这是为什么呢?

file:///Users/houman/Library/Developer/CoreSimulator/Devices/FBFFFF1E-B5C8-4541-AB4B-ED1657D43EB9/data/Containers/Data/Application/EB3A549F-1604-4E5C-8FBE-3076A3D581E5/Documents/

file:///Users/houman/Library/Developer/CoreSimulator/Devices/FBFFFF1E-B5C8-4541-AB4B-ED1657D43EB9/data/Containers/Data/Application/22E1E792-1F4F-4F05-B7D9-F61AD3624EE9/Documents/

即使应用共享相同的 ID。 由于它们不共享相同的位置,因此无法进行核心数据迁移。 请问有什么建议吗?

更新: 我们在 AppStore 中有两个应用程序,并希望将这些功能结合起来。因此,想法是使用其他应用程序的 appID 从单独的项目推送新版本。我们有 appID 和正确的证书,但隔离存储似乎依赖于其他东西,而不仅仅是 appid。否则,将无法将现有数据迁移到新系统。或者,我们可以将所有文件复制并粘贴到另一个项目中并经历很多痛苦。这可能会成为可能。

【问题讨论】:

  • 一个不同的项目,一个不同的位置,是有意义的。只需尝试移动 CoreData 文件或创建一个进程来重新填充 Core Data 文件。
  • 如果此行为仅在模拟器中受到限制,则可以按照您的建议移动 coredata。但是通过 crashlytics 将其部署到实际设备上,会出现同样的问题。
  • 你换模拟器了吗?
  • 为什么有人对此投了反对票,却没有提供任何评论?这是一个真正的问题,如果需要,我可以进一步解释。

标签: ios app-id


【解决方案1】:

我已经看到了这一点 - 我相信(并且可能是错误的)您运行的每个模拟器在磁盘上都有自己的文件夹。例如,如果您将 iPhone 5 切换到 iPhone 6s,您最终可能会得到一个不同的文件夹。

实际上,我总是(在模拟器中运行时)打印出磁盘上的位置,以便在需要时查看sqlite 文件,最近(从 xcode7 开始)我注意到了这个目录在运行之间进行更改 - 但是在我的情况下,我将其追踪到更改模拟器版本。

【讨论】:

  • 感谢您的提示。我只是试了一下没有成功。请查看更新后的问题。
【解决方案2】:

主要是出于安全原因。每个 iOS 应用程序都放置在一个应用程序沙箱中。

这不仅指文件系统中应用程序的沙箱目录,还通过限制对存储在设备、系统服务和硬件上的用户数据的访问来授予安全性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多