Я также должен был сделать это для КИ.После многих копаний, я не думаю, что это достаточно распространено, чтобы кто-нибудь написал инструмент, который поможет с этим справиться.
Единственный вывод, к которому я пришел, - это непосредственное редактирование файла project.pbxproj, что никогда не былоотличная вещь, чтобы сделать.Ни один из инструментов, которые утверждают, что сделали это, не помог, пока я не нашел этот ответ от stackoverflow при редактировании файла project.pbxproj .По сути, вы можете преобразовать файл project.pbxproj в формат JSON, используя plutil -convert json project.pbxproj
, и использовать инструмент манипуляции JSON, чтобы сделать эти файлы заголовками, а затем указать, что они являются заголовками того объекта, который вы хотите.
Когдаконвертируя project.pbxproj в формат JSON, помните, что Xcode больше не сможет показывать вам навигатор проекта для этого проекта.Однако он все равно будет собираться и запускаться, так что это действительно полезно, только если вы планируете сделать это прямо перед сборкой (например, для CI).
Формат project.pbxproj в формате JSON имеет почти всеважные данные под ключом «объекты».Файл, которым вы хотите быть заголовком, уже имеет запись с ключом UUID для файла и значением пути, которое вы можете использовать, чтобы связать UUID с вашим файлом.Вот пример для этого формата:
// UUID for your file
"65TYSSDXHSLP4UUOAD9D40C322AAGHM9": {
"path": "MyHeader.h", // Your file's name
"isa": "PBXFileReference",
"includeInIndex": "1",
"lastKnownFileType": "sourcecode.c.h",
"sourceTree": "<group>"
}
Есть еще одна запись для объявления этого файла в качестве заголовка, который имеет свой собственный UUID и ссылку на UUID вашего файла:
// UUID for your file as a header
"YU3BSD39O9PT5RESDFV741D1": {
"isa": "PBXBuildFile",
"fileRef": "65TYSSDXHSLP4UUOAD9D40C322AAGHM9", // UUID for your file MyHeader.h
"settings": {
"ATTRIBUTES": [
"Public" // could also be Project or Private
]
}
}
Наконец, у вашей цели есть список файлов заголовков, куда вы хотите, чтобы UUID указывал ссылку на заголовок.
"A82GAE9A5HUIO063IOPQAAQIUFGSNXZ": {
"isa": "PBXHeadersBuildPhase",
"buildActionMask": "2147483647",
"files": [
"YU3BSD39O9PT5RESDFV741D1" // UUID for your file as a header
],
"runOnlyForDeploymentPostprocessing": "0"
}
Опять же, непосредственное изменение файла project.pbxproj никогда не было хорошей идеей, нопока нет лучшего инструмента для внесения этих изменений без использования Xcode, это лучшее, что я смог найти.Если кто-то знает, что я не такой, пожалуйста, дайте мне знать.