草庐IT

ios - 在通过 iOS App Store 更新期间,什么可能会破坏应用程序?

coder 2024-01-21 原文

我在 App Store 中遇到了一个非常奇怪且极难解决的 iPad 应用程序问题。在过去的几周内,有关该应用程序在推出新版本后不再运行的报道成倍增加。现在,我能够在一台内部新 iPad 上重现该问题,该新 iPad 从旧版本的备份中恢复,然后通过正常的 App Store 程序进行更新。

问题:虽然应用程序在通过 App Store 全新安装或通过 XCode 运行时工作正常,但在更新后它根本无法按预期工作。但是,一旦应用程序处于“损坏”状态,我什至无法通过有效的 XCode 安装新版本。在这种情况下,这可能是一件好事,因为它将帮助我解决这个问题。

我们有什么:

  • 该应用有一组 UIWebView从网页加载内容。
  • 网页加载 Javascript 框架并创建全局对象 h5可用于调用其中的方法。
  • 从这里开始,通信应用程序 -> UIWebView 是通过 [webView stringByEvaluatingJavaScriptFromString] 调用此 h5 完成的对象。

问题来了:

  • HTML 在 UIWebView 中设置正常,但如果更新应用程序,JavaScript 似乎不会执行。
  • 我可以通过 [webView stringByEvaluatingJavaScriptFromString] 运行 javascript 东西并且我能够检索呈现的 outerHTML这样只是为了找出我的<script>东西丢失,因此没有执行。

不用说,如果我通过应用商店或 XCode 进行全新安装,应用运行良好,JavaScript 已执行,没有任何问题。

到目前为止我尝试了什么:

  • 我们使用 Three20 库来实现我们的一些功能,它有一个缓存。此缓存已被清除并检查是否真的被清除。
  • 我删除了 <Application root>/Library/caches 中的所有内容
  • 而不是通过单独的请求加载 URL,然后通过 [webView loadData] 将其推送到 WebView我尝试过了
    • 使用[webView loadRequest] 直接从网络服务器加载URL
    • 转换NSDataNSString并通过 [webView loadHTMLString] 插入它
    • 有一个NSString按住 html 并将其推送到 [webView loadHTMLString]无需远程加载内容。

我有点不明白这里可能是什么原因,我想听听您对这个问题的看法。我错过了什么吗?

最佳答案

首先,我可以说我不知道​​为什么您的特定系统无法正常工作。不过,我可以提供一些我希望有用的建议。

根据你所说的,我了解到:

  1. 应用程序的版本 A 有效
  2. 全新安装版本 B 的应用程序有效
  3. 在版本 A 之上安装版本 B 可以管理应用程序。

对我来说,这表明版本 A 遗留了一些干扰版本 B 的东西 - 例如位于优先于新文件的路径中的旧文件。

我知道您说过您清理了缓存,但是系统中是否还有其他地方存储了未被清理的数据?

因此,总的来说,我建议对应用程序进行一些深入的取证,以跟踪每个版本中所有 Assets 的名称和位置,并确保它们可以被记录下来。

好处是,当您管理应用程序时,它是永久性的。这种错误比“有时”发生的错误更容易定位。

关于ios - 在通过 iOS App Store 更新期间,什么可能会破坏应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913279/

有关ios - 在通过 iOS App Store 更新期间,什么可能会破坏应用程序?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  3. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  4. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  5. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  6. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  7. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  8. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  9. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  10. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

随机推荐