<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://docs.expert-apm.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI</id>
	<title>Инструментирование элементов управления SwiftUI - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://docs.expert-apm.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI"/>
	<link rel="alternate" type="text/html" href="https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;action=history"/>
	<updated>2026-04-09T06:15:44Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=6527&amp;oldid=prev</id>
		<title>IKuznetsov в 19:30, 2 января 2025</title>
		<link rel="alternate" type="text/html" href="https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=6527&amp;oldid=prev"/>
		<updated>2025-01-02T19:30:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:30, 2 января 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''''[[Модули платформы]] / [[Модули платформы|Цифровой опыт]] / [https://docs.expert-apm.ru/index.php/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8_%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B#:~:text=%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F Мобильные приложения] / [https://docs.expert-apm.ru/index.php/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8_%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B#:~:text=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20iOS Инструментальные приложения для iOS] / Инструментирование элементов управления SwiftUI'''''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''ЕдиныйАгент для iOS версии 8.249+'''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''ЕдиныйАгент для iOS версии 8.249+'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
	<entry>
		<id>https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=5237&amp;oldid=prev</id>
		<title>IKuznetsov в 02:52, 21 декабря 2024</title>
		<link rel="alternate" type="text/html" href="https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=5237&amp;oldid=prev"/>
		<updated>2024-12-21T02:52:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 02:52, 21 декабря 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l140&quot;&gt;Строка 140:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 140:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= 7. Настройка инструментирования SwiftUI =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= 7. Настройка инструментирования SwiftUI =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.1&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Включить повтор сеанса (Session Replay) при сбоях ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.1. Исключить файлы из SwiftUI instrumentor ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Воспроизведение сеанса при сбоях может фиксировать и визуально воспроизводить действия, которые пользователь вашего приложения выполнял до того, как произошел сбой.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 7.2&lt;/del&gt;. Исключить файлы из SwiftUI instrumentor ==&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;По умолчанию, инструментатор АппОптима SwiftUI обрабатывает все файлы с расширением '''.swift''', но инструментирует только файлы, содержащие поддерживаемые элементы управления. Если необходимо, вы можете исключить определенные файлы и директории из процесса инструментирования SwiftUI.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;По умолчанию, инструментатор АппОптима SwiftUI обрабатывает все файлы с расширением '''.swift''', но инструментирует только файлы, содержащие поддерживаемые элементы управления. Если необходимо, вы можете исключить определенные файлы и директории из процесса инструментирования SwiftUI.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l164&quot;&gt;Строка 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 161:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Журнал инструментирования, доступный после каждой сборки, содержит список файлов и каталогов, которые следует исключить из инструментирования SwiftUI. Журнал инструментирования также показывает, был ли файл или каталог исключен в процессе инструментирования.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Журнал инструментирования, доступный после каждой сборки, содержит список файлов и каталогов, которые следует исключить из инструментирования SwiftUI. Журнал инструментирования также показывает, был ли файл или каталог исключен в процессе инструментирования.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3&lt;/del&gt;. Сборки симулятора инструментов ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/ins&gt;. Сборки симулятора инструментов ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Мы отключили инструментирование SwiftUI для сборок симулятора, чтобы решить [[Инструментирование элементов управления SwiftUI#%206.2.%20%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B%20%D1%81|проблему с предварительным просмотром в Xcode]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Мы отключили инструментирование SwiftUI для сборок симулятора, чтобы решить [[Инструментирование элементов управления SwiftUI#%206.2.%20%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B%20%D1%81|проблему с предварительным просмотром в Xcode]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l173&quot;&gt;Строка 173:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 170:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;true/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;true/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&lt;/del&gt;. Создание сборок для неподдерживаемых целей развертывания ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3&lt;/ins&gt;. Создание сборок для неподдерживаемых целей развертывания ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SwiftUI instrumentor генерирует код, совместимый со SwiftUI 2.0+, который работает только на устройствах с iOS 14+. Попытка создать сборки для целей развертывания iOS 13 и более ранних версий завершится ошибкой.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SwiftUI instrumentor генерирует код, совместимый со SwiftUI 2.0+, который работает только на устройствах с iOS 14+. Попытка создать сборки для целей развертывания iOS 13 и более ранних версий завершится ошибкой.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l182&quot;&gt;Строка 182:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 179:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;true/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;true/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5&lt;/del&gt;. Включить сопоставление номеров строк для проектов Objective-C ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4&lt;/ins&gt;. Включить сопоставление номеров строк для проектов Objective-C ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Отчеты о сбоях, доступные в АппОптима, не основаны на исходном коде вашего проекта. Эти отчеты основаны на измененном коде, который АппОптима генерирует во время инструментирования. Вот почему сопоставление номеров строк добавляется в ваш проект во время инструментирования, а затем передается в АппОптима при запуске приложения. В противном случае номера строк в отчетах о сбоях будут неверными.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Отчеты о сбоях, доступные в АппОптима, не основаны на исходном коде вашего проекта. Эти отчеты основаны на измененном коде, который АппОптима генерирует во время инструментирования. Вот почему сопоставление номеров строк добавляется в ваш проект во время инструментирования, а затем передается в АппОптима при запуске приложения. В противном случае номера строк в отчетах о сбоях будут неверными.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l200&quot;&gt;Строка 200:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 197:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Во время сборки, SwiftUI instrumentor заменяет часть этой строки сгенерированным сопоставлением номеров строк.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Во время сборки, SwiftUI instrumentor заменяет часть этой строки сгенерированным сопоставлением номеров строк.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;6&lt;/del&gt;. Включить автоматическую очистку журнала ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5&lt;/ins&gt;. Включить автоматическую очистку журнала ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''ЕдиныйАгент для iOS версии 8.257+'''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''ЕдиныйАгент для iOS версии 8.257+'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
	<entry>
		<id>https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=5236&amp;oldid=prev</id>
		<title>IKuznetsov в 02:52, 21 декабря 2024</title>
		<link rel="alternate" type="text/html" href="https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=5236&amp;oldid=prev"/>
		<updated>2024-12-21T02:52:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;amp;diff=5236&amp;amp;oldid=2764&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
	<entry>
		<id>https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=2764&amp;oldid=prev</id>
		<title>ENetrebin: Новая страница: «'''ЕдиныйАгент для iOS версии 8.249+'''  После инструментирования вашего мобильного приложени...»</title>
		<link rel="alternate" type="text/html" href="https://docs.expert-apm.ru/index.php?title=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_SwiftUI&amp;diff=2764&amp;oldid=prev"/>
		<updated>2023-05-18T16:55:08Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;ЕдиныйАгент для iOS версии 8.249+&amp;#039;&amp;#039;&amp;#039;  После инструментирования вашего мобильного приложени...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''ЕдиныйАгент для iOS версии 8.249+'''&lt;br /&gt;
&lt;br /&gt;
После инструментирования вашего мобильного приложения с помощью ЕдиныйАгент для iOS, вам может потребоваться также инструментировать SwiftUI-элементы вашего приложения. Эта страница содержит дополнительную информацию о том, как настроить ваш проект, обновить SwiftUI instrumentor, преодолеть некоторые известные ограничения и многое другое.&lt;br /&gt;
&lt;br /&gt;
Для инструментирования элементов управления SwiftUI, SwiftUI instrumentor добавляет дополнительный код в исходный код вашего проекта (файлы '''*.swift''') в процессе сборки. Этот код отслеживает состояние элементов пользовательского интерфейса и уведомляет ЕдиныйАгент для iOS обо всех обновлениях. После завершения процесса сборки все изменения в исходном коде вашего проекта отменяются.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|❗ '''''Важно'''''&lt;br /&gt;
&lt;br /&gt;
''Для получения подробной информации			о действиях, выполняемых SwiftUI			instrumentor, и копии			измененных файлов кода проверьте			каталог '''Ключ-АСТРОМ_instrumented'''.			SwiftUI instrumentor			создает резервные копии инструментированных			файлов и сгенерированных журналов в			формате ZIP-архива.''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 1. Требования =&lt;br /&gt;
&lt;br /&gt;
* SwiftUI	version 2.0+&lt;br /&gt;
* iOS 14+&lt;br /&gt;
* ЕдиныйАгент for	iOS&lt;br /&gt;
&lt;br /&gt;
= 2. Поддерживаемые элементы управления =&lt;br /&gt;
&lt;br /&gt;
* Button&lt;br /&gt;
* Stepper&lt;br /&gt;
* Picker&lt;br /&gt;
* Toggle&lt;br /&gt;
* Slider&lt;br /&gt;
&lt;br /&gt;
= 3. Необходимые шаги =&lt;br /&gt;
&lt;br /&gt;
# Создайте	приложение в веб-интерфейсе Ключ-АСТРОМ.&lt;br /&gt;
# Настройте	ЕдиныйАгент для своего проекта&lt;br /&gt;
# Установите	[[Инструментирование элементов управления SwiftUI#%204.1.%20%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20SwiftUI|SwiftUI	instrumentor]]&lt;br /&gt;
&lt;br /&gt;
= 4. Управление SwiftUI instrumentor =&lt;br /&gt;
&lt;br /&gt;
== 4.1. Установка SwiftUI instrumentor ==&lt;br /&gt;
Для инструментирования элементов управления SwiftUI в вашем приложении установите&lt;br /&gt;
&lt;br /&gt;
Ключ-АСТРОМ SwiftUI instrumentor. Вы можете сделать это через Homebrew или вручную.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!'''Homebrew'''&lt;br /&gt;
!'''Вручную'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
# Запустите	команду '''brew tap	Ключ-АСТРОМ/tools''',	чтобы добавить один из Ключ-АСТРОМ	taps.&lt;br /&gt;
# Запустите	команду '''brew install	DTSwiftInstrumentor''', чтобы	установить SwiftUI instrumentor.&lt;br /&gt;
# Закройте	Xcode и выполните команду '''DTSwiftInstrumentor	install &amp;lt;PROJECT.xcodeproj&amp;gt; --scheme &amp;lt;SCHEME&amp;gt; --target	&amp;lt;TARGET&amp;gt;'''.&lt;br /&gt;
|&lt;br /&gt;
# Скачайте	и распакуйте ZIP-файл, содержащий наш	SwiftUI instrumentor. Ссылка на	файл доступна в мастере мобильной	инструментации (mobile	instrumentation wizard).&lt;br /&gt;
# Создайте	папку '''.Ключ-АСТРОМ''' в корне вашего проекта	- на том же уровне, что и файл '''*.xcodeproj'''.&lt;br /&gt;
&lt;br /&gt;
❗ '''''Важно'''''&lt;br /&gt;
&lt;br /&gt;
Если вы получаете системное предупреждение о том, что вы не можете создать папку с именем, начинающимся с точки, выполните одно из следующих действий:&lt;br /&gt;
&lt;br /&gt;
* В терминале	запустите команду '''mkdir .Ключ-АСТРОМ''' в корне	проекта, чтобы создать папку '''.Ключ-АСТРОМ'''.&lt;br /&gt;
* В терминале	запустите команду '''defaults write com.apple.finder	AppleShowAllFiles true''' и '''killall Finder''', чтобы	показать скрытые папки и файлы. Затем	в Finder создайте папку '''.Ключ-АСТРОМ'''.&lt;br /&gt;
&lt;br /&gt;
Вы также можете выполнить команду '''defaults write com.apple.finder AppleShowAllFiles false''' и '''killall Finder''', чтобы снова скрыть скрытые папки и файлы.&lt;br /&gt;
&lt;br /&gt;
3. Скопируйте	загруженный '''DTSwiftInstrumentor'''	в папку '''.Ключ-АСТРОМ''' и	убедитесь, что файл можно выполнить	(executable).&lt;br /&gt;
&lt;br /&gt;
4. Выйдите	из Xcode и выполните команду	'''.Ключ-АСТРОМ/DTSwiftInstrumentor install	&amp;lt;PROJECT.xcodeproj&amp;gt; --scheme &amp;lt;SCHEME&amp;gt; --target &amp;lt;TARGET&amp;gt;'''.&lt;br /&gt;
|}&lt;br /&gt;
❗ '''''Важно'''''&lt;br /&gt;
&lt;br /&gt;
Если при реализации возникнет ошибка, проверьте журнал сборки Xcode или журнал инструментации для получения подробной информации об ошибке. Дополнительные подсказки см. в разделе [[Инструментирование элементов управления SwiftUI#%208.%20%D0%A3%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B5%D0%BF%D0%BE%D0%BB%D0%B0%D0%B4%D0%BE%D0%BA|Устранение неполадок]].&lt;br /&gt;
&lt;br /&gt;
При сборке вашего приложения используйте схему, которую вы инструментировали.&lt;br /&gt;
&lt;br /&gt;
== 4.2. Обновление SwiftUI instrumentor ==&lt;br /&gt;
Когда новая версия SwiftUI будет доступна, вы сможете обновить ее через Homebrew или вручную.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Homebrew'''&lt;br /&gt;
!'''Вручную'''&lt;br /&gt;
|-&lt;br /&gt;
|Как только новая версия инструмента будет выпущена, она будет загружаться через добавленный tap. Чтобы обновить SwiftUI instrumentor, запустите команды '''brew update''' и '''brew upgrade DTSwiftInstrumentor'''.&lt;br /&gt;
|&lt;br /&gt;
# Скачайте	и разархивируйте ZIP-файл, содержащий	новую версию SwiftUI instrumentor.	Ссылка доступна в мастере мобильной	инструментации (mobile	instrumentation wizard).&lt;br /&gt;
# Скопируйте	загруженный '''DTSwiftInstrumentor''' в папку	'''.Ключ-АСТРОМ''' и замените существующий файл.&lt;br /&gt;
|}&lt;br /&gt;
❗ '''''Важно'''''&lt;br /&gt;
&lt;br /&gt;
Если вы видите следующее предупреждение при сборке, вам также нужно обновить скрипты сборки, которые были интегрированы во время установки Ключ-АСТРОМ SwiftUI instrumentor.&lt;br /&gt;
&lt;br /&gt;
Ключ-АСТРОМ: There is an upgrade for your project instrumentation. Please execute &amp;quot;DTSwiftInstrumentor project-upgrade &amp;lt;PROJECT.xcodeproj&amp;gt;&amp;quot; to upgrade your project&lt;br /&gt;
&lt;br /&gt;
Выполните предложенную команду для обновления скриптов сборки, а затем сохраните внесенные изменения в файле вашего проекта.&lt;br /&gt;
&lt;br /&gt;
== 4.3. Удаление SwiftUI instrumentor ==&lt;br /&gt;
Если вам больше не нужен Ключ-АСТРОМ SwiftUI instrumentor, вы можете удалить его из системы с помощью Homebrew или вручную удалить его из своего проекта.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Homebrew'''&lt;br /&gt;
!'''Вручную'''&lt;br /&gt;
|-&lt;br /&gt;
|Выполните команду '''brew remove DTSwiftInstrumentor''' и '''brew untap Ключ-АСТРОМ/tools''', чтобы удалить SwiftUI instrumentor из вашей системы.&lt;br /&gt;
|&lt;br /&gt;
# Запустите	'''DTSwiftInstrumentor uninstall &amp;lt;PROJECT.xcodeproj&amp;gt;''',	чтобы удалить SwiftUI instrumentor	из вашего проекта.&lt;br /&gt;
# (Опционально)	Удалите папки '''.Ключ-АСТРОМ''' и	'''Ключ-АСТРОМ_instrumented''' из вашего проекта.&lt;br /&gt;
&lt;br /&gt;
Эти папки содержат кэш, данные журналов и, при наличии, вручную установленный бинарный файл инструментария. Они содержат кэш инструментария, данные журналов и, при наличии, бинарные файлы инструментария.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 5. Проверьте различия инструментирования SwiftUI =&lt;br /&gt;
'''ЕдиныйАгент для iOS версии 8.257+'''&lt;br /&gt;
&lt;br /&gt;
Для проверки различий между вашим исходным кодом и кодом, измененным SwiftUI instrumentor, выполните одну из следующих команд:&lt;br /&gt;
&lt;br /&gt;
* Из	корневой директории проекта выполните	одну из следующих команд, чтобы проверить	разницу между вашим и измененным	инструментом SwiftUI:&lt;br /&gt;
** '''DTSwiftInstrumentor		diff''', если вы установили инструмент с		помощью Homebrew&lt;br /&gt;
** '''.Ключ-АСТРОМ/DTSwiftInstrumentor		diff''', если вы установили инструмент		вручную&lt;br /&gt;
* Из любой	директории:&lt;br /&gt;
** '''DTSwiftInstrumentor		diff		&amp;lt;путь-к-корневой-директории-проекта&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
= 6. Известные ограничения =&lt;br /&gt;
&lt;br /&gt;
== 6.1. Инструментирование пользовательских элементов управления SwiftUI не поддерживается ==&lt;br /&gt;
В настоящее время Ключ-АСТРОМ не поддерживает инструментирование пользовательских элементов управления SwiftUI. Список элементов управления SwiftUI, которые можно инструментировать, можно найти в разделе [[Инструментирование элементов управления SwiftUI#%202.%20%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5%20%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B|Поддерживаемые элементы управления]].&lt;br /&gt;
&lt;br /&gt;
== 6.2. Проблемы с предпросмотром в Xcode. ==&lt;br /&gt;
Когда сборка симулятора включала инструменты SwiftUI, предварительные просмотры не загружались в Xcode. В качестве обходного пути мы отключили инструментарий SwiftUI для сборок симулятора. Если вы хотите добавить инструментарий SwiftUI в сборки симулятора, см. [[Инструментирование элементов управления SwiftUI#%207.3.%20%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B8%20%D1%81%D0%B8%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%B0|Сборки симулятора инструментов]].&lt;br /&gt;
&lt;br /&gt;
== 6.3. Только SwiftUI 2.0+ ==&lt;br /&gt;
Ключ-АСТРОМ поддерживает инструментирование SwiftUI 2.0+ потому, что listener '''onChange''' недоступен в более ранних версиях SwiftUI. Поэтому требуется версия iOS 14+ для целевой платформы.&lt;br /&gt;
&lt;br /&gt;
== 6.4. Более длительное время сборки ==&lt;br /&gt;
В отличие от ЕдиныйАгент для iOS, который изменяет ваше мобильное приложение в памяти во время выполнения, SwiftUI instrumentor изменяет исходный код вашего проекта во время сборки. По этой причине, процесс инструментации SwiftUI существенно влияет на время сборки.&lt;br /&gt;
&lt;br /&gt;
Чтобы сократить время сборки, можно использовать следующие методы:&lt;br /&gt;
&lt;br /&gt;
* Собирайте	приложение только для устройств	('''Device'''). Если вы решили	инструментировать сборки для симулятора,	отключите эту функцию.&lt;br /&gt;
* Не	запускайте инструментирование SwiftUI на	каждой возможной сборке. Мы рекомендуем	запускать инструментирование SwiftUI на	ветках, таких как '''main''' или '''release'''.&lt;br /&gt;
&lt;br /&gt;
== 6.5. Несовместимость с watchOS ==&lt;br /&gt;
Невозможно скомпилировать проект, содержащий файлы, добавляемые в цель watchOS, поскольку ЕдиныйАгент для watchOS отсутствует. В этом случае [[Инструментирование элементов управления SwiftUI#%207.2.%20%D0%98%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B|вручную исключите]] все файлы, которые используются совместно или являются частью цели watchOS.&lt;br /&gt;
&lt;br /&gt;
== 6.6. tvOS не поддерживается ==&lt;br /&gt;
В настоящее время официальной поддержки сборок tvOS SwiftUI нет.&lt;br /&gt;
&lt;br /&gt;
= 7. Настройка инструментирования SwiftUI =&lt;br /&gt;
&lt;br /&gt;
== 7.1. Включить повтор сеанса (Session Replay) при сбоях ==&lt;br /&gt;
Воспроизведение сеанса при сбоях может фиксировать и визуально воспроизводить действия, которые пользователь вашего приложения выполнял до того, как произошел сбой.&lt;br /&gt;
&lt;br /&gt;
== 7.2. Исключить файлы из SwiftUI instrumentor ==&lt;br /&gt;
По умолчанию, инструментатор Ключ-АСТРОМ SwiftUI обрабатывает все файлы с расширением '''.swift''', но инструментирует только файлы, содержащие поддерживаемые элементы управления. Если необходимо, вы можете исключить определенные файлы и директории из процесса инструментирования SwiftUI.&lt;br /&gt;
&lt;br /&gt;
Чтобы исключить файлы и директории из процесса инструментирования SwiftUI:&lt;br /&gt;
&lt;br /&gt;
# Добавьте	ключ конфигурации '''DTXExcludedSwiftUIFiles''' в	файл '''Info.plist''' вашего проекта.&lt;br /&gt;
# Перечислите	относительные пути ко всем файлам и	каталогам, которые вы не хотите	инструментировать. Пути должны	указываться относительно корня проекта,	то есть каталога, в котором находится	файл '''.xcodeproj'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;key&amp;gt;DTXExcludedSwiftUIFiles&amp;lt;/key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;string&amp;gt;relative/file/path/&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;string&amp;gt;relative/file.swift&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/array&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Журнал инструментирования, доступный после каждой сборки, содержит список файлов и каталогов, которые следует исключить из инструментирования SwiftUI. Журнал инструментирования также показывает, был ли файл или каталог исключен в процессе инструментирования.&lt;br /&gt;
&lt;br /&gt;
== 7.3. Сборки симулятора инструментов ==&lt;br /&gt;
Мы отключили инструментирование SwiftUI для сборок симулятора, чтобы решить [[Инструментирование элементов управления SwiftUI#%206.2.%20%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B%20%D1%81|проблему с предварительным просмотром в Xcode]].&lt;br /&gt;
&lt;br /&gt;
Чтобы включить инструменты SwiftUI для сборок симулятора, добавьте ключ конфигурации '''DTXSwiftUIInstrumentSimulatorBuilds''' в файл '''Info.plist''' вашего проекта и установите для этого ключа значение '''true'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;key&amp;gt;DTXSwiftUIInstrumentSimulatorBuilds&amp;lt;/key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7.4. Создание сборок для неподдерживаемых целей развертывания ==&lt;br /&gt;
SwiftUI instrumentor генерирует код, совместимый со SwiftUI 2.0+, который работает только на устройствах с iOS 14+. Попытка создать сборки для целей развертывания iOS 13 и более ранних версий завершится ошибкой.&lt;br /&gt;
&lt;br /&gt;
Чтобы переопределить эту проверку, добавьте ключ конфигурации '''DTXSwiftUIIgnoreDeploymentTarget''' в файл '''Info.plist''' вашего проекта и установите для этого ключа значение '''true'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;key&amp;gt;DTXSwiftUIIgnoreDeploymentTarget&amp;lt;/key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7.5. Включить сопоставление номеров строк для проектов Objective-C ==&lt;br /&gt;
Отчеты о сбоях, доступные в Ключ-АСТРОМ, не основаны на исходном коде вашего проекта. Эти отчеты основаны на измененном коде, который Ключ-АСТРОМ генерирует во время инструментирования. Вот почему сопоставление номеров строк добавляется в ваш проект во время инструментирования, а затем передается в Ключ-АСТРОМ при запуске приложения. В противном случае номера строк в отчетах о сбоях будут неверными.&lt;br /&gt;
&lt;br /&gt;
По умолчанию Ключ-АСТРОМ SwiftUI instrumentor создает сопоставление номеров строк и вставляет его в основной класс вашего проекта. Это происходит автоматически для проектов с основным классом Swift, но не для устаревших проектов Objective-C. Для таких проектов вы получите сообщение об ошибке, и наш инструментарий SwiftUI не будет инструментировать ваше мобильное приложение.&lt;br /&gt;
&lt;br /&gt;
Чтобы включить сопоставление номеров строк для проектов Objective-C&lt;br /&gt;
&lt;br /&gt;
# Добавьте	ключ конфигурации '''DTXSwiftUIManualPlaceholder'''	в файл '''Info.plist''' вашего проекта и	установите для этого ключа значение	'''true'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;key&amp;gt;DTXSwiftUIManualPlaceholder&amp;lt;/key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;true/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Добавьте	в основной класс специальный placeholder	'''AppDelegate.m'''.&lt;br /&gt;
# Добавьте	'''[Ключ-АСТРОМ	setSwiftUiMapping:@&amp;quot;_Ключ-АСТРОМ_SWIFTUI_MAPPING_PLACEHOLDER_&amp;quot;];'''	к основному классу либо в методе '''init''',	либо в методе '''didFinishLaunchingWithOptions'''.&lt;br /&gt;
&lt;br /&gt;
Во время сборки, SwiftUI instrumentor заменяет часть этой строки сгенерированным сопоставлением номеров строк.&lt;br /&gt;
&lt;br /&gt;
== 7.6. Включить автоматическую очистку журнала ==&lt;br /&gt;
'''ЕдиныйАгент для iOS версии 8.257+'''&lt;br /&gt;
&lt;br /&gt;
После каждой сборки SwiftUI instrumentor создает резервные копии инструментированных файлов и сгенерированных журналов, которые хранятся в каталоге '''Ключ-АСТРОМ_instrumented'''. По умолчанию эти файлы не удаляются, и общий размер каталога со временем будет расти. По этой причине мы рекомендуем вам включить автоматическую очистку журнала.&lt;br /&gt;
&lt;br /&gt;
* Чтобы	удалить журналы SwiftUI instrumentor	после определенного количества сборок,	добавьте ключ конфигурации	'''DTXCleanSwiftUILogsByCount''' в файл '''Info.plist'''	вашего проекта.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;key&amp;gt;DTXCleanSwiftUILogsByCount&amp;lt;/key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;number&amp;gt;10&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Чтобы	удалить журналы через определенное	количество дней, добавьте ключ	конфигурации '''DTXCleanSwiftUILogsByAgeDays'''	в файл '''Info.plist'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;key&amp;gt;DTXCleanSwiftUILogsByAgeDays&amp;lt;/key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;number&amp;gt;5&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если вы добавите оба ключа в файл '''Info.plist''', ключ '''DTXCleanSwiftUILogsByAgeDays''' будет иметь приоритет.&lt;br /&gt;
&lt;br /&gt;
= 8. Устранение неполадок =&lt;br /&gt;
Мы все еще работаем над улучшением процесса инструментирования SwiftUI. Если у вас возникнут какие-либо проблемы при инструментировании элементов управления SwiftUI, обратитесь в службу поддержки Ключ-АСТРОМ и предоставьте файл журнала затронутой сборки. Вы можете найти файл журнала самой последней сборки по пути '''Ключ-АСТРОМ_instrumented/current/instrumentation.log'''. Файлы журналов предыдущих сборок находятся в архивах с отметками времени в разделе '''Ключ-АСТРОМ_instrumented'''.&lt;br /&gt;
&lt;br /&gt;
== 8.1. Инструментация уже работает ==&lt;br /&gt;
Если у вас возникла проблема с Ключ-АСТРОМ SwiftUI instrumentor, и он не был восстановлен автоматически, выполните шаги, описанные ниже.&lt;br /&gt;
&lt;br /&gt;
# Остановите	процесс '''DTSwiftInstrumentor''', если он все еще	существует.&lt;br /&gt;
# Если вы	видите изменения, сделанные SwiftUI	instrumentor в исходном коде	вашего проекта, выполните следующую	команду в корне проекта:&lt;br /&gt;
&lt;br /&gt;
* '''DTSwiftInstrumentor	restore .''' если вы установили инструмент	через Homebrew&lt;br /&gt;
* '''.Ключ-АСТРОМ/DTSwiftInstrumentor	restore .''' если вы установили инструмент	вручную&lt;br /&gt;
&lt;br /&gt;
== 8.2. DTSwiftInstrumentor завершил работу с ошибкой при обработке &amp;lt;filename&amp;gt; ==&lt;br /&gt;
Бинарный файл SwiftUI instrumentor дал сбой. Обратитесь в службу поддержки Ключ-АСТРОМ и предоставьте файл журнала затронутой сборки.&lt;/div&gt;</summary>
		<author><name>ENetrebin</name></author>
	</entry>
</feed>