是否有一种简单的方法来组织xcode 4.0中的Copy Bundle Resources中的文件?我的项目有多个目标,每次添加文件时,我都需要在大多数情况下将它们添加到每个项目中。如果我错误地忘记将资源复制到每个目标(除了查看捆绑中的文件数量,最终会因为每个项目的相同而不同),我会有一个简单的方法来捕捉自己,这将有很大的帮助。 )。
如果我可以在资源列表中创建文件夹,那会更容易,但似乎我不能。至少如果我可以自动按字母顺序排列它们可能会有所帮助。
答案 0 :(得分:3)
您需要做的是解析 .pbxproj 文件。 .pbxproj 中的所有关联文件和资源都是通过自己的 UUID 标识的。所以,
rootObject
的UUID rootObject
s Resource
,Source
和Framework
的UUID列表。和
找到所有三种资源类型的文件列表UUID 一些提示, 项目文件的格式是这样的, rootObject 引用其他对象。
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* .... List of all objects are here .... */
}
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}
从rootObject我们可以遵循目标值。
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "MyProject" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
German,
de,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
projectDirPath = "";
projectRoot = "";
targets = (
1D6058900D05DD3D006BFB54 /* TargetDebug */,
C446CDCB12BA35A1001324C8 /* TargetAdHoc */,
C446CF2D12BA3DDC001324C8 /* TargetAppStore */,
);
};
/* End PBXProject section */
在项目文件的目标部分中, buildPhases 包含指向复制的捆绑资源列表和链接的链接。
/* Begin PBXNativeTarget section */
1D6058900D05DD3D006BFB54 /* TargetAdHoc */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "TargetAdHoc" */;
buildPhases = (
1D60588D0D05DD3D006BFB54 /* Resources */,
1D60588E0D05DD3D006BFB54 /* Sources */,
1D60588F0D05DD3D006BFB54 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = TargetAdHoc;
productName = MyProject;
productReference = 1D6058910D05DD3D006BFB54 /* MyProject.app */;
productType = "com.apple.product-type.application";
};
C446CDCC12BA35A1001324C8 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C446CDCD12BA35A1001324C8 /* MainWindow.xib in Resources */,
/* ....... list of all PNGs and XIB files..... */
81CDEBBF13B21B790067A088 /* AnImage.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
答案 1 :(得分:1)
(在Xcode 3.2.x上):您可以通过选择阶段来进行alphabetize the files阶段,然后选择编辑 - >排序 - >按名称。
至于将它们分解为“文件夹” - 没有什么能阻止你拥有多个复制阶段!您甚至可以为每个人提供一个描述性名称。
答案 2 :(得分:0)
在此实例中不知道它是否有用,但在Xcode中,当您选择文件并在其上获取信息(命令-I)时,其中一个选项卡是“目标”。从那里,您可以选择您希望文件成为其中一部分的所有目标。我相信对于非编译文件,它只是将文件添加到所选目标的Copy Bundle Resources阶段。
答案 3 :(得分:0)
您可以在资源组中拥有文件夹。只需将一个真正的finder文件夹拖到xcode中,然后选择“为添加的文件夹创建文件夹参考”,并选择您要使用的所有目标。
这将创建一个动态文件夹引用,它将自动添加该文件夹中的所有文件,而无需每次都单独添加文件。