[Swift] 앱 프로젝트 + SPM .cachesDirectory 이슈건 참고



# [Swift] 앱 프로젝트 + SPM .cachesDirectory 이슈건 참고

안녕하세요 __물먹고하자__ 입니다 :)
오늘은 기존에 앱 프로젝트에서 .cachesDirectory 참고하던 부분을
SPM(공통라이브러리) 영역으로 옮기다가 발생했던 이슈건 공유드립니다.

---
## 1. 현재 프로젝트 구조
> 💡 공통(SPM) 영역의 DB 파일을 올려서 일괄처리 후 결과만 전달하려고 함.

<!-- 1. 참고 이미지 -->
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDUvNnLjdaw8Y1lAXW3t3ISBR1xV9t9EoyRrIOozyuEWvI-bxi9hKjJ3Nddfl__FSuDVTTmGvkufWVGr8lz0SjyGs3c_WHuQpgZ6rDNKVT87VS357HBawXUrMG202NIAqSFstw70qT1wUm5EvGZsFDa8wHSRsKm4sUlx6N_v2o224dYcukeC27UraqmJqh/s2152/1_SPM%E1%84%8B%E1%85%A5%E1%86%B8%E1%84%85%E1%85%A9%E1%84%83%E1%85%B3_%E1%84%80%E1%85%AE%E1%84%8C%E1%85%A9%E1%84%87%E1%85%A7%E1%86%AB%E1%84%80%E1%85%A7%E1%86%BC%E1%84%87%E1%85%AE%E1%84%87%E1%85%AE%E1%86%AB.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="2152" data-original-width="1920" height="600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDUvNnLjdaw8Y1lAXW3t3ISBR1xV9t9EoyRrIOozyuEWvI-bxi9hKjJ3Nddfl__FSuDVTTmGvkufWVGr8lz0SjyGs3c_WHuQpgZ6rDNKVT87VS357HBawXUrMG202NIAqSFstw70qT1wUm5EvGZsFDa8wHSRsKm4sUlx6N_v2o224dYcukeC27UraqmJqh/s600/1_SPM%E1%84%8B%E1%85%A5%E1%86%B8%E1%84%85%E1%85%A9%E1%84%83%E1%85%B3_%E1%84%80%E1%85%AE%E1%84%8C%E1%85%A9%E1%84%87%E1%85%A7%E1%86%AB%E1%84%80%E1%85%A7%E1%86%BC%E1%84%87%E1%85%AE%E1%84%87%E1%85%AE%E1%86%AB.png"/></a></div>

---
## 2. NSSearchPathForDirectoriesInDomains(_:_:_:) 프로젝트와 SPM 호출시 차이
> 💡 <a href="https://developer.apple.com/documentation/foundation/nssearchpathfordirectoriesindomains%28_:_:_:%29" target="_blank">NSSearchPathForDirectoriesInDomains(_:_:_:)</a> iOS 2.0 이상

<!-- 2. 참고 이미지 -->
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEG1TAr7E5XJ4X9yRVNVC9XYSNYpbYTqD3N8erxfPvsphYTH74PP1wRqNKJIGQloGynJj9LHt8rpCjHtU52H8epCfx6mOnMNkcUA3ez6NPD04-kCLw7EeuIgtUSlW4vZYwBunsG8qHZiC3lhGE5NbbIR9briM0Zd93WB8ZATmMjPTt1f_QG3t9Fp5_0pGR/s2828/2_%E1%84%8F%E1%85%A2%E1%84%89%E1%85%B5%E1%84%83%E1%85%B5%E1%84%85%E1%85%A6%E1%86%A8%E1%84%90%E1%85%A9%E1%84%85%E1%85%B5_%E1%84%8C%E1%85%A5%E1%86%BC%E1%84%87%E1%85%A9%E1%84%8E%E1%85%A1%E1%84%8B%E1%85%B5.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="568" data-original-width="2828" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEG1TAr7E5XJ4X9yRVNVC9XYSNYpbYTqD3N8erxfPvsphYTH74PP1wRqNKJIGQloGynJj9LHt8rpCjHtU52H8epCfx6mOnMNkcUA3ez6NPD04-kCLw7EeuIgtUSlW4vZYwBunsG8qHZiC3lhGE5NbbIR9briM0Zd93WB8ZATmMjPTt1f_QG3t9Fp5_0pGR/s600/2_%E1%84%8F%E1%85%A2%E1%84%89%E1%85%B5%E1%84%83%E1%85%B5%E1%84%85%E1%85%A6%E1%86%A8%E1%84%90%E1%85%A9%E1%84%85%E1%85%B5_%E1%84%8C%E1%85%A5%E1%86%BC%E1%84%87%E1%85%A9%E1%84%8E%E1%85%A1%E1%84%8B%E1%85%B5.png" width="600"/></a></div>

앱 프로젝트 : ~(중략)/Application/__4E3B465E-11D2-417E-838A-AF8274644E86__/Library/Caches/orgadb/DB파일명.sqlite
SPM : ~(중략)/Application/__4C86A515-5DD1-4291-B5EA-E6600CD0FF61__/Library/Caches/orgadb/DB파일명.sqlite
- 주소의 값이 틀리게 설정됨.
- 결국 같은 주소를 바라봐야해서 프로젝트에서 생성된 '캐시디렉토리' path 정보를 SPM에 알려줘서 사용하는걸로 마무리

``` swift
/*
 2025. 04. 15 Kimjiwook
 - 공통라이브러리(SPM) 캐시 디렉토리 정보 전달해주기.
 - 생성시 A10, Common 기준 주소값이 틀려져서 공용으로 사용하기 위함.
*/
DzGlobalData.shared.cachesDirectory = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first ?? ""
```

---
## 마무리
같은 프로젝트라도 '프로젝트' + 'SPM' 호출부분에서 캐시 디렉토리의 주소가 바뀌는지는 이번에 처음 알았내요
큰 이슈는 없었는데, 꼭 찾을라면 잘 안보이다 보니 간단하게 정리하였습니다.

오늘은 이만~

즐거운 코딩 되게요.

끝.


댓글