【问题标题】:App behaves different when run from XCode compared to .ipa与 .ipa 相比,从 XCode 运行时应用程序的行为不同
【发布时间】:2013-05-13 04:12:45
【问题描述】:

我有一个非常令人费解的问题。 我的应用程序使用几个自定义按钮,这些按钮使用手势识别器来确定轻按或长按。

当我在设备上从 XCode 运行应用程序时,一切正常。但是,当我将应用程序打包到 .ipa 文件中并将其安装在同一设备上时,按钮不再起作用!任何手势都不会被识别,也不会在按下时改变状态。其他一切似乎都很好......

我测试的设备是 iPhone 5(运行 iOS 6.1.4)和 iPhone 4 & 4S(都运行 iOS 6.1.3)。我在 Max OSX 1.8.3 上使用 XCode 4.6.2。

任何想法可能导致这种非常奇怪的行为?

PS:“Xcode 生成”代码在我将其与 XCode 断开连接后继续工作。

【问题讨论】:

    标签: ios xcode ipa


    【解决方案1】:

    通常,您归档到 IPA 文件中的代码将使用与您从 XCode 运行时不同的配置。如果不查看您的项目文件或获得更多信息,我无法猜测具体出了什么问题,但我会尝试的第一件事是对您正在使用的方案进行编辑方案并比较用于运行的构建配置动作和存档动作。

    【讨论】:

    • 哇,破解了。当我更改存档的构建配置以调试生成的 .ipa 开始工作!现在我要做的就是找出差异和罪魁祸首!
    • @Deddiekoel 您不想对发送给 Apple 的构建使用调试。你肯定想要一个发布版本。
    • @rmaddy 不会将其发送给 Apple,但我现在知道原因了!
    • 哇,我几天前添加了编辑方案,完全忘记了它。感谢您的回答。
    【解决方案2】:

    可能是优化级别!您可能使用 Fastest, Smallest [-Os] 构建 AdHoc 构建。请参阅构建设置中的优化级别。使用Fastest, Smallest [-Os] 构建您的调试,然后您可以看到您的不当行为,以便您修复它,并且仍以首选的优化方式提交应用程序(使用发布配置)。

    Fastest, Smallest [-Os] 以某种方式更严格地释放弱引用,据我所知。

    【讨论】:

      【解决方案3】:

      同样令人惊讶的情况发生在我身上。我在 GameStrings.h 文件中针对不同的宏定义了所有与项目相关的字符串。这些字符串是在我的 iPad 2 中的 .ipa 文件中使用它们时检测到的,但它们没有显示在屏幕上。这都是关于目标方案配置的。正如@ScorpioCurse 所说,构建和归档项目可能使用不同的构建配置,可能会出现这些类型的问题。

      只需检查这两个(构建和存档)方案是否使用相同的配置。确保这两个方案都使用相同的构建配置。

      【讨论】:

      • 两者都用于不同的目的,亲爱的。它们不能相同。存档应该使用发布配置,而运行应该使用调试。
      猜你喜欢
      • 2017-08-09
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      相关资源
      最近更新 更多