1. [iOS] no template named 'unary_function' in namespace 'std'; did you mean '__unary_function'?

Xcode 15 로 업데이트하면서 발생하기 시작한 에러다. ios/Podfile 에 아래 코드를 추가해주면 된다.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION']
    end
  end
end

2. [iOS] Cycle inside Manta; building could produce unreliable results.

이것도 Xcode 15 로 업데이트하면서 발생하기 시작한 에러다.
(정확히는 1번 에러를 잡고 나니 발생했다.)
(검색해보면 Xcode 15 이전에도 발생한 사람들이 있긴 하다.)

상세 에러 메시지는 아래와 같다.

Cycle inside PROJECT_NAME; building could produce unreliable results.

Cycle details:

→ Target 'PROJECT_NAME': ExtractAppIntentsMetadata

○ Target 'PROJECT_NAME': CodeSign /Users/USER_NAME/Library/Developer/Xcode/DerivedData/PROJECT_NAME-ejrtwkqpgvibqachrnmzabjwsgqc/Build/Products/Debug-iphoneos/PROJECT_NAME.app/Frameworks/AppLovinQualityService.framework

○ Target 'PROJECT_NAME' has copy command from '/Users/USER_NAME/workspace/PROJECT_NAME/app/ios/AppLovinQualityService/AppLovinQualityService.xcframework/ios-armv7_arm64/AppLovinQualityService.framework' to '/Users/USER_NAME/Library/Developer/Xcode/DerivedData/PROJECT_NAME-ejrtwkqpgvibqachrnmzabjwsgqc/Build/Products/Debug-iphoneos/PROJECT_NAME.app/Frameworks/AppLovinQualityService.framework'

○ That command depends on command in Target 'PROJECT_NAME': script phase “[CP-User] [RNFB] Core Configuration”

○ Target 'PROJECT_NAME' has process command with output '/Users/USER_NAME/Library/Developer/Xcode/DerivedData/PROJECT_NAME-ejrtwkqpgvibqachrnmzabjwsgqc/Build/Products/Debug-iphoneos/PROJECT_NAME.app/Info.plist'

○ Target 'PROJECT_NAME' has copy command from '/Users/USER_NAME/workspace/PROJECT_NAME/app/ios/AppLovinQualityService/AppLovinQualityService.xcframework/ios-armv7_arm64/AppLovinQualityService.framework' to '/Users/USER_NAME/Library/Developer/Xcode/DerivedData/PROJECT_NAME-ejrtwkqpgvibqachrnmzabjwsgqc/Build/Products/Debug-iphoneos/PROJECT_NAME.app/Frameworks/AppLovinQualityService.framework'

내 경우 AppLovinQualityService 라는 녀석이 순환 참조를 일으키는 것 같다. 중간에 "That command depends on command in Target 'PROJECT_NAME': script phase “[CP-User] [RNFB] Core Configuration" 라는 구문도 보인다.

검색해보면 Xcode 의 Build Phase 순서를 변경해서 해결해줬다는 이야기가 있다. 나도 동일하게 시도해보았고

에러는 사라졌다.

3. [공통] Could not get BatchedBridge, make sure your bundle is packaged correctly

종종 뜨는 에러인데 매번 까먹는다. 아래처럼 metro 서버를 다시 실행하면 해결된다.

$ yarn start --reset-cache