发布的应用程序的行为与相同设备上的调试二进制文件不同

Posted

技术标签:

【中文标题】发布的应用程序的行为与相同设备上的调试二进制文件不同【英文标题】:Released app behaves differently from debug binary on same devices 【发布时间】:2015-08-19 08:53:11 【问题描述】:

我的应用刚刚获得 Apple 的批准,但它的行为与我在同一设备上以调试模式运行时不同。

我怀疑自从 Apple 最近提出 64 位要求以来,从 32 位到 64 位数据类型的转换出现了一些问题,但除了在实际的 32 位和 64 位上运行应用程序之外,我不知道如何测试这一点位设备!

在这种情况下,从图像中采样颜色时会发生一些奇怪的事情,结果颜色过去是浮点数,现在是 CGFloat。但如前所述,它在调试时可以在所有设备上完美运行,但在“官方”应用商店批准的二进制文件中运行良好。

如何测试?还是我必须通过反复试验来做到这一点?

【问题讨论】:

在实际设备中尝试 AdHoc 分发和测试。 AdHoc 具有相同的发布配置 还要检查你没有为调试版本定义任何调试宏.. 【参考方案1】:

回答我自己的问题,以下是测试您提交给 Apple 的实际二进制文件的方法:

    构建和归档您的项目 从存档窗口(您通常会将应用提交给 Apple 以供审核的窗口):将应用文件 (ipa) 导出到您的桌面 打开 iTunes 并连接您的 iDevice(注意:该设备必须注册以进行测试;如果您也可以从 XCode 中使用它,您就可以开始使用了) 在 iTunes 中将 ipa 从您的计算机拖到您的设备上并同步,以确保它实际上最终在设备上 从 iDevice 运行您的应用程序

我不确定此方法与使用“Release”构建方案从 XCode 运行应用程序之间是否存在差异,但这与运行 Apple 将收到的实际二进制文件进行审查一样接近.

【讨论】:

以上是关于发布的应用程序的行为与相同设备上的调试二进制文件不同的主要内容,如果未能解决你的问题,请参考以下文章

记录二进制文件的行为?

调试中的 identifierForVendor 行为

Xcode 在调试时失去与设备的连接

在模拟器/设备上/使用或不使用 Chrome 调试时反应本机行为不同

Flutter_TTS 包在不同设备上的行为不同

onMouseWheel在移动设备上的触摸行为-three.js