Что делают 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, тем больше я читаю, тем больше я убежден, что все эти значения адекватно документированы документацией. Они могут быть не в ожидаемом формате, но они, безусловно, документированы.

Документация - результат написанного человеком "материала". Люди, которые пишут это, могут не всегда организовываться в удобоваримой форме; однако это не значит, что информации там нет.