2013-09-24 2 views
3

나는 다음과 같은 Info.plist를 가지고 있는데, .mybin 파일과 applcation을 연결하려고 시도하고 있습니다. 그러나 .mybin 파일을 설치 한 후에는 아이콘, 설명 또는 연결 (정보 입수와 함께 볼 때)이 없습니다. 저는 OSX 개발에 완전히 익숙하지 않아서 어플리케이션의 패키징을 물려 받았기 때문에 문제를 디버깅하는 방법을 모릅니다. 앱이 차이가 나는 경우 productbuild를 사용하여 .app에 패키지됩니다.Mac 파일 연결이 작동하지 않습니다. 왜 또는 어떻게 디버그할까요?

필자는 내 info.plist를 여러 다른 응용 프로그램과 비교했으며 CFBundleTypeExtensions와 같은 비추천 키를 포함하는 유일한 차이점이 있음을 확인했습니다. 필자는 10.6 이상 만 지원하면되므로 필자는이 필요성을 느끼지 않으며 LSItemContentTypes만으로 충분합니다. 내가 알고있는 바로는 LSItemContentTypes의 'com.me.myapp.mybin'은 같은 이름의 내 보낸 UTI에 대한 링크입니다.

수동으로 .mybin 파일을 응용 프로그램과 연결하려고 시도했지만 응용 프로그램이 해당 파일 형식을 처리하지 못한다는 것을 두 번 클릭하면 실패합니다.

누구든지이 info.plist에 무엇이 잘못되었거나 조사를 해야할지 말할 수 있습니까?

감사합니다.

<plist version="1.0"> 
<dict> 
    <key>CFBundleIconFile</key> 
    <string>MyApp.icns</string> 
    <key>CFBundlePackageType</key> 
    <string>APPL</string> 
    <key>CFBundleGetInfoString</key> 
    <string>My Application version 1.0, Copyright © 2013.</string> 
    <key>CFBundleSignature</key> 
    <string>????</string> 
    <key>CFBundleExecutable</key> 
    <string>My Application</string> 
    <key>CFBundleName</key> 
    <string>My Application</string> 
    <key>LSMinimumSystemVersion</key> 
    <string>10.6</string> 
    <key>CFBundleIdentifier</key> 
    <string>com.me.myapp</string> 
    <key>CFBundleDisplayName</key> 
    <string>My Application</string> 
    <key>CFBundleVersion</key> 
    <string>1.0.0</string> 
    <key>CFBundleShortVersionString</key> 
    <string>1.0.0</string> 
    <key>LSMultipleInstancesProhibited</key> 
    <true/> 
    <key>CFBundleDocumentTypes</key> 
    <array> 
     <dict> 
      <key>CFBundleTypeIconFile</key> 
      <string>MyApp</string> 
      <key>CFBundleTypeName</key> 
      <string>My Application binary</string> 
      <key>CFBundleTypeRole</key> 
      <string>Viewer</string> 
      <key>LSItemContentTypes</key> 
      <array> 
       <string>com.me.myapp.mybin</string> 
      </array> 
      <key>LSHandlerRank</key> 
      <string>Owner</string> 
     </dict> 
    </array> 
    <key>UTExportedTypeDeclarations</key> 
    <array> 
     <dict> 
      <key>UTTypeConformsTo</key> 
      <array> 
       <string>public.data</string> 
      </array> 
      <key>UTTypeDescription</key> 
      <string>My Application binary</string> 
      <key>UTTypeIconFile</key> 
      <string>MyApp.icns</string> 
      <key>UTTypeIdentifier</key> 
      <string>com.me.myapp.mybin</string> 
      <key>UTTypeTagSpecification</key> 
      <dict> 
       <key>public.filename-extension</key> 
       <string>mybin</string> 
       <key>public.mime-type</key> 
       <string>application/vnd.me-app.binary</string> 
      </dict> 
     </dict> 
    </array> 
</dict> 
</plist> 
+0

Info.plist에 권장되는 키 CFBundleInfoDictionaryVersion 및 CFBundleDevelopmentRegion이 없지만 문제가 의심스럽고 그 밖의 다른 것은 보이지 않습니다. – JWWalker

답변

2

당신에게 lsregister 명령을 사용하여 조사 할 수있다 : (.. 내가 사자를 사용하고 맥 OS의 다른 버전에서이 lsregister의 경로가 다르다는 것을 가능)

alias lsregister='/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister' 
lsregister -lint -f /path/to/your.app 

+1

lsregister -dump는 '비활성'플래그가있는 uti를 표시합니다. 응용 프로그램이 설치된 모든 시간에 대해 수십 개의 항목이있었습니다. lsregister -kill -r -all local, 사용자가 항목을 정리합니다. uti가 활성화되고 아이콘과 더블 클릭이 이제 작동합니다. 감사! –