Что делают XML-элементы в файле .xcscheme
Я создаю rake exe для добавления покрытия в проект xcode. Я использую Gem xcodeproj. Мне нужно создать несколько схем для управления версиями и запустить сценарии покрытия.
Я строю свои собственные схемы, и я делаю медленный прогресс. Я чувствую, что могу быстрее отлаживать, если я понял, что означают эти элементы.
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0500"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B80F18918187FA5005578A0"
BuildableName = "TestProj.app"
BlueprintName = "TestProj"
ReferencedContainer = "container:TestProj.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Coverage">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B80F1A418187FA5005578A0"
BuildableName = "TestProjTests.xctest"
BlueprintName = "TestProjTests"
ReferencedContainer = "container:TestProj.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<PostActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Script"
scriptText = "/bin/sh ${SRCROOT}/bin/coverage.sh">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B80F18918187FA5005578A0"
BuildableName = "TestProj.app"
BlueprintName = "TestProj"
ReferencedContainer = "container:TestProj.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PostActions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Ответы
Ответ 1
Будьте предупреждены, это только частичный ответ от разработчика, отличного от iOS, потому что я считаю, что вопрос подходит для закрытия из-за отсутствия исследований:
Ответ на то, что означают все эти значения, будет чрезмерно трудоемким и пустой тратой времени для кого-то, кто не участвует в вашем проекте (однако, информация там). Инженерия требует прохождения через документацию и бесконечные веб-сайты, чтобы отвечать даже на небольшую часть информации, когда это необходимо.
Google Что-то более уникальное
Все ниже - то, что я смог сделать примерно через пятнадцать минут Googling (предоставлено, ресурс Titolo, о котором я собираюсь ссылаться, был опубликован в 2015 году, ваш вопрос в 2013 году):
Поскольку я не разработчик iOS, я не могу говорить о действительности этих типов ресурсов; однако они кажутся законными. я Googled BlueprintIdentifier
, потому что это казалось достаточно уникальным, и он смог найти хороший материал на второй странице Google.
Мишель Титоло проделала хорошую работу по описанию цели следующего тела XML (и терминологии, необходимой для его понимания):
<BuildActionEntry
buildForTesting = ""
buildForRunning = ""
buildForProfiling = ""
buildForArchiving = ""
buildForAnalyzing = "">
<BuildableReference
BuildableIdentifier = ""
BlueprintIdentifier = ""
BuildableName = ""
BlueprintName = ""
ReferencedContainer = "">
</BuildableReference>
</BuildActionEntry>
Что относительно другого материала
На них действительно распространяется документация, которую @Antarr Byrd опубликовал в комментарии на раннем этапе. Например, BuildableIdentifier
охватываемый документацией для BuildableReference
node, как и вещи как LaunchAction
.
Чем больше я возвращаюсь в Google, тем больше я читаю, тем больше я убежден, что все эти значения адекватно документированы документацией. Они могут быть не в ожидаемом формате, но они, безусловно, документированы.
Документация - результат написанного человеком "материала". Люди, которые пишут это, могут не всегда организовываться в удобоваримой форме; однако это не значит, что информации там нет.