Xcode 9.3中用于64位支持的新工具

支持32位应用程序且毫不妥协的最新macOS版本是macOS High Sierra。 通过在Xcode 9.3 beta中使用新的诊断工具并在macOS 10.13.4 beta中进行测试,确保您的应用程序的未来版本兼容64位。 默认情况下,此版本的Xcode还会构建64位应用程序。

支持的配置

Xcode 9.3 beta需要运行macOS 10.13.2或更高版本的Mac。
Xcode 9.3 Beta包括适用于iOS 11.3,watchOS 4.3,macOS 10.13.4和tvOS 11.3的SDK。

弃用macOS 32位支持

为了为将来的macOS版本做准备,在该版本中32位软件将不再运行而不会受到损害,从macOS High Sierra 10.13.4开始,将向用户通知启动依赖于32位软件的应用程序。 该警报在每个应用程序中仅出现一次。 开发人员可以在macOS 10.13.4中使用新的64位测试模式来测试软件的64位兼容性。 注意:强烈建议仅由开发人员或经验丰富的IT管理员启用此模式。

要启用64位模式:

  1. 启动终端
  2. 执行以下命令:sudo nvram boot-args =”-no32exec”
  3. 重新启动机器

64位测试模式可防止启动32位进程。 启动依赖于32位软件的应用程序会导致通知该应用程序无法打开。 其他类型的软件可能会无提示地失败,例如32位版本的Dashboard和WebKit插件,首选项窗格和后台进程。 一旦软件更新为以64位工作,请禁用测试模式。

要禁用测试模式:

  1. 启动终端
  2. 执行以下命令:sudo nvram boot-args =“”
  3. 重新启动机器

Swift和Apple LLVM编译器

  • 现在,导入到Swift中时,带有以添加或删除开头的选择器的Objective-C方法将被统一命名。 以前,可以通过使用或不使用添加或删除后名称的一部分来不确定性地命名每次出现相同选择器的情况,
  • 例如导入addThing:作为add( 🙂或addThing( 🙂
  • 在Objective-C协议上具有相同选择器的类和实例方法都
    在实现该协议的类上可调用。

Swift编译器

  • 从命令行运行swiftc时,默认部署目标设置为当前正在运行的OS的版本。
  • 如果调用上下文也标记为不可用,则允许调用不可用的函数。 这简化了可以在启用和不启用应用程序扩展限制的情况下编译的代码。
  • 编译器现在警告更多非独占内存访问的情况。 这些内容在Swift 4.1编译器中显示为警告,并且在将来的编译器版本中可能会成为所有语言模式的错误。

例如,编译器现在警告对变量“值”的重叠访问:

var value = 7 withUnsafeMutablePointer(to: &value) { $0.pointee = value + 1 } 

避免警告的一种方法是在将本地变量作为inout传递之前对其进行复制:

 var value = 7 let valueCopy = value withUnsafeMutablePointer(to: &value) { $0.pointee = valueCopy + 1 } 

另一种方法是使用闭包参数而不是捕获变量来引用变量:

 var value = 7 withUnsafeMutablePointer(to: &value) { $0.pointee = $0.pointee + 1 } 

xcode 9.3中的开发人员工具

访问其他开发人员工具

要启动其他开发人员工具,例如Instruments和FileMerge,请启动Xcode-beta并选择Xcode> Open Developer Tool。 您可以将这些其他工具保留在Dock中,以便在Xcode未运行时直接访问。

技术支持和学习资源

Apple提供以下Web资源以支持您使用Xcode进行开发:

  • 苹果开发者论坛。 参与有关为Apple平台进行开发和使用开发人员工具的讨论。
  • 错误记者。 向苹果报告问题,增强要求和反馈。 提供详细信息,包括系统和开发人员工具的版本信息,以及所有相关的崩溃日志或控制台消息。
  • Apple Developer网站。 获取最新的开发信息以及技术
    Xcode文档。
  • Xcode主页。 获取有关最新版本Xcode的高级信息。 下载
    当前和beta Xcode版本。
  • 有关使用Xcode的帮助,请通过选择“帮助”>“ Xcode帮助”来使用内置帮助。

参考 苹果更新