我正在构建一个框架,需要区分捆绑资源文件(包含在开发时定义的 App Store IPA/静态文件中)和应用程序创建的文件(下载和保存,或只是其他方式)写入应用程序支持、临时或任何其他可写位置中的文件)。
我想这样做,因为 SDK 可以免费与本地配置文件一起使用,但使用基于云的配置(无需发布应用程序更新即可更新)是一项付费功能。
我尝试了几种方法,但我很快就找到了击败自己检查的方法。
检查文件的任何权威方法都是应用程序版本中包含的捆绑资源,而不仅仅是任何旧文件?
谢谢!
您的假设是不正确的。当安装在设备上时,运行时应用程序的沙箱中没有路径位于应用程序的资源包内。该应用程序的捆绑包是只读的(在真实设备上)。沙箱是可写的。
您需要做的就是查看表示配置文件的 URL 是否位于应用程序的资源包 (
Bundle.main.bundleURL
) 中或者可能位于框架的包中。
如果它不在捆绑包中,则它是保存在应用程序沙箱、iCloud 或未打包在应用程序本身中的其他路径中的文件。