plist (속성 목록) 파일 MD5SUM은 iPhone 앱으로 컴파일되면 변경됩니다.

StackOverflow https://stackoverflow.com/questions/1142995

  •  16-09-2019
  •  | 
  •  

문제

iPhone 앱에 Plist 파일을 포함하고 있습니다. 이진 형식 (플루 틸을 사용하여 XML에서 이진으로 변환)입니다. 런타임에 MD5 체크섬 (또는 SHA-1)을 실행하여 내용이 예상되는지 확인하고 싶습니다. 불행히도, 나는 항상 내가 원래 포함 된 것과 다른 체크섬을 얻습니다. MD5 합계를 잘못 계산한다고 가정 한 후 한 시간이 넘는 시간이 지나면 테스트를 실행하고 바이트가 실제로 동일하다는 것을 확인하기로 결정했습니다. 그들은 그렇지 않습니다. 파일 크기는 동일하지만 바이트 30에서 시작하여 파일 전체 (마지막 32 바이트 제외)에서 파일 내용은 완전히 다릅니다. iPhone 앱에 포함하기 전에 속성 목록 파일이 서명되었는지 또는 다른 바이너리 형식으로 "컴파일"되어 있는지 아는 사람이 있습니까? 그렇다면 프로세스에 대한 자세한 내용을 제공 할 수 있습니까?

미리 감사드립니다!

도움이 되었습니까?

해결책

Xcode는 직선 사본을 사용하는 대신 기본적으로 작은 스크립트를 사용하여 대상을 구축 할 때 plist 파일을 처리하고 복사합니다. Xcode에서 대상의 정보 창을 가져와 "규칙"탭을 선택하면 Text.Plist 소스 파일을 처리하는 데 CopplistFile이라는 자체 도구를 사용합니다. 기본적으로 변환이 수행되지 않는 것으로 보이지만 PLIST가 유효하고 선택적으로 다른 형식으로 변환 할 수 있습니다.

이것이 Plist 파일의 변경을 일으키는 원인지는 모르겠지만, 원한다면 프로젝트에서 plist 파일 자체에 대한 정보를 얻고 파일 유형을 "text.plist"에서 "text"로 변경할 수 있습니다. Xcode가 속성 목록 파일 대신 일반 텍스트 파일로 취급하고 CopplePlistFile 도구를 통해 실행하는 대신 직접 사본을 작성해야합니다.

다른 팁

나는이 질문에 왜 스택을 터뜨릴 것이다. 나는 당신의 질문에 대한 답을 모르지만, 왜 당신이 그것에 시간을 보내고 있는지 궁금합니다.

앱이 디지털로 서명되었으므로 왜 PLIST의 무결성에 대해 걱정하십니까? 누군가가 수정하면 디지털 서명이 더 이상 유효하지 않기 때문에 앱이 설치되지 않습니다.

다른 이유는 앱이 해킹당하는 것에 대해 우려하고 있기 때문일 수 있습니다. 완벽하게 합리적이지만 누군가 앱을 해킹 할 수 있다면 PLIST를 수정하고 코드의 체크섬을 변경하여 여전히 실행되도록 할 수 있습니다. 실제로 제 3 자로부터 컨텐츠를 얻지 않고 콘텐츠의 무결성을 보장 할 방법이 없습니다 (예 : 자신의 서버).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top