원래 Unit Test 가 없던 프로젝트에, Unit Test를 집어 넣은 후 undefined symbol error에 봉착했습니다 ;ㅂ;

Test Code에서 사용하고 있는 Real Code를 찾을 수 없는 에러 인데..


위와 같이, Unit Test Target에 App Target이 Dependency 가 걸려 있음에도 불구하고 에러를 내뱉더군요 ;ㅂ;

구글님.. 아니, stackoverflow 님은 역시 모든것을 알고 계시더군요 ㅎㅎ

http://stackoverflow.com/questions/5783294/link-error-while-building-a-unit-test-target

범인은 바로 !!!


이녀석입니다. 

이 옵션이 뭐냐하면,  compile 된 excutable file 에서 symbol을 찾지 못하게 하는 옵션입니다.
그래서 Unit Test Target에서 symbols not found 에러가 발생한것이지요 ~



Unit Test를 실행시킬 Debug Profile 에서만 No 를 걸어 줍니다.
그러면 에러가 사라집니다 ㅎㅎ


iOS Project에서 Bundle Resource의 Patfh를 가져 오는 방법은 보통 아래와 같아.

NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"png"];


그런데, OCUnit의 Logic Test에서는 위와 같은 방식으로는 접근이 안된다.

아직 정확한 매커니즘은 파악하지 못했지만. 아래와 같은 방식으로 사용할 수 있다고 한다.

NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:name ofType:@"png"];


혹시 왜 그런지 아시는 분 답변좀.. 
나중에 찾아봐야지 하고 있지만, 귀차니즘으로 ㅎ 

+ Recent posts