与.ipa相比,从XCode运行时,App的行为会有所不同

时间:2013-05-17 21:48:10

标签: ios xcode ipa

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

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

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:4)

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

据我所知,

Fastest, Smallest [-Os]以某种方式更严格地发布弱引用。

答案 2 :(得分:0)

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

Build Settings for Run Scheme

Build Settings for Archive Scheme

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