我正在创建一个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)
预先警告,这只是非 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
我越多地返回谷歌,阅读越多,我就越相信文档中充分记录了所有这些值。它们可能不是预期的格式,但它们肯定有记录。
文档是人类编写的“东西”的结果。写这篇文章的人可能并不总是以易于理解的方式组织;然而,这并不意味着该信息不存在。