【问题标题】:Finding restricted API calls on Windows Phone 8在 Windows Phone 8 上查找受限 API 调用
【发布时间】:2013-03-06 07:50:56
【问题描述】:

我已经尝试在 Marketplace 中获得认证的 WP8 应用程序大约两个月了,但每次使用 5.1.4 代码和“每次都静默退出”错误时,它都会被反弹回来。我能想象到的唯一会导致此错误的是潜伏在我的项目或包含库中的某个地方的受限调用(即使实际上没有调用代码,只要将它放在链接库中就足以触发静默退出)。

我已经在模拟器和物理设备上对其进行了测试,它就像一个魅力。不幸的是,受限的 API 检查只发生在 Marketplace 安装的应用程序上。即使它确实崩溃了,我也有一个顶级的“未处理的异常”处理程序来连接以写入崩溃数据(在我所有的应用程序中使用)。因为它会立即崩溃,所以它永远不会弹出一条消息给我发电子邮件。

WP7 在 Store Test Kit 中有一项功能(在提交时),它可以进行静态分析以检查被禁止的调用,但现在 WP8 似乎缺少此功能。

有人知道解决这个问题的方法吗?是否有我不知道的工具来检测问题?我可以强制模拟器或我自己的物理设备向我展示检测问题以提供更多数据吗?我已经束手无策了!

【问题讨论】:

  • 可能是清单中缺少的功能。当您提交应用程序时,系统会分析您的代码并自动重新生成清单。已经有一些需要但未正确检测到的功能案例。
  • 如果它发生在提交过程中,我会怎么做?我根本无法在物理设备或模拟器上重现问题,而且 WP8 Store Test Kit 也不再验证功能。
  • 阅读了更多的地方,我可能已经找到了一种方法,至少可以通过将其发布为 beta 来查看错误。我还没有想到。
  • 好吧,通过发布测试版,我现在可以在我自己的硬件上看到问题。当然我不能调试它,我想我也不能再去iso存储了。它启动和退出如此之快,我无法想象任何应用程序代码甚至被执行。绝对不会调用错误处理程序。现在我想这只是很多试验和错误。必须有某种方法来检测正在发生的事情!

标签: windows-phone-8 marketplace


【解决方案1】:

商店测试套件还在。不过找起来有点麻烦。在 Visual Studio 的解决方案资源管理器中右键单击您的应用项目。

这似乎有点违反直觉,但是当您按照“单击下面的运行测试按钮运行自动化测试用例”时,自动化测试用例仍然会进行静态分析(.NET 和本机代码)。结果显示在“XAP 包要求”行中,如下所示。

.

您确定要记录所有异常,甚至是来自后台线程的异常吗?

现在您有一个处于测试阶段的应用程序,您应该能够(最终)在开发门户上看到崩溃日志。

【讨论】:

  • 有测试套件,但没有针对 WP8 的静态分析。对于异常,我在 App.xaml.cs 中处理 Application_UnhandledException,所以这应该是一切。问题是,当安装在 Marketplace 的应用程序使用代理中未声明的功能受限 API 时,应用程序会立即退出。即使它记录了错误,也没有关系,因为它由于即时崩溃而无法显示!我可以检查 iso 存储是否记录了错误,但它发生在认证中。我无法重新创建它。现在已经提交了大约 10 次,我在其中调整、测试和掷骰子,然后再试一次!
  • XAP 包要求肯定会进行静态分析 - 我现在正在查看一些失败 :)。
  • 提交过程没有显示它检测到了哪些功能吗?你不能只用那组功能更新你的 WMAppManifest.xml 吗?
  • 在 Store Test Kit/Automated Tests 中,它具有验证 XAP 的选项(仅文件、图标和屏幕截图)。您认为 Paul 有哪些静态分析选项?无论如何,它对我来说没有任何错误。创建 Marketplace 提交时显示的上限与我在清单中设置的一致。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 2012-12-22
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多