iPhone 시뮬레이터 용으로 빌드 할 때 xcode가 앱을 배포하는 디렉토리를 정리하는 간단한 방법이 있습니까? 필요한 경우 시작할 때 Documents 폴더에 복사되는 sqlite 데이터베이스가 있습니다. 문제는 스키마를 변경할 수 있지만 새 데이터베이스가 이미 존재하기 때문에 복사되지 않는다는 것입니다.
이상적으로는 내가 만들 때마다 이전 콘텐츠를 핵무기로 만들 것입니다. 이것이 가능합니까, 아니면 수동으로해야합니까?
iPhone 시뮬레이터 용으로 빌드 할 때 xcode가 앱을 배포하는 디렉토리를 정리하는 간단한 방법이 있습니까? 필요한 경우 시작할 때 Documents 폴더에 복사되는 sqlite 데이터베이스가 있습니다. 문제는 스키마를 변경할 수 있지만 새 데이터베이스가 이미 존재하기 때문에 복사되지 않는다는 것입니다.
이상적으로는 내가 만들 때마다 이전 콘텐츠를 핵무기로 만들 것입니다. 이것이 가능합니까, 아니면 수동으로해야합니까?
답변:
시뮬레이터는 다음 위치에 앱을 설치합니다.
"$HOME/Library/Application Support/iPhone Simulator/User/Applications"
또한 다음을 확인하십시오.
"$HOME/Library/Developer/CoreSimulator/Devices"
GUID 파일 및 디렉토리는 시뮬레이터에 설치된 앱과 일치합니다.
시뮬레이터에서 모든 애플리케이션을 제거하려면 모든 파일 / 디렉토리를 수동으로 삭제하십시오.
XCode의 빌드 프로세스에 스크립트를 추가하는 방법이 있다는 것을 알고 있습니다.
또한 XCode가 각 빌드를 사용하는 GUID를 변경하는 것처럼 보이므로 (내 앱이 XCode의 빌드간에 변경되는 디렉터리) 항상 동일한 디렉터리를 삭제하려고하면 작동하지 않습니다. 한 번에 하나의 앱에서만 작업하는 경우 전체 디렉토리를 지우는 것이 옵션이 될 것입니다.
git reset HEAD --hard && git clean -f
하고 캘린더 구독을 추가 한 후 제거하기 위해 a 를 수행 했습니다.
Apples Dev Resources에서 :
시뮬레이터의 사용자 콘텐츠 및 설정을 공장 출하 상태로 설정하고 설치 한 응용 프로그램을 제거하려면 iPhone Simulator> 콘텐츠 및 설정 재설정을 선택 합니다 .
이것은 다음과 유사합니다.
Hardware > Reset Content and Settings
이 작업을 수행하는 방법은 시뮬레이터에서 내 앱의 아이콘을 클릭 한 상태로 유지 한 다음 흔들 리기 시작하면 흑백 (x)을 클릭하는 것입니다. 정말로 삭제할 것인지 묻는 메시지가 나타나면 예를 클릭하면됩니다. 다음에 앱을 빌드하고 배포 할 때 문제없이 새로운 sqlite db를 사용하므로 파일 시스템을 꼼꼼히 살펴볼 필요가 없습니다.
Mac OS X Lion에서 iOS 5를 실행 한 후 다음을 시도 할 수 있습니다.
RemoveSimulatorApps.command
을 포함 하는 스크립트를 작성하십시오 .rm -rf "$ HOME / Library / Application Support / iPhone Simulator / 5.0 / Applications / *"
PATH
.chmod + x RemoveSimulatorApps.command
정말로하려는 것은 스키마를 변경 한 경우 데이터베이스를 지우는 것입니다. 이 작업을 수행하는 한 가지 방법은 앱의 버전 2.0, 3.0 등을 출시 할 때 장기적으로 더 행복해질 것입니다. sqlite 테이블의 버전을 확인하고 변경된 경우 폐기하는 것입니다. 이전 파일을 사용하고 번들에있는 파일을 사용하십시오.
시뮬레이터를 정리하는 방법을 찾는 것은 새 스키마가있는 새 버전을 배송 할 때 고객의 iPhone을 정리하는 방법에 대한 실제 문제에 도움이되지 않습니다.
추가 사항의 경우, 이전 스키마를 발견했음을 확인한 후 이전 스키마를 파괴하지 않고 새 데이터베이스를 복사하고 이전 데이터베이스에서 흥미로운 데이터를 새 데이터베이스로로드 할 수 있습니다. 그런 다음 이전 데이터베이스를 날려 버리십시오. 이렇게하면 사용자가 데이터베이스에 추가 한 내용을 보존 할 수 있습니다.
Xcode 6부터 다음을 사용하여 명령 줄에서이 작업을 수행 할 수 있습니다. xcrun simctl erase
또한 iOS 시뮬레이터 앱 (Xcode 6 버전 및 이전 버전 모두)에는 현재 부팅 된 장치를 지우는 데 사용할 수있는 "콘텐츠 및 설정 재설정"이라는 메뉴 항목이 있습니다.
이것은 Xcode 6에서 작동합니다.
xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}
.bash_profile의 경우
alias cleansim="xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}"
Xcode 6 기준 :
xcrun simctl erase <sim udid>
<-시뮬레이터를 재설정합니다.
검증 된 답변 에 대한 의견에서 설명했듯이 :
캘린더 구독 추가 및 제거를 테스트하고있었습니다. 실제 기기에서는 설정 , 계정 에서 캘린더 구독을 제거 할 수 있지만이 메뉴는 iOS 시뮬레이터에 존재하지 않으며 전체 시뮬레이터를 재설정하고 싶지 않았습니다.
그래서 git을 사용하여 장치 폴더를 로컬에서 버전 관리 하고 캘린더 구독을 추가 한 후 다음 명령을 수행하여 캘린더 구독을 제거했습니다.
$ git reset HEAD --hard
$ git clean -f
따라서 단계는 다음과 같습니다.
~/Library/Developer/CoreSimulator/Devices/
하고 수행 한 cd
다음 git init
git 저장소를 만듭니다.git commit -a "Message"
git reset --hard HEAD
git commit
이 사라집니다.Xcode <= 5의 경우
다음을 내 ~/.bash_profile
alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'
시뮬레이션에있는 모든 앱을 핵무기 처리합니다.