iOS:如何确定文件是否是捆绑资源(包含在 IPA 中)

问题描述 投票:0回答:1

我正在构建一个框架,需要区分捆绑资源文件(包含在开发时定义的 App Store IPA/静态文件中)和应用程序创建的文件(下载和保存,或只是其他方式)写入应用程序支持、临时或任何其他可写位置中的文件)。

我想这样做,因为 SDK 可以免费与本地配置文件一起使用,但使用基于云的配置(无需发布应用程序更新即可更新)是一项付费功能。

我尝试了几种方法,但我很快就找到了击败自己检查的方法。

  • 检查文件权限:但应用程序可以将任何文件更改为只读权限
  • 检查文件是否存在于捆绑包中:但临时目录(可能还有其他目录)位于主捆绑包中

检查文件的任何权威方法都是应用程序版本中包含的捆绑资源,而不仅仅是任何旧文件?

谢谢!

ios nsfilemanager
1个回答
0
投票

您的假设是不正确的。当安装在设备上时,运行时应用程序的沙箱中没有路径位于应用程序的资源包内。该应用程序的捆绑包是只读的(在真实设备上)。沙箱是可写的。

您需要做的就是查看表示配置文件的 URL 是否位于应用程序的资源包 (

Bundle.main.bundleURL
) 中或者可能位于框架的包中。

如果它不在捆绑包中,则它是保存在应用程序沙箱、iCloud 或未打包在应用程序本身中的其他路径中的文件。

© www.soinside.com 2019 - 2024. All rights reserved.