Cake의 RN 버전을 0.62로 올리면서 얻은 것들을 공유합니다. 누군가에겐 도움이 되길 바랍니다.

[iOS] 빌드 실패 극복하기

Upgrade Helper로 0.61.5 버전에서 변경된 것들을 수정하고 컴파일 하니 역시 에러가 나네요. 언제나 한 번에 성공하는 법이 없는 RN입니다.

1) Use of undeclared identifier FlipperClient

Flipper 관련해서 발생하는 에러는 ios/Podfile 파일에서 flipper_post_install 함수 아래처럼 수정한 후 pod install을 다시 해주시면 해결됩니다.

def flipper_post_install(installer)
  installer.pods_project.targets.each do |target|
    if target.name == 'YogaKit'
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.1'
      end
    end
  end

  **file_name = Dir.glob("*.xcodeproj")[0]
  app_project = Xcodeproj::Project.open(file_name)
  app_project.native_targets.each do |target|
    target.build_configurations.each do |config|
      cflags = config.build_settings['OTHER_CFLAGS'] || '$(inherited) '
      unless cflags.include? '-DFB_SONARKIT_ENABLED=1'
        puts 'Adding -DFB_SONARKIT_ENABLED=1 in OTHER_CFLAGS...'
        cflags << '-DFB_SONARKIT_ENABLED=1'
      end
      config.build_settings['OTHER_CFLAGS'] = cflags
    end
    app_project.save
  end
  installer.pods_project.save**
end

2) Undefined symbol: _swift_getForeignTypeMetadata

이제 Swift 관련 에러들이 주르륵 나오는데 아래 순서대로 해주시면 됩니다.

프로젝트 네비게이터에서 을 선택하고

프로젝트 네비게이터에서 New File...을 선택하고

Swift 빈 파일을 프로젝트에 추가시켜 주면

Swift 빈 파일을 프로젝트에 추가시켜 주면

나오는 창에서 를 눌러 브릿징 헤더를 추가해줍니다.

나오는 창에서 Create Bridging Header를 눌러 브릿징 헤더를 추가해줍니다.

프로젝트의 에서 에서 + 버튼으로 아래 3개 값을 추가합니다.

프로젝트의 Build Settings에서 LIBRARY_SEARCH_PATHS에서 + 버튼으로 아래 3개 값을 추가합니다.