7

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

当我在设备上从 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 断开后继续工作。

4

3 回答 3

12

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

于 2013-05-17T21:54:40.523 回答
6

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

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

于 2014-05-13T14:45:36.293 回答
-1

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

运行方案的构建设置

归档方案的构建设置

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

于 2014-05-13T10:53:07.770 回答