[Resolve] iOS 빌드에서 TTS 안되는 현상

Jung Geun Oh·2025년 8월 8일
0

문제 해결

목록 보기
1/3
post-thumbnail

Microsoft.CognitiveServices.Speech.csharp으로 TTS를 구현하였습니다. 안드로이드 환경에서는 TTS가 아주 잘 작동하였으나, iOS 빌드를 하니 TTS가 작동하지 않았습니다. Mac 에디터에서도 잘 작동하고, 에디터에서도 잘 작동하였지만 iOS 빌드에서만 TTS 부분이 작동하지 않았습니다.


에러 로그는 다음과 같았습니다.

Unable to load DLL 'Microsoft.CognitiveServices.Speech.core.dll'. Tried the load the following dynamic libraries: Unable to load dynamic library '/Microsoft.CognitiveServices.Speech.core.dll' because of 'Failed to open the requested dynamic library

그렇다 .dll 파일을 찾을 수 없다고 한다. iOS에서는 dll 파일이 iOS에서 지원되지 않는다. .a 파일 혹은 .framework 파일을 찾아야 하는데 .dll 파일을 찾고 있으니 생긴 문제였다.


먼저 시도해본 것은


Plugin/Microsoft.CognitiveServices.Speech.core.a 파일을 복사해서 넣고 빌드 후 시도해보는 것이었다.
하지만 역시나 똑같은 오류가 발생했다.


계속 찾아본 결과 Nuget에서 다운받은 패키지는 iOS가 불안정하다는 정보가 있었다. 그래서 Unity 공식 Speech SDK를 다운받아서 사용하라는 해결 답변이 있었고 이를 실행에 옮겼다.

공식 Speech SDK

이를 다운 받으면 Speech SDK라는 폴더에 각 플랫폼 별 파일들이 존재합니다. 이는 그냥 나두고 기존 Nuget으로 다운 받은 Microsoft.CognitiveServices.Speech를 삭제해줬습니다.
하지만 여기서 Nuget Package에서 Remove 해버리면 의존성 파일들도 삭제가 됩니다. 그러면 꽤 많은 문제를 발생시켰기 때문에 직접 Speech 폴더만 삭제해줍니다. 


  • Azure.Core
  • System.ClientModel
  • Microsoft.Bcl.AsyncInterfaces
  • System.Text.Json
  • System.Memory.Data (일부 Azure SDK 버전만 해당)
  • System.Diagnostics.DiagnosticSource

해당 의존성 폴더들을 삭제하지 않았습니다.


이렇게하고 빌드 테스트하니 TTS 기능이 잘 작동하였습니다.

profile
Keep Learning!

0개의 댓글