2014-03-26 2 views
3

dSYM 파일이 런타임에 응용 프로그램의 UUID를 가져올 수있는 방법이 있습니까?응용 프로그램의 런타임에 아카이브 할 때 dSYM에있는 UUID 가져 오기

찾은 샘플 코드로 시도했지만 dSYM의 것과 다른 UUID를 반환합니다.

감사합니다.

+0

응용 프로그램 빌드에 대해 생성 된 UUID가 동시에 dSYM에 대해 생성 된 UUID 동일의 관련 UUID를 표시합니다. 각 아키텍처의 UUID는 자동으로 두 파일에 자동으로 추가됩니다. 왜 런타임에이 UUID를 가져와야합니까? – Kerni

답변

7

당신은 당신이 그것을 얻기 위해 할 수있는 깔끔한 트릭 거기에 당신의 아이폰 OS 응용 프로그램과 관련된 UUID를 알고 싶다면 :

$> mdls -name com_apple_xcode_dsym_uuids -raw "$APP_NAME.app.dSYM" | grep -e \" | sed 's/[ |\"]//g' 

이것이 수행하는 응용 프로그램의 UUID 키를 스포트라이트 메타 데이터를 쿼리이다가, 그것이 당신과 연관되어 있기 때문에 .dSYM을 전달하고 있습니다.

grep 명령은 실제 ​​UUID가있는 행만 고려합니다. sed 명령은 공백과 따옴표를 지 웁니다.

.xcarchive 디렉토리를 서버에 업로드해야하므로이 서버는 Spotlight 메타 데이터를 저장하지 않으므로 명시 적으로 배치해야합니다. 이는 충돌 로그를 특정 버전의 바이너리와 연결하는 컨텍스트에서 모두 수행됩니다.

참고 : $ APP_NAME을 애플리케이션 이름으로 바꿉니다.

+0

고맙습니다.하지만 이걸 내 응용 프로그램 내부에서 가져와야합니다. Objective-C 코드를 사용하면 실현 가능합니까? –

+0

귀하의 질문을 정확하게 이해할 수 있을지 확실하지 않지만 ".app"는 DSYM 파일에 대해 아무것도 모릅니다. 좀 더 설명해 주실 수 있습니까? 왜 그렇게해야합니까? – gagarwal

+0

그래서 나는 올바르게 상징 할 수있을 것입니다. dSYM 파일을 UUID로 빌드해야 할 필요가있는 것처럼 보입니다. uuid 응용 프로그램 이미지의 기본 주소와 일치하지만 이는 일관성이 없습니다. 나는 이것에 틀릴지도 모른다. –

1
dwarfdump -u <PathToYourAppsDsym> 

이렇게하면 각각의 dsym