2012-05-06 1 views
1

Xcode를 통해 실행할 때 내 앱이 오늘 신비하게 충돌하기 시작했습니다. , enter image description here앱 설정, 특히 Root.plist가 손상되었습니다. 왜?

구체적으로, 엑스 코드 내 Settings.bundle에 Root.plist가는 : 나는 설정을 사용할 수없는에 문제를 추적, 사실, 내 응용 프로그램의 설정 응용 프로그램을보고, 나는 참조

enter image description here

따라서, 파일이 손상되었습니다이 오류 메시지가 표시됩니다. 혼란 스럽지만 너무 걱정하지 않아. 나는 지난 밤에 파일 사본을 얻는다. (감사합니다 TimeMachine). 그 파일과 내가 지금 가지고있는 파일을 비교하면 차이가 없습니다. 나는 다른 버전을 찾을 때까지 며칠간 되돌아갑니다. 불행히도 내가 심각하게 root.plist 파일을 개정했을 때 최신 버전에서 손상된 것을 찾을 수 없었습니다.

또한 내 앱이 설치되지 않은 새 iPhone에서만 응용 프로그램이 충돌합니다. Xcode를 통해 동일한 앱을 실행할 때 내 다른 iPhone이 충돌하지 않지만 위의 스크린 샷과 같이 빈 설정 창을 표시합니다. 나는 root.plist가 손상되었을지라도 실제 NSUSerDefaults는 여전히 iPhone에 있지만 손상되지 않은 root.plist를 가지고 있다고 생각한다.하지만 새로운 iPhone에는 NSUSerDefaults가 없기 때문에 내 나쁜 앱.

내 plist 콘텐츠입니다. 손상된 것을 발견 할 수 있습니까? 감사. (난 이미 SO: Empty Settings Bundle in Xcode 4.2를 확인하고 그것은 도움이되지 않습니다.)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>PreferenceSpecifiers</key> 
    <array> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSMultiValueSpecifier</string> 
      <key>Title</key> 
      <string>Initial Magnification</string> 
      <key>Values</key> 
      <array> 
       <integer>1</integer> 
       <integer>2</integer> 
       <integer>3</integer> 
      </array> 
      <key>Titles</key> 
      <array> 
       <string>1x</string> 
       <string>2x</string> 
       <string>3x</string> 
      </array> 
      <key>Key</key> 
      <string>LuminInitialMagnificationKey</string> 
      <key>DefaultValue</key> 
      <integer>2</integer> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
      <key>Title</key> 
      <string>Large Lock Button</string> 
      <key>Key</key> 
      <string>LuminLockButtonEmphasis</string> 
      <key>DefaultValue</key> 
      <true/> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
      <key>Title</key> 
      <string>Picture-in-Picture Frame</string> 
      <key>Key</key> 
      <string>LuminOutlineEnabled</string> 
      <key>DefaultValue</key> 
      <true/> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>Title</key> 
      <string>Sound</string> 
     </dict> 
     <dict> 
      <key>DefaultValue</key> 
      <false/> 
      <key>Key</key> 
      <string>LuminFocusBeepKey</string> 
      <key>Title</key> 
      <string>Focus Beep</string> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>Title</key> 
      <string>Share Options</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSChildPaneSpecifier</string> 
      <key>Title</key> 
      <string>Mail</string> 
      <key>File</key> 
      <string>EmailSettings</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSChildPaneSpecifier</string> 
      <key>Title</key> 
      <string>Tweet</string> 
      <key>File</key> 
      <string>TweetSettings</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSChildPaneSpecifier</string> 
      <key>Title</key> 
      <string>Facebook</string> 
      <key>File</key> 
      <string>FacebookSettings</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>Title</key> 
      <string>History</string> 
      <key>FooterText</key> 
      <string>Tagged images will not be deleted. Dropbox mirroring is queued until WiFi connectivity is available.</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSMultiValueSpecifier</string> 
      <key>Title</key> 
      <string>Delay Before Saving</string> 
      <key>Values</key> 
      <array> 
       <string>1</string> 
       <string>3</string> 
       <string>5</string> 
       <string>7</string> 
      </array> 
      <key>DefaultValue</key> 
      <string>3</string> 
      <key>Titles</key> 
      <array> 
       <string>1 second</string> 
       <string>3 seconds</string> 
       <string>5 seconds</string> 
       <string>7 seconds</string> 
      </array> 
      <key>Key</key> 
      <string>LuminTimeToWaitBeforeHistoryKey</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSTextFieldSpecifier</string> 
      <key>Title</key> 
      <string>Number of Images to Keep</string> 
      <key>Key</key> 
      <string>LuminNumberOfHistoryFilesKey</string> 
      <key>DefaultValue</key> 
      <string>100</string> 
      <key>KeyboardType</key> 
      <string>NumberPad</string> 
     </dict> 
     <dict> 
      <key>DefaultValue</key> 
      <false/> 
      <key>Key</key> 
      <string>LuminDropboxActive</string> 
      <key>Title</key> 
      <string>Mirror to Dropbox</string> 
      <key>Type</key> 
      <string>PSToggleSwitchSpecifier</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSGroupSpecifier</string> 
      <key>FooterText</key> 
      <string>Lumin™ © 2011-2012 M. Zabetian & BitsOnTheGo.com. All rights reserved. Special Thanks to Tim Smith and AppliedDesign.tv.</string> 
     </dict> 
     <dict> 
      <key>Type</key> 
      <string>PSTitleValueSpecifier</string> 
      <key>DefaultValue</key> 
      <string>Unknown</string> 
      <key>Title</key> 
      <string>Version</string> 
      <key>Key</key> 
      <string>AppVersionStringKey</string> 
     </dict> 
    </array> 
    <key>StringsTable</key> 
    <string>Root</string> 
</dict> 
</plist> 
+0

나는이 문제에 대해서도 눈치 챘다. Xcode의 버그라고 생각한다. .plist를 수동으로 (코드 내에서) 수정할 때마다 거의 저에게 일어납니다. Xcode는 그것이 아니라고 주장 할 때 파일이 손상되었다고 주장합니다. 이 문제를 완전히 피할 수있는 유일한 방법은 Xcode의 UI에서 파일을 수정하는 것입니다. –

+0

나는 그것을 이해했을지도 모른다라고 생각한다. @MDT, plist에 "&"가 있습니까? – mahboudz

+0

나는 그것이 당신을 위해 무엇을했는지를 추측하고 있습니다. 그리고 Xcode가 저에게 문제가 있다고 생각하기 시작하지 않았습니다. –

답변

1

나는이 문제를 해결했다. 내가 엑스 코드와 같은 다른 텍스트 편집기를 사용하여 열려 있지 것이라고했다 BitsOnTheGo.com

Zabetian와 BitsOnTheGo.com Zabetian &

교체 그것이 손상되었다고 주장하는 파일. 앰퍼샌드를 바꾸면 Xcode에서 열어서 앱을 빌드하고 실행할 수 있으며 전체 설정 창을 볼 수 있습니다.

Xcode에서 버그로 간주되는지 여부는 확실하지 않습니다. 설정 플라이어에 "&"과 같은 문자가 있는지 여부에 따라 다릅니다. 왜 그렇게되지 않을지 확신하지 못합니다.

+2

해당 속성 목록은 XML이므로 [특정 특수 문자를 이스케이프 처리]해야합니다 (http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML). '&'는'&'로 이스케이프되어야합니다. –