2013-05-17 2 views
1

테스트 목적으로 정기적으로 iOS 앱의 새 빌드를 문서 폴더에 이전 데이터가있는 기기에 배포해야합니다. 선택적으로 데이터의 일부를 업데이트하고 문서 폴더의 모든 파일에 대해 새로운 내용 유지 또는 오래된 동작을 제어 할 수 있기를 원합니다.앱을 재배포하지만 기기에 이전 데이터를 선택적으로 보존하십시오.

기본적으로 내가 원하는 도구 지원은 장치에 배포 할 때 변경된 데이터 만 업데이트하는 것입니다. 예를 들어 장치의 Xcode 프로젝트 리소스 폴더에있는 파일 (날짜, 크기 등)에 따라 새 파일 또는 다른 파일 (동일한 이름의 파일)이 전송되고 장치의 해당 부분이 다음과 같이 덮어 쓰게됩니다. 그. 다른 모든 것은 무시됩니다.

이상적인 시나리오는 다음과 같습니다. Xcode에서 BuildAndRun을 누르면 Xcode는 어떤 데이터를 전송 및 덮어 쓰기 장치 파일로 만들고 어떤 사용자 지정 규칙을 기반으로하지 않을지 파악합니다.

Xcode로 이것을 달성 할 수 있습니까?

UPDATE 나는 분명히 내가 데이터 버전에 대한 응용 프로그램 로직을 추가하지 않음을 확인하기 위해 위의 텍스트를 편집했다. 나는 이것이 빌드 - 앤 - 테스트 파이프 라인 (Xcode)에서 발생하기를 원한다.

답변

1

일반적으로 이것은 매우 간단합니다. XCode가 보내는 모든 것은 자원 번들에 들어갑니다. 디바이스에서 업데이트하는 경우, 자원 번들은 쓰기 전용이므로 문서 디렉토리로 이동해야합니다.

디바이스에서 업데이트 할 수있는 리소스는 모두 '문서 버전이 존재합니다'종류의 로직을 필요로합니다. 변경 사항은 수정 날짜 정보를 추가하는 것입니다.

응용 프로그램 데이터를 sandbox 디렉토리에 업로드하는 옵션이 실행 계획에 있습니다. 여기

좋은 출발점이 될 것입니다 : - http://developer.apple.com/library/mac/#recipes/xcode_help-devices_organizer/articles/copy_app_data_to_sandbox.html

본질적으로, 당신은 장치 관리자에서 장치에서 데이터를 다운로드하여 xcdata 패키지를 만들 수 있습니다. 업로드하려는 항목 만 포함하도록 수정하십시오.

수동으로 업로드하거나 구성표 편집 대화 상자 (옵션 아래)에서 지정할 수 있으므로 구성표를 실행할 때마다 업로드됩니다.

Edit Scheme Dialog

+0

분명한 답변을 보내 주셔서 감사합니다. 이것은 내가 원하는 것처럼 보입니다. 한 가지 질문이 남아 있습니다. 예 : xcode 명령 줄 툴 체인을 사용하여 데이터 다운로드/업로드를 자동화 할 수 있습니까? 감사! – kakyo

+0

배포시, 아니요, 런타임에 예, 답을 편집하여이 내용을 명확하게 작성하겠습니다. –

+0

다시 고든 고맙습니다. 불행히도 그 콤보 상자 아래에 응용 프로그램 데이터를 볼 수 없습니다. 그래서 나는 새로운 질문을 시작했다 : http://stackoverflow.com/questions/16618540/ios-how-to-specify-application-data-package-in-xcode-schemes – kakyo

1

파일에서 버전 번호를 인코딩하는 것이 가장 쉬운 방법이며, 코드에서 버전 번호를 늘리면 코드가 실행될 파일을 발견 할 수 있습니다. 더 낮은 버전 번호, 삭제 또는 무시

+0

그래서 당신은 내가 단지 문서 폴더에 데이터를 전송 유지하고, 내 응용 프로그램 ObjC 코드에서이 버전 제어를 처리하는 의미합니까? – kakyo

+0

@kakyo 파일을 만들 때 파일에 헤더를 추가하거나 파일 이름 자체에 –

+0

을 추가 할 수 있습니다. 내 파일에는 헤더가 있지만 이름은 변경할 수 없습니다 (앱은 이름을 사용합니다). 내 앱 코드가 실제로 버전을 알리기 위해 헤더를 봐야한다는 것을 의미합니까? 이상적으로 내가 원하는 것은 Xcode에서 BuildAndRun을 눌렀을 때 Xcode가 어떤 데이터를 전송 및 덮어 쓰기 장치 파일로 보내고 어떤 사용자 지정 규칙을 기반으로하지 않을지 파악할 것입니다. – kakyo

관련 문제