Tag: Xcodegen

XcodeGen –一种管理Xcode项目的更好方法

问题 .xcodeproj文件很烂 它们不是人类可读的 当合并冲突确实发生时,这使得它们几乎无法解决 当前的“解决方案” 将此行添加到您的.gitAttributes * .pbxproj merge = union 此属性告诉git,只要与任何.pbxproj文件存在合并冲突,然后就会自动 合并并同时使用双方 。 十分之九的时间可以正常工作。 但是,如果事情没那么顺利,事情就会迅速走向现实。 根据项目的大小,您最终可能会遇到数百个看似无法解决的冲突,这些冲突中的代码块最终会出现在不应该出现的地方。 如果您曾经经历过这种情况,您就会知道它很快就会成为一场噩梦 。 欢迎使用XcodeGen 在寻找解决方案之后,我遇到了XcodeGen。 yonaskolb / XcodeGen XcodeGen –命令行工具,可从规范文件和文件夹结构生成Xcode项目 github.com XcodeGen是一个命令行工具,它使用文件夹结构和简单的项目规范来生成Xcode项目。 使用XcodeGen,您可以创建项目规范 ,该规范可以采用JSON或YML格式 。 这些规范包含生成项目的所有信息。 目标,方案,设置,依赖关系。 您命名,它已被覆盖。 基本的应用规范仅需几行即可声明: 创建规范后,您只需运行: xcodegen 项目即刻生成! ProjectSpec非常详尽,涉及设置和配置方面的几乎所有情况。 我建议任何团队尝试XcodeGen,好像通过从Xcode复制现有设置来创建规格的初始设置似乎很麻烦。 将来节省的时间和麻烦是不值得的。 谢谢阅读!

ГенерацияXcode-проекта

讲解 project.pbxproj的Решениепроблемыmerge-конфликтов 是iOS上的“Наверняка”,是“резолва”的merge-конфликтов。 Есликонфликтуютизменениявисходныхфайлах,тотутнетособойболи,всезакономерно。 Xcode-проектаproject.pbxproj中的Другоедело,когдаконфликты,ведьихсложнеерешатьиони。 Носамаябольшаядосадавтом,чтотакиеконфликтынеоправданы,ведьзачастуюонипоявляютсяприпростомдобавленииилиперемещениифайловвсливаемыхветках。 Вчемпроблема? 使用project.pbxproj васлантельбазойданныхислишкоммногонасебяберет: структурупроекта настройкипроекта настройкикаждоготаргета индексациюфайловисходников Ковсемупрочему, project.pbxproj属性列表(NeXTSTEP)тере Такимобразом,индексацияисходныхфайловвproject.pbxprojприводиткконфликтам,которыеневозоое РазфайлыXcode-проектатакиепроблемные,топорабыихудалитьипрописатьв.gitignore。 Нетпроекта–нетпроблем! Акактогдадолжнобыть? Намноголучшеиметьотдельныйфайлдлянастроекпроектасболееудобнымдляредактированияформатомивозможностьюуказатьпапку,иерархияфайловвкоторойиявляласьбыиерархиейисходников。 Ноневсетакпросто:Xcodeничегонезнаетоструктуретакогопроекта,и,соответственно,несможет。 在CocoaPods和Fastlane上创建project.pbxproj 。 Поэтомувыхододин–генерироватьэфемерныйXcode-проектисключительнонавремяразработкиисборки。 Ксчастью,естьготовыерешения,которыекакразудовлетворяютэтимтребованиям:XcodeGen, 结构,Xcake。 Самымпопулярнымсрединих,GitHub的судяпорейтингу, XcodeGen ,евомыиразберемнапримере。 XcodeGen吗? XcodeGen – XcodeGen –Xcode-проектаинструменткоманднойстроки, xcodegen生成 Котораяпринимаетследующиепараметры: –spec :опциональныйпутькфайлуспецификациипроекта。 По-умолчаниюиспользуетсяproject.yml。 –project :опциональныйпутькпапке,вкоторойбудетсгенерированпроект。 По-умолчаниюиспользуетсяпапка,在которойнаходитсяспецификация。 –use-cache :флагиспользованиякэшадляпредотвращениягенерациипроектавслучае,еслиниси –cache-path :опциональныйпутькфайлукэша。 По-умолчаниюиспользуется〜 ~/.xcodegen/cache/{PROJECT_SPEC_PATH_HASH} 。 Чтотакоеспецификация? Спецификация–этодокумент,вкоторомописанывсепараметрыпроекта:конфигурации,настройкисбор。 XcodeGen的XAML代码:YAML和JSON。 YAMLЛучшевыбратьпонесколькимпричинам: XcodeGen的XcodeGen或используетсяипримерахспецификаций используетсявомножестведругихинструментовiOS-разработки(SwiftLint,Jazzy,TravisCI,CircleCI,Codecovит.д.)。 […]