.xcscheme文件中的XML元素有何功能

Jas*_*dyn 12 xml xcode

我正在创建一个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>
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 3

预先警告,这只是非 iOS 开发人员的部分答案,因为我认为由于缺乏研究,该问题有资格结束:

回答所有这些值的含义将过于耗时,并且对于未参与您的项目的人来说是浪费时间(尽管信息就在那里)。工程需要费力地浏览文档和无数的网站,以便在需要时回答哪怕一小部分信息。

谷歌更独特的东西

下面的所有内容都是我在大约 15 分钟的谷歌搜索中能够完成的事情(当然,我要引用的 Titolo 资源是在 2015 年发布的,你的问题是在 2013 年):

由于我不是 iOS 开发人员,因此我无法评价这些类型资源的有效性;然而,它们似乎是合法的。我用谷歌搜索,BlueprintIdentifier因为这看起来足够独特,并且能够在谷歌的第二页上找到一些好东西。

Michelle Titolo 很好地描述了以下 XML 主体的用途(以及理解它所需的术语):

<BuildActionEntry
    buildForTesting = ""
    buildForRunning = ""
    buildForProfiling = ""
    buildForArchiving = ""
    buildForAnalyzing = "">
    <BuildableReference
       BuildableIdentifier = ""
       BlueprintIdentifier = ""
       BuildableName = ""
       BlueprintName = ""
       ReferencedContainer = "">
    </BuildableReference>
 </BuildActionEntry>
Run Code Online (Sandbox Code Playgroud)

其他的东西呢

@Antarr Byrd 早期在评论中发布的文档确实涵盖了这些内容。例如,节点的文档中涵盖BuildableIdentifier了.BuildableReferenceLaunchAction

我越多地返回谷歌,阅读越多,我就越相信文档中充分记录了所有这些值。它们可能不是预期的格式,但它们肯定有记录。

文档是人类编写的“东西”的结果。写这篇文章的人可能并不总是以易于理解的方式组织;然而,这并不意味着该信息不存在。