作者的三个知识集合

相同知识集合的来源

Xcode 11的官方版本比预期的晚了一点,不过没关系,Release Note文档和beta版相比没有太大变化。我们已经整理了译文,并已发出供您参考。内容比较多,有些地方翻译不到位,建议收藏起来,对照英文慢慢看。

内容有问题可以在留言区留言,让大家看到问题。在此谢谢。

General

Xcode 11支持使用SwiftUI进行开发

注意:只有在macOS Catalina 10.15上运行Xcode时,SwiftUI预览和检查器才可用。

Xcode 11增加了对Mac Catalyst的支持,可以把iPad应用带到Mac。

注意:只有当Xcode在macOS Catalina 10.15上运行时,才能将iPad应用程序配置为构建为Macs,而My Mac不能在早期版本的macOS上运行。

现在,您可以独立于系统外观设置来更改Xcode的外观。

Xcode支持使用xcodebuild或xcrun altool从管理器窗口或命令行上传应用程序。Xcode不再包含应用程序加载器。

当启动Xcode中嵌入的仪器和模拟器等工具时,MAC OS上的启动服务将遵循选定的Xcode。例如,当您在Finder中双击乐器时,将会启动与所选Xcode对应的乐器版本。

苹果叮当编译器

Clang现在提供了一个机制来控制析构函数在退出时的注册。您可以使用flag-fno-c++-static-析构函数全局禁用它们,也可以通过应用属性]禁用特定变量的析构函数。当使用-fno-c++静态析构函数时,还会添加属性],以启用特定变量的析构函数。

作为扩展,现在所有的语言模型都支持带有固定基类型的C++ 11枚举。

默认情况下,所有平台都启用堆栈检查,以防止内存问题。

机器码轮廓默认为-Oz。它通过跨函数识别相同的代码序列来减少代码大小。这些序列被封装在一个编译器生成的函数中。每个原始代码序列都通过调用概述函数来替换。

为了提高性能和安全性,静态链接器现在将标记为常量的全局变量移动到一个新的段:DATA_CONST。这些全局变量可能包含编译器生成的指针,动态链接器需要在加载过程中修复这些指针,但在其他情况下是常量,例如vtable和显式声明的常量指针。一旦dyld完成图像加载,它会将__DATA_CONST设置为只读。这种变化不会影响性能良好的代码,但它可能会破坏依赖于未定义行为的代码,例如使用类型来编写声明为const的指针。

static intvalue 1 = 0;//存储在__DATA中

static int value 2 = 0;//存储在__DATA中

const int * ConstValueptr = & value 1;//存储在__DATA_CONST中

//错误:试图将值存储到常量指针

注意:iPhone-手表对必须在同一个2.4 GHz网络上。您不能使用不允许点对点的网络。

断点的VoiceOver操作菜单包括跳转到相应代码行的操作。

调试带有约束的视图时,在“大小”检查器中双击约束会在编辑器中选择约束,并在检查器中显示约束信息。

lldb的Python脚本现在基于Python 3。如果您使用的是与Python 3不兼容的Python扩展,那么它们就会中断。为了帮助完成转换,您可以通过设置默认值来运行Python 2模式:

默认值写入com . apple . dt . lldbdefaultpyconversion 2

对Python 2的支持将在未来被移除。

Swiftns十进制值在LLDB中有一个数据格式化程序,使它们以可读的方式显示。

放弃使用

IOs SDK中不再包含WatchKit框架。如果在iOS中使用WatchKit API,则需要删除此类操作。WatchKit框架在watchOS上仍然可用。

macOS中包含脚本语言运行时,以便与旧软件兼容。在未来版本的macOS中,脚本语言运行时默认不可用,您可能需要安装其他软件包。如果您的软件依赖脚本语言,建议您在应用程序中捆绑运行时。

不推荐Python 2.7。此版本包含在macOS中,以便与旧版本的软件兼容。未来版本的macOS不会包含Python 2.7。相反,建议您在终端中运行python3。

自macOS 10.15以来,Quartz Composer框架已被标记为不推荐使用,但出于兼容性目的,它仍然存在。如果您的应用程序使用Quartz Composer,请切换到一个框架,如核心图像、场景或金属。

工具

仪器现在允许一次从一个表中复制多行。

Instruments允许您在跟踪文档中创建更容易导航的范围。

界面构建器

界面构建器支持iOS 13 UIVisualEffectView模糊和生动的视觉效果。

界面构建器支持iOS 13 UIActivityIndicatorView风格。

Ios家用led颜色现已适应浅色和深色画布外观。

界面构建器支持自定义UIButton符号配置。

界面构建器支持苹果电视上的新布局电视集合视图全屏布局。

uiviewcontroller实例现在默认为自动模式呈现模式。模态演示程序可以覆盖这个设置。

界面构建器支持iOS上的暗模式。

界面构建器的设备栏可以让你在iOS应用的亮暗外观之间切换。

您可以添加一个SwiftUI主控制器,如UIHostingController,以将故事板控制器流连接到管理SwiftUI视图层次结构的主控制器。您可以通过提供一个自定义子类来以编程方式设置控制器的根视图,从而在接口生成器中填充托管控制器的内容。

您也可以使用“分段操作”来设置用户主机控制器或系统控制器的根视图。

对象库现在与选定的系统级外观相匹配。

NSStackView检查器现在允许您配置负间距。

在macOS 10.15上运行时可以使用NSSwitch。

现在可以使用画布中的“自动布局约束”视图来调整单元格的大小。要选择现有表格视图的行为,请在“大小”检查器中启用表格视图的估计项目大小的自动设置和单元格高度的自动设置。

在大小检查器中,nsview和UIView有布局模式选项,可以明确选择“将自动调整大小的遮罩转换为约束”。默认设置为自动,这是一种现有行为。自动意味着当视图受故事板或中的约束影响时,“将自动调整蒙版大小转换为约束”关闭。xib文件,但如果不受约束,则为on。

添加缺失约束提高了自动布局约束生成的可靠性。

一旦它的子视图被自动布局约束完全约束,UIScrollView的内容就可以在画布中滚动。

现在,UICollectionView中的单元格可以使用画布中的自动布局约束视图来调整自己。要选择现有集合视图的行为,请在“大小”检查器中启用集合视图估计大小的自动设置和单元格大小的自动设置。如果在iOS 13之前部署,可以通过调用performBatchUpdates:completion:在viewDidLoad期间激活自调整大小的集合视图单元。

在检查器字体弹出窗口中,“系列”弹出窗口现在将菜单项显示为适用字体的预览。

您现在可以对文档范围内放错位置的框架执行“更新框架”操作,而无需选择视图。

Uiscrollview支持内容和框架布局指南,可以在大小检查器中启用,以更好地控制可滚动内容。

界面构建器支持新的苹果电视标签栏样式。

新的WKInterfaceTextField接口元素可用于watchOS。

Canvas支持定制Mac Catalyst应用程序的界面。

SF符号在图像检查器属性中可用。

uiimageview检查器包括对配置符号的支持。

用新的@IBSegueAction属性注释的视图控制器方法可以用来在代码中创建segue的目标视图控制器,使用带有任何所需值的自定义初始值设定项。这使得在故事板中使用具有非可选初始化要求的视图控制器成为可能。创建一个从segu e到源视图控制器上的@IBSegueAction方法的连接。在支持Segue Actions的新操作系统版本上,将调用此方法,它返回的值将是传递给prepareForSegue:sender:的Segue对象的destinationViewController。您可以在单个源视图控制器上定义多个@IBSegueAction方法,这可以减少在prepareForSegue:sender:中检查segue标识符字符串的需要。

IBSegueAction方法最多需要三个参数:编码者、发送者和segue的标识符。第一个参数是必需的,如果需要,可以从方法的签名中省略其他参数。NSCoder必须传递给目标视图控制器的初始化器,以确保NSCoder是用故事板中配置的值定制的。该方法返回一个与故事板中定义的目标控制器类型匹配的视图控制器,或者返回nil以使用标准init方法初始化目标控制器。如果你知道你不需要返回零,返回类型可以是非可选的。

在Swift中,添加@IBSegueAction属性:

@IBSegueAction

funcmakeDogController->;视图控制器?{

PetController

}

在目标-C中,在返回类型之前添加IBSegueAction:

-makeDogController:编码器

发件人:发件人

segueIdentifier:segueIdentifier

{

返回;

}

已解决的问题

“连接到源弹出窗口”字段支持剪切、复制、粘贴和全选。

在设计或运行macOS时,已更正了UILabel、UITextField和UITextView实例的对齐方式,并且在接口生成器中将对齐方式设置为“居中”或“右对齐”。

ui日期选择器的检查器现在只显示应用于所选模式的属性。

用于添加iOS设备的预览编辑器菜单现在与当前画布方向相匹配。

预览编辑器项目现在保留已配置的区域设置或伪语言设置。

在接口生成器中配置为递减计数的UIDatePicker对象现在在运行时使用指定的持续时间。

您还可以在不使用自动布局的文档中看到“嵌入”按钮。

nscontrol的子类现在在库和文档大纲中有唯一的图标。

修复了iOS 13.0之前部署的XIB文件中的系统颜色无法适应系统运行时的外观的问题。

本地化

现在,您可以在资产目录中本地化资源。在属性检查器中启用本地化。

设置包现在包含在Xcode本地化目录中。

Genstrings的手册页更详细地记录了它的行为。

Genstrings工具已经得到增强,并与extractLocStrings工具合并。以前的版本已被弃用并重命名为ogenstrings。现在必须用xcrun调用。任何调用xcrun extractLocStrings的脚本都应该改为使用genstrings,但是目前有一个用于调用genstrings的兼容符号链接。

genstrings工具现在接受-encoding参数,允许您指定输入文件的文件编码。

genstrings的更新版本改进了错误报告,并可能在以前默默接受的方案中报告错误。例如,如果MyApp目录包含子目录,则genstrings MyApp/*将失败,因为genstrings文件参数必须是源文件。

genstrings工具现在可以使用任意数量的-s参数来指定其他宏,如NSLocalizedString或从它们提取字符串的函数。例如,genstrings-s myerroring-s myuistringMyFile . swift将MyErrorString和Myuistring视为相当于NSLocalizedString。

注意:使用-s参数不会禁止对NSLocalizedString或CFCopyLocalizedString的支持。

本地化命令和根字符串导出工具现在支持多行Swift和Objective字符串,并在识别NSLocalizedString的参数时放宽空的要求。

“导出为本地化”命令的性能得到了显著提高。

组织者

新的度量管理器显示应用程序的电池寿命和性能分析,以帮助您推动优化。在App Store上发布并在现场充分使用后,会为您的应用报告指标。可用指标包括电池消耗、启动时间、挂起率、内存和磁盘写入。您可以按设备和使用特征过滤数据。

操场

支持游乐场中的SwiftUI实时视图和内联结果。

已解决的问题

如果您的代码引用了主线程的视图,Playgrounds将不会再次崩溃。

项目导航器

Xcode可以使用“查找导航器”在工作区或项目中查找资产。资产目录编辑器还支持查找和替换,您可以通过替换来重命名资产。

现实作曲家

增强现实场景中增加了对象锚的支持。

已解决的问题

其他场景的通知触发和通知操作不再出现在未写场景中。

服务器

Xcode服务器现在支持Mac Catalyst应用。

已解决的问题

解决了Xcode服务器无法使用iCloud、应用程序组、苹果支付或钱包功能自动签名的问题。

签名并发布

签名和功能设置现已合并到新的签名&:功能选项卡上。新选项卡允许在多个构建配置中使用不同的应用程序功能。新的函数库可以搜索可用的函数。

Xcode 11支持新的Apple Development和Apple Distribution证书类型。这些证书支持在任何苹果平台上构建、运行和分发应用程序。先前存在的iOS和macOS开发和分发证书仍然有效,但是您在Xcode 11中创建的新证书使用了新类型。Xcode的早期版本不支持这些证书。

已解决的问题

解决了上传到应用商店时Xcode错误报告的问题:“团队没有itunes连接访问权限”。

模拟器

模拟器可以根据当前电源自动选择macOS GPU。当您的苹果电脑连接到交流电源时,将使用单独的图形处理器。当你的苹果电脑由电池供电时,它将使用集成的GPU。您可以使用文件>:GPU选择来更改模拟器中的策略。

Simctl现在可以覆盖iOS设备的状态栏值。例如,要设置时间和电池,请使用:

xcrun simctl状态栏<。设备>超控时间“9:41”-测试充电-电池等级100

有关所有选项,请参见xcrun simctl帮助状态栏。

在macOS 10.15上运行时,金属可以在iOS 13和tvOS 13模拟器中使用。金属代码在主机Mac GPU上执行,明显比模拟OpenGL代码快。SceneKit、CoreAnimation和其他系统框架中的API抽象出了GPU之间的许多差异,从而减少了对设备特定代码的需求。模拟器运行在早期版本的macOS上,或者在金属不可用的环境中,继续使用软件渲染的OpenGL。如果您的苹果电脑有多个图形处理器,使用模拟器中的文件菜单选择要使用的图形处理器。如果正在使用的GPU变得不可用,任何使用它的仿真器都将自动关闭。

默认情况下,Xcode不再创建所有可用的iOS模拟器设备。相反,创建一组最常用的设备。要创建其他设备或设备的多个实例,请打开“设备”窗口,选择模拟器,单击“+”按钮,输入名称,然后选择相关的设备类型和操作系统版本。在终端中,执行xcrun sim CTL创建

Cametallayer可以用在iOS 13和tvOS 13模拟器中。

Ios 13、watchOS 6和tvOS 13模拟器现在有一个dyld共享缓存。这可以缩短模拟器的启动时间,并减少模拟器进程使用的打开文件句柄的数量。

注意:丢失符号崩溃现在可能会提到共享缓存,但这不是共享缓存错误。此消息仅告诉您在搜索符号时查询了共享缓存。

Simctl现在接受运行时名称的短别名。这意味着您可以使用simctl create'iPhone X'iOS13等命令来创建新的iPhone X模拟器。

对于无头和连续的集成方案,您可以通过将DefaultWritecom . apple . Core Simulator FrameBufferserverrender PoLicy设置为none来配置CoreSimulator以跳过虚拟帧缓冲区中的合成操作。在这种模式下,模拟器无法查看,simctl io无法捕捉截图或录制视频。

没有CFBundleVersion的包是无效的,不能正确安装在设备或模拟器上。CoreSimulator现在可以使用更清晰的错误消息在过程的早期检查和拒绝这样的包包。

模拟器dock图标现在包含一个菜单来快速启动模拟器。

模拟器的文件菜单现在包含一个GPU选择菜单,用于控制在模拟器中使用哪个GPU Metal支持,并通过模拟器的虚拟帧缓冲区进行合成。如果选中“可用时使用外部图形处理器”项目,则在连接外部图形处理器后启动的任何模拟器都将使用外部图形处理器。如果外部GPU断开连接,任何使用它的仿真器都会自动关闭。对这些设置的更改仅在启动模拟器时生效。更改此设置时启动的模拟器将继续使用以前选择的图形处理器,直到它们重新启动。

已解决的问题

Iosurface现在可以用于iOS 13、watchOS 6和tvOS 13模拟器。

不再在模拟器中自动播放音频的应用程序也会打开麦克风进行输入。

simctl列表JSON输出中以前不推荐使用的可用性字段将被删除。使用isAvailable布尔字段来确定可用性。

修正了一个问题,即如果启用了自动剪贴板同步,在其他应用程序中进行剪贴板相关的操作后,模拟器可能会崩溃或变得没有响应。

在Safari中播放视频时更改模拟设备中的音频不会使视频的音频静音。

代码编辑区

现在,金属着色语言支持语义高亮、代码完成、实时提问、符号搜索和跳转定义。

您可以在源代码编辑器中查看内联代码差异,通过单击源代码管理更改栏并选择显示或隐藏更改来查找更改。

增加了新的高对比度主题和高对比度主题。还为标记、类型声明和其他声明添加了新的设置。

在Swift文件的声明中添加了特殊的语法颜色,可以在首选项>:字体& amp要定制的颜色。不支持C系列语言的声明式着色。

Xcode的源代码编辑器现在支持拼写检查。

Xcode 11的源代码编辑器引入了这个文件的迷你图。迷你地图包括清晰的文本标记:,突出显示的错误和警告行,源代码管理的变化,断点和突出显示的搜索结果。迷你地图在默认情况下是启用的,可以由编辑器关闭。

语法突出显示,标签添加到文档注释和操场标签。你可以点击首选项>:字体& amp在“颜色”中自定义字体,然后单击首选项>:文本编辑>;在显示中自定义分隔符外观。

切换注释支持多光标。

当您拖放文本时,会在行间打开一个空白色区域,这样更容易看到文本被删除的位置。Xcode仅允许在拖动整行时在其他行之间拖放。

1.《xcode Xcode 11 的那些新东西》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《xcode Xcode 11 的那些新东西》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1777812.html