Was Sie tun müssen, ist die Datei .pbxproj zu analysieren. Alle verknüpften Dateien und Ressourcen in .pbxproj werden anhand ihrer eigenen UUID identifiziert. Also,
- Holen Sie sich die UUID des
rootObject
- Holen Sie sich die Liste der Ziele-UUIDs von
rootObject
- Für jedes Ziel erhalten Sie die Liste der UUIDs für
Resource
, Source
und Framework
. Und finden Sie die Liste der Dateien-UUIDs für alle drei Ressourcentypen
- Vergleichen Sie die Liste der Ressourcen für jedes Ziel.
Einige Hinweise, Das Format der Projektdatei ist folgendermaßen, das rootObject verweist auf andere Objekte.
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* .... Liste aller Objekte sind hier .... */
}
rootObject = 29B97313FDCFA39411CA2CEA /* Projektobjekt */;
}
Vom rootObject aus können wir dem Ziel Wert folgen.
/* Beginn Abschnitt PBXProject */
29B97313FDCFA39411CA2CEA /* Projektobjekt */ = {
isa = PBXProject;
buildConfigurationList = C01FCF4E08A954540054247B /* Build-Konfigurationsliste für PBXProject "MyProject" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = Englisch;
hasScannedForEncodings = 1;
knownRegions = (
Englisch,
Deutsch,
de,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* Benutzerdefinierte Vorlage */;
projectDirPath = "";
projectRoot = "";
targets = (
1D6058900D05DD3D006BFB54 /* TargetDebug */,
C446CDCB12BA35A1001324C8 /* TargetAdHoc */,
C446CF2D12BA3DDC001324C8 /* TargetAppStore */,
);
};
/* End Abschnitt PBXProject */
Im Zielabschnitt der Projektdatei enthält buildPhases den Link zur kopierten Bundle-Ressourcenliste und Verknüpfung.
/* Beginn Abschnitt PBXNativeTarget */
1D6058900D05DD3D006BFB54 /* TargetAdHoc */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build-Konfigurationsliste für PBXNativeTarget "TargetAdHoc" */;
buildPhases = (
1D60588D0D05DD3D006BFB54 /* Ressourcen */,
1D60588E0D05DD3D006BFB54 /* Quellen */,
1D60588F0D05DD3D006BFB54 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = TargetAdHoc;
productName = MyProject;
productReference = 1D6058910D05DD3D006BFB54 /* MyProject.app */;
productType = "com.apple.product-type.application";
};
C446CDCC12BA35A1001324C8 /* Ressourcen */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C446CDCD12BA35A1001324C8 /* MainWindow.xib in Resources */,
/* ....... Liste aller PNGs und XIB-Dateien..... */
81CDEBBF13B21B790067A088 /* AnImage.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};