0

我是应用程序和 Xcode 的更新/版本控制过程的新手,所以这里有几个问题:

我创建了应用程序,并获得了在旧 xcode 和模拟器 5.1 中运行的苹果的批准。我没有任何警告信息。现在在新的 xcode 和模拟器 6.0 中运行时,我收到 20 多条新的警告消息。

Apple 是否希望在任何版本的任何版本中都没有警告?我需要修复所有警告还是只修复某些警告?(即我的应用程序文件与我包含/导入应用程序的外部第 3 方框架/库)为此版本 6.0 修复它们可能会因旧版本而中断,对吗?该应用程序是使用 5.1 的目标创建的,但想将其移回 4.3(更多用户覆盖),我只能在模拟器上进行测试,可以吗?

以下是一些示例警告: - JSONKit.m - 语义问题 - 直接访问 Objective-c 的 isa 已被弃用,取而代之的是 object_setClass() 和 object_getClass() - 许多类型,如 - 格式说明类型为“无符号长”,但参数有type 'NSUInteger' (aka 'unsigned int') - Cocoa API 问题 - 使用带有文字的'stringWithString:' 是多余的

谢谢您的帮助。

4

3 回答 3

3

Apple 不知道您在编译代码时收到了哪些警告。他们所看到的只是一个签名的二进制文件,一个可以工作(批准)或不工作(拒绝)的二进制文件。

你为什么现在得到它们?因为新版本的 Xcode 具有更好的启发式检查可疑代码。弃用警告是因为您现在使用更新版本的 iOS 作为目标。

你应该修理它们吗?大概。我确实发布了带有编译警告的代码,但您需要考虑不根据具体情况修复警告的风险。有些比其他的更重要或更危险。

于 2012-09-27T12:17:54.503 回答
1

约定是编译器生成错误和警告。

错误是阻止编译器解析源代码和生成代码的致命问题。

编译器警告是关于潜在问题,这些问题不会阻止编译成功,但可能会导致运行时出现问题,或者标记您应该注意的问题。

您应该了解每个警告所描述的问题,并决定是否采取措施。

具体来说,弃用警告是一个“提示”,即未来版本的 iOS(或库或其他)可能不再支持您正在使用的 API,是时候考虑迁移到新的 API,或者删除依赖于该 API 的代码。

通常,可以安全地忽略警告,但最好的做法是保持代码中没有警告,以便任何新警告都很明显,并引起您的注意。

Apple 不会根据编译警告拒绝应用程序。Apple 只能看到提交的二进制文件,无权访问源代码和任何相关警告。

于 2012-09-27T12:23:54.143 回答
0

在使用 JSONKit 的情况下,我建议将您的代码包装在一个适配器类周围,以便您可以将 NSJSONSerialization 用于高于或等于 5.0 的版本。

iOS 版本低于 5.0 的用户群有多大?我读到它不到1%?

于 2012-09-27T12:20:53.507 回答