xcconfig파일에서 아래 설정을 추가해줍니다.
OTHER_SWIFT_FLAGS[config=DEV][sdk=*] = $(inherited) -DDEV
GCC_PREPROCESSOR_DEFINITIONS = DEV=1 PROD=0
GCC_PREPROCESSOR_DEFINITIONS="FLEXLAYOUT_SWIFT_PAKAGE=1"
바로 generate해서 프로젝트를 사용한다면
Target > Build Setting > PreprocessorMacro의 타겟에 FLEXLAYOUT_SWIFT_PAKAGE=1 를 추가해줘도 됩니다.
FlexLayout에서 사용되는 Yogakit이나 기반이 되는 yoga는 사실상 c++로 구현이 되어있다고 합니다. Swift에서 C++를 직접 호출할 수 없기 떄문에 YogaKit의 C++코드를 Swift에서 사용해줄 수 있도록 C래퍼를 설정하는 작업이라고 합니다.
xcconfig파일을 수정했다면 다음을 수행합니다.
1. tuist fetch
2. rm -rf Tuist/Dependencies/Carthage/Checkouts/Pinlayout/TestProjects
PinLayout에서 해당 폴더를 빌드하기 때문에 에러가 발생하기 때문에, TestProjects를 삭제하고 Carthage를 이용하여 PinLayout을 빌드합니다.
3. carthage build PinLayout --project-directory Tuist/Dependencies --platform iOS --use-xcframeworks --no-use-binaries --use-netrc --cache-builds --verbose
4. tuist fetch
5. tuist generate