如何检测 iOS 应用程序是否已重新安装(从 XCode)或升级(从 AppStore)

2023-12-08

我们正在开发的应用程序使用应用程序包中包含的二进制文件。

由于需要处理该文件,并且在某些情况下需要重写该文件,因此应用程序会在首次启动时或每当应用程序支持中缺少该文件时,都会将此文件复制到“库/应用程序支持”目录中。然后,应用程序每次启动时都会从应用程序支持加载此文件并使用其中包含的数据。

由于Application Support目录在每次应用程序安装/升级时都会保留,因此我们需要在安装或升级应用程序时删除该目录下的上述二进制文件,并从应用程序包中重新复制它,以确保二进制文件文件结构与最新版本的应用程序兼容。

在以下两种情况下我们需要这样做: - 在开发过程中,每次我们从 XCode 重建并安装应用程序 - 一旦上线,每次用户从 AppStore 升级应用程序时

有什么方法可以检测该应用程序是否已安装或重新安装在设备上?


正如 rmaddy 所说,确保更新的(可能)干净方法是使用 info.plist 文件中的变量,但这并不能解决准确了解是否需要更新或过度更新的问题。

老实说,我不知道苹果是否会让它通过验证,但您可能可以存储并检查可执行文件的最后修改日期。如果它早于某个日期,则更新。这么粗暴的版本控制机制看起来有点复杂。不能在二进制文件中包含版本号吗?

要检查日期:

NSString *exePath = [[NSBundle mainBundle] executablePath];
NSDictionary *exeAttrs = [[NSFileManager defaultManager] attributesOfItemAtPath:exePath error:nil];
NSString *lastModDate = [exeAttrs objectForKey:@"NSFileModificationDate"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测 iOS 应用程序是否已重新安装(从 XCode)或升级(从 AppStore) 的相关文章

  • valgrind 和 iOS SDK 4.2?

    使用 valgrind 运行 iOS 4 2 应用程序时遇到问题 我从 Macports 安装了 valgrind 3 6 0 SVN Xcode 3 2 5 当我修改 main 以运行 valgrind 时 我得到以下输出 Detecte
  • 如何在 iOS8 上以编程方式创建一个没有 Storyboard 的 Today 小部件?

    我尝试删除故事板文件和相关的Info plist进入但这次扩展停止工作 它甚至不能从 XCode 启动 The operation couldn t be completed LaunchServicesError error 0 在常规应
  • 如何对其中包含自定义对象的 NSMutableArray 进行排序?

    我想做的事情看起来很简单 但我在网上找不到任何答案 我有一个NSMutableArray对象 假设它们是 Person 对象 我想排序NSMutableArray通过 Person birthDate 这是一个NSDate 我认为这与这个方
  • 如何在核心数据中应用group by子句

    我正在实现 tableview 我想在 tableview 部分显示类名 并且我正在尝试获取 使用核心数据实现的数据库中的类值 我想使用类名上的 group by 子句获取数据 这是我的代码 AppDelegate appDelegate
  • Swift 2.0 中的协议扩展方法调度

    我面临有关协议方法调度的问题 我有一个类层次结构 如下所示 protocol E func test extension E func test print jello class A E class B A func test print
  • 使用 GCD 异步 UITableViewCell 图像加载

    我目前正在尝试加载 Flickr 照片的 UITableView 列表 cs193p iOS 斯坦福大学 作业 5 为了避免 UI 阻塞事件 我将每个单元格的缩略图下载推迟到不同的队列中 但确实将 UI 更新回主队列中 此代码不会异步加载图
  • 将文件保存到 icloud 驱动器

    我正在尝试将文件保存到 icloud 驱动器 我要使用简单版本 不让用户选择保存文件的位置 我只是将其保存在 icloud 驱动器的根目录中 这是我正在使用的代码 func exportToFiles for page in pages l
  • Parse.com 因超出突发限制而拒绝服务

    我使用 Parse 创建了一个 iOS 应用程序 其中使用的是从 Parse com 网站下载的 iOS SDK 为了创建此类应用程序 ApplicationID 和 ClientID 密钥都嵌入在 iOS 应用程序中 并在使用应用程序时从
  • iOS 中的 NSCachesDirectory 和 NSDownloadsDirectory 有什么区别?

    我想将下载的杂志保存到我的 iOS 应用程序中的一个目录中 它似乎NSCachesDirectory and NSDownloadsDirectory是合适的 我不知道它们之间有什么区别 以及哪一种适合下载杂志 任何建议表示赞赏 内存不足时
  • 操作按钮未出现在通知 iOS 10 中

    我在我的应用程序中使用本地推送通知 在 iOS 10 中为通知添加操作按钮时 它不会出现在通知下方 通知正在显示 但通知底部缺少操作按钮 下面给出了 appdelegate 代码 import UIKit import CoreData i
  • Apple 如何通知 iOS 应用程序内购买 (IAP) 退款?

    我在我的应用程序中成功实现了 Apple iOS IAP 并在沙箱中进行了测试 效果很好 我担心用户可能会通过 IAP 购买商品 将其下载到我的应用程序中 然后向 Apple 投诉并获得退款 没有明显的方式将退款报告给我的应用程序 它们是否
  • 如何确定 NSURLSessionTask 请求何时开始?

    I use NSURLSessionTask我正在尝试监视我的一些 HTTP 请求需要多长时间 我可以监视什么委托方法 或其他方法 NSURLSessionTask实际上提出了最初的请求 如果这是一个NSURLConnection里面一个N
  • 枚举 NSString 的最佳方法

    我正在寻找枚举 objc 对象 例如 NSString 的方法 我记得 Xcode4 版本中有一个新功能 它提供了一种新的 enum 方法 但不清楚 有人知道吗 好吧 我自己回答 我想我犯了一个错误 这就是我上面提到的新功能 typedef
  • 关系上的核心数据属性?

    我刚刚开始使用核心数据 我有一个Headache实体和一个Medication实体 头痛和药物之间存在多对多的关系 当您加重头痛时 您可以选择多种药物 我希望能够指定这些药物的数量 我对 MySQL 更熟悉 您可以在其中创建一个数据透视表
  • ios7 绘图时出现延迟

    我有一个应用程序 在其中我正在视图上绘制一些草图 到目前为止 在我安装之前它运行良好ios7 我的应用程序使用触摸移动方法来识别运动的变化 但是当我画一条线时 触摸方法被调用 但线不会更新 直到我触摸结束ios7 所以画起来有一点点滞后 它
  • Swift:转义闭包捕获非转义参数“onCompletion”

    我的 swift 有问题 我正在尝试发送 API 请求 然后检索数据 但收到以下错误消息 Swift 转义闭包捕获非转义参数 onCompletion 有谁知道我该如何解决这个问题 提前致谢 Code class RestApiManage
  • 如何使用 Expo 播放 Youtube 视频

    我正在尝试使用反应本机 YouTube 组件 https github com inProgress team react native youtube在我的世博项目中 但是 我无法让它发挥作用 到目前为止 我所拥有的只是带有红色边框的黑屏
  • 在React-native中,如何更改NavigatorIOS的样式

    在react native中 如何更改NavigatorIOS的样式 例如背景颜色 谢谢你 var speedNews React createClass render function return
  • CF 类型的带有 __attribute__((NSObject)) 的强 @property 不会保留

    更新 自 Xcode 4 6 起 此问题已得到修复 现在 这项技术再次按预期发挥作用 但是 在代码中使用之前 请务必阅读 Rob Napier 出色答案顶部的注释 原帖 ARC Xcode 4 3 1 iOS 5 1 我有一个 CF 类型
  • VNFaceObservation BoundingBox 在纵向模式下不缩放

    作为参考 这源于一个问题视觉API 我正在努力使用Vision通过a检测图像中的人脸VNDetectFaceRectanglesRequest 它在确定图像中正确的人脸数量并提供boundingBox对于每张脸 我的麻烦是由于我UIImag

随机推荐

  • 如何使用 SQL 命令在 SQL Server 2005 中打印给定日期编号的日期名称?

    我希望能够传递日期数字 如 1 2 3 或 7 它将返回日期名称 如星期日 星期一 星期二或星期六 我知道可以选择使用case语句 但我想使用 SQL 命令来执行此操作 这可能吗 DECLARE m VARCHAR SET m 1 SELE
  • 更改 Xamarin.Forms 中背景图像的纵横比,同时保持内容居中

    在 Xamarin Forms 中 我有一个页面 其中包含一个 Picker 控件和一个 TextBox 对于该页面 我想显示背景图像 我的问题是 没有专有的方法可以在 Xamarin Forms 中设置页面背景图像的纵横比 初始代码如下所
  • openmp g++ 错误:折叠循环未完美嵌套

    我尝试编译 include
  • 如何在matlab中格式化带有前导零的整数值?

    我想通过添加前导零来格式化整数值并将其显示为字符串 例如 我有3我想将其显示为003 我想用matlab来做 Use sprintf aa sprintf 03d 3 aa will be 003 注意aa这里有一个string 看看它的文
  • 使用 jQuery 获取元素的类列表

    jQuery 中有没有一种方法可以循环遍历或将分配给元素的所有类分配给数组 ex div class Lorem ipsum dolor spec sit amet Hello World div 我将寻找一个 特殊 课程 如上面的 dol
  • SignalR 事件在部署到服务器时变得间歇性

    当通过 VS IIS Express 在本地运行时 一切正常 100 然后 当我发布到网络服务器 在网络上或在线上 时 我有一些事件因 OnConnected 而停止触发 但并非总是如此 如果我刷新它可能会触发 也可能不会 有问题的事件是
  • VBA PowerPoint 在线指南以及如何录制宏

    谁能给我推荐一本好的 PowerPoint VBA 在线指南 另外 有人对如何在 PowerPoint 中录制宏有建议吗 Microsoft 从 PowerPoint 2007 中删除了宏录制器 要查看对象的结构 请在对象中使用 Watch
  • 如何用 PHP 或 JS 删除换行符

    我已经尝试了一切来删除一些多余的 n我正在使用的网络应用程序中的字符 我希望有人以前遇到过这个问题并且知道是什么原因造成的 我所有的 JS 和 PHP 文件都是 UTF 8 编码 没有 BOM 是的 我尝试过类似的事情 In JS text
  • 如何将货币格式的文本转换为 Double 值或 NSNumber 值?

    我想将货币转换为双倍值 在我的应用程序中 我有一个显示货币的文本字段 例如 1 234 567 00 美元 我可以通过子字符串轻松删除 符号 但是有没有任何 Formatter 样式可以使其成为 Double 呢 其实当我在做的时候 var
  • 使用 jQuery 查找元素的类型

    在 jQuery 中 如果我有一个元素的引用 我如何确定它是什么类型的元素 例如 输入或下拉列表 有什么办法可以查到吗 复制 如何确定 jQuery 中匹配元素的元素类型 如果元素是输入 则以下内容将返回 true elementId is
  • 短信收件箱 - 列表视图

    您好 我正在尝试创建 SMS 应用程序 女巫在 ListView 中向我显示 SMS 收件箱 但是 如果我打开此应用程序 则没有任何操作 我只能看到带有应用程序名称的黑屏 有人可以检查我的源代码并告诉我在哪里吗 有什么问题吗 谢谢 有源代码
  • 如何检测来自 CNAME 子域的传入请求(使用 PHP 脚本)?

    我们有一个简单的基于 php 的重定向应用程序 这是一个例子 Spiderman com redirection redirect to marvel php 脚本位于 redirection 文件夹中 假设它将上述链接重定向到 marve
  • mysql和DECIMAL存储空间?

    根据我对手册的理解DECIMAL在 mysql 文档中 它指出九个数字的每个倍数需要 4 个字节 其余数字如下 number of digits leftover bytes 0 0 1 1 2 1 3 2 4 2 5 3 6 3 7 4
  • 对与另一个数组相关的数组进行排序

    我有两个数组 x and y 其中 y 是中每个元素的十位值x 现在我想排序y 但是 顺序y将不同于x的 所以 在对哪个元素进行排序后我无法判断y例如 与x 0 也许我想要 双重排序 Array Sort has 超载接受two数组 一份用
  • 更新 MySQL 中的列

    我有一张桌子table1三列和一堆行 key col col a col b 我想用一组值更新 col a 即离开col b不变 像这样 INSERT INTO table1 AS t1 key col col a VALUES k1 fo
  • 将两个 UISplitViewController 子控制器保留在第一响应者链中

    我有一个基于文档的应用程序 其中 NSSplitViewController 作为主窗口的内容视图控制器 左窗格包含带有控制器的自定义视图 该控制器实现一些菜单命令 右窗格包含一个带有控制器的标准 NSTableView 当应用程序启动时
  • 基于 Eclipse JSDT 的编辑器的内容辅助

    在 Eclipse 中 内容辅助通常由某个类实现implements IContentAssistProcessor JavaDoc example 如何实现同样的CompletionProposals 用于基于 JSDT 的编辑器 我知道
  • 如何在整个应用程序中禁用 iOS 11 拖动?

    出于安全原因 我想在整个应用程序中禁用新的 iOS 11 拖放功能 更具体地说是拖动部分 在 iOS 11 中 默认情况下 所有可以选择文本的地方 弹出窗口 文本视图 网页视图等 的文本都会发生这种情况 我不知道有什么方法可以完全禁用拖动功
  • 使用提交消息中的主题标签在 Jenkins/Hudson 中触发构建

    仅当提交消息中出现特定字符串时 是否可以触发 Hudson Jenkins 构建 例如 我想触发一个构建 通过编写如下提交消息来将我的应用程序推出到开发环境 MYPROJECT 123 修复了 MyClass java 中的 NPE 部署
  • 如何检测 iOS 应用程序是否已重新安装(从 XCode)或升级(从 AppStore)

    我们正在开发的应用程序使用应用程序包中包含的二进制文件 由于需要处理该文件 并且在某些情况下需要重写该文件 因此应用程序会在首次启动时或每当应用程序支持中缺少该文件时 都会将此文件复制到 库 应用程序支持 目录中 然后 应用程序每次启动时都