파일 형식 연결 되돌리기


12

때때로 iTunes Music Store 패키지로 작업합니다. 이 패키지는 .itmsp확장명이 있습니다. 마찬가지로 .app, .itmsp기본적으로 컨테이너 디렉토리입니다. .itmsp폴더에는 XML 및 미디어 파일이 포함됩니다.

최신 Xcode 및 / 또는 Mac OS X 업데이트 (Mac OS 10.8.3의 Xcode 4.6.1)는 .itmsp확장자 가있는 디렉토리의 파일 형식 연결을 가로 채었습니다 . 이전에는 일반 폴더처럼 취급되었으므로 내부를보기 위해 두 번 클릭 할 필요가 없습니다. 상호 작용하려면 두 번 클릭해야합니다. 내가 할 때 Application Loader라는 프로그램이 열려고 시도합니다. 내부를 보려면 마우스 오른쪽 버튼을 클릭하고 "패키지 내용 표시"를 선택해야합니다. 주어진 시간에 수천 개의 파일을 처리하므로 작동하지 않습니다.

Get Info 및 RCDefaultApp을 사용하여 파일 형식 연결을 변경하거나 제거하려고했습니다. 둘 다 작동하지 않습니다. 파일 유형 연결을 제거하면 단순히 .itmsp디렉토리가 빈 파일로 바뀝니다 . 따라서 Application Loader.app를 완전히 삭제합니다. 두 경우 모두 마우스 오른쪽 버튼을 클릭하지 않아도 내용을 탐색 할 수 없습니다.

이전에 허용 대답은 잠시 동안 치료를했다 : lsregister -u /Applications/Contents/Applications/Application\ Loader.app/그것은 당신이 엑스 코드가 설치되어있는 경우 엑스 코드 및 / 또는 Mac OS X에서, 당신은 디렉토리 이름을 지정하여 직접 테스트 할 수 있어야 업데이트 이후 작동이 중지 있어요 foo.itmsp.

.itmsp파일이 다시 폴더로 처리 되도록하려면 어떻게 해야합니까?


Xcode 앱 아이콘에서 파일을 끌어다 놓아 보았습니까?
MrDaniel

제안 해 주셔서 감사합니다. 현재 문제와 관련이 없으므로 내 의도를 명확히하기 위해 내 질문을 편집하려고합니다.
michaelmichael

1
어떤 OS X 버전을 사용하고 있습니까? Xcode의 버전은 무엇입니까?
Old Pro

CFBundleDocumentTypes에서 유형을 제거하고 Launch Service DataBase를 종료하는 내 답변을 삭제했습니다. 그것은 잠시 동안 작동하지만 나중에 어느 시점에서 다시 자신을 다시 주장하는 것처럼 보입니다. ??
markhunte

답변:


11

문제 : .itmsp 폴더가 파일로 표시됩니다

Finder는 .itmsp 폴더를 패키지 (즉, 단일 파일 인 것처럼) 로 취급 합니다. 예를 들어 열보기에서 .itmsp 폴더에 포함 된 내용은 보이지 않으며 문서 아이콘 만 표시됩니다.

여기에 이미지 설명을 입력하십시오

Finder는 번들 프로그래밍 안내서 에서 다음 조건 중 하나에 해당하는 경우 디렉토리를 패키지로 간주합니다 .

  1. 디렉토리의 알려진 파일 이름 확장자는 .app, .bundle, .framework, .plugin, .kext 등입니다 ( /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist.에 정의되어 있음) . 이진 plist이므로 Xcode로 엽니 다 ( open -a Xcode Info.plist).

  2. 디렉토리에는 일부 다른 응용 프로그램 청구가 패키지 유형을 나타내는 확장자가 있습니다 ( com.apple.package출력 결과 mdls -name kMDItemContentTypeTree <foldername>에서 찾으십시오).

  3. 디렉토리에 패키지 비트 세트가 있습니다 (을 GetFileInfo -ab <foldername>리턴 1하면 설정 됨).

사례 2. .itmsp 폴더에 적용 : Application Loader.app유형을 내보내고 com.apple.itunes-producer.itmsp다음을 준수하도록 설정합니다 com.apple.package.

$ mkdir foo.itmsp
$ mdls -name kMDItemContentTypeTree foo.itmsp/
kMDItemContentTypeTree = (
    "com.apple.itunes-producer.itmsp",
    "com.apple.package",
    (...)
)
$ grep -B 5 -A 8 com.apple.package /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Info.plist 
    <key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>com.apple.package</string>
                <string>public.composite-content</string>
            </array>
            <key>UTTypeDescription</key>
            <string>iTunes Package</string>
            <key>UTTypeIconFile</key>
            <string>ITMSP.icns</string>
            <key>UTTypeIdentifier</key>
            <string>com.apple.itunes-producer.itmsp</string>

해결책 : 유형을 다시 선언 com.apple.itunes-producer.itmsp

해결책은 형식 com.apple.itunes-producer.itmsp과 확장명 itmsp폴더 로 다시 선언 하고 Launch Services가 수정 된 형식 선언을 사용하도록하는 것입니다.

중요 사항:

OP의 문제를 안정적으로 해결하지만 제안 된 솔루션은 다른 패키지에 적용될 때 폴더로 표시하지 않습니다.

제안 된 솔루션이 비표준 응용 프로그램 경로에있는 응용 프로그램에서 선언 한 파일 형식에서만 작동하는 것으로 나타났습니다.

이것은의 경우 Application Loader.app에 위치하고 있습니다 /Applications/Xcode.app/Contents/Applications/.

부분 솔루션에 관심이 있다면이 답변의 끝을 확인하십시오.

Finder에서 .itmsp 폴더를 폴더로 표시하려면 다음 단계를 수행하십시오.

  1. 열기 자동화 응용 프로그램 폴더 선택에서 응용 프로그램 :

    여기에 이미지 설명을 입력하십시오

  2. 라이브러리 목록에서 유틸리티를 선택하고 쉘 스크립트 실행을 선택한 후 오른쪽 분할 창으로 끄십시오.

    여기에 이미지 설명을 입력하십시오

  3. 기본 스크립트 내용을 exit 0다음 으로 바꾸십시오 .

    여기에 이미지 설명을 입력하십시오

  4. itmspOpener로 애플리케이션을 저장하십시오.

    여기에 이미지 설명을 입력하십시오

  5. 오토메이터를 닫습니다.

  6. itmspOpener.app내용을 선택 하고 표시 하십시오 .

    여기에 이미지 설명을 입력하십시오

  7. Contents> Info.plist를 찾아서 좋아하는 편집기로여십시오.

    여기에 이미지 설명을 입력하십시오

  8. 다음에서이 섹션을 교체하십시오 Info.plist.

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>itmsp</string>
            </array>
            <key>CFBundleTypeName</key>
                <string>itmsp folder</string>
            <key>CFBundleTypeRole</key>
                <string>Viewer</string>
            <key>CFBundleTypeIconFile</key>
                <string>folder</string>
            <key>LSTypeIsPackage</key>
                <false/>
            <key>LSHandlerRank</key>
                <string>Owner</string>
        </dict>
    </array>
    (...)
    <key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>kUTTypeDirectory</string>
            </array>
            <key>UTTypeDescription</key>
            <string>itmsp folder</string>
            <key>UTTypeIconFile</key>
            <string>folder.icns</string>
            <key>UTTypeIdentifier</key>
            <string>com.apple.itunes-producer.itmsp</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <string>itmsp</string>
            </dict>
        </dict>
    </array>
    

    참고 :kUTTypeDirectory대신 public.directoryUTExportedTypeDeclarations? 에서 애플의 설명서 : 중요 : 코드에서 시스템 정의 요로 감염을 사용하는 경우에 정의 된 상수 사용해야 UTCoreTypes.h사용할 수있는 실행 서비스 프레임 워크보다는 실제 UTI 문자열을. 예를 들어“com.apple.application”대신 kUTTypeApplication을 전달하십시오. “System-Declared Uniform Type Identifiers”에는 UTI 문자열 외에도 이러한 상수가 나열되어 있습니다.

  9. .itmsp 파일을 연결 itmspOpener하고 버튼을 누릅니다 Change All...:

    여기에 이미지 설명을 입력하십시오

  10. Launch Services 데이터베이스를 재설정하십시오.

    $ lsregister -kill -r -domain local -domain system -domain user
    

    (OS X 10.8 lsregister에서는에 있습니다 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/.)

  11. .itmsp 폴더를 작성하고 해당 특성을 나열하십시오.

    $ mkdir foo3.itmsp
    $ mdls -name kMDItemContentTypeTree foo3.itmsp/
    kMDItemContentTypeTree = (
        "public.folder",
        "public.directory",
        "public.item"
    )
    

    Launch Services 데이터베이스가 재설정되었으므로 이제 Finder는 .itmsp 폴더를 폴더로 표시합니다.

  12. itmspOpener.appplist 파일을로드하고 등록하려면 엽니 다 com.apple.itunes-producer.itmsp.

    $ open ~/Desktop/itmspOpener.app
    
  13. 시작 Application Loader.app:

    $ open '/Applications/Xcode.app/Contents/Applications/Application Loader.app'
    

    폴더 foo3.itmsp는 여전히 폴더 로 표시되어야합니다.

  14. 폴더 속성을 다시 확인하십시오.

    $ mdls -name kMDItemContentTypeTree foo3.itmsp/
    kMDItemContentTypeTree = (
        "public.directory",
        "public.item",
        "public.content"
    )
    

    com.apple.package 폴더의 메타 데이터 속성에 추가되지 않았기 때문에 Finder는 여전히 .itmsp 폴더를 폴더로 표시합니다!

자동화 된 솔루션 : 로그인 후 .itmsp 폴더를 폴더로 표시

로그인 후 .itmsp 폴더를 폴더로 표시하려면 :

  1. 위에서 설명한대로 작성 itmspOpener.app하고 수정 하십시오 Info.plist.

  2. /usr/local/bin/itmspTypeLoader이 내용으로 작성하십시오 (변수 는 상주 itmspOpener하는 위치를 가리키고 itmspOpener.app필요에 따라 변경하십시오).

    #!/bin/bash
    
    itmspOpener="/Users/jaume/Applications/itmspOpener.app/"
    
    echo "$(date): Starting" > /tmp/itmspTypeLoader.log
    sleep 15
    echo "$(date): Deleting Launch Services database" >> /tmp/itmspTypeLoader.log
    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user >> /tmp/itmspTypeLoader.log
    sleep 15
    echo "$(date): Starting $itmspOpener" >> /tmp/itmspTypeLoader.log
    open $itmspOpener >> /tmp/itmspTypeLoader.log
    sleep 1
    echo "$(date): Starting Application Loader.app" >> /tmp/itmspTypeLoader.log
    open "/Applications/Xcode.app/Contents/Applications/Application Loader.app/"
    
    # Wait until process "Application Loader.app" exists
    while [ $(ps -ef|grep -v grep|grep -c "Application Loader") -ne 1 ]; do
        sleep 1
        echo "$(date): Waiting" >> /tmp/itmspTypeLoader.log
    done
    # Send TERM signal
    kill -TERM $(ps -ef|grep "Application Loader"|grep -v grep|awk "{print \$2}")
    if [ $? -eq 0 ]; then
        echo "$(date): Application Loader killed" >> /tmp/itmspTypeLoader.log
    else
        echo "$(date): Application Loader could not be killed" >> /tmp/itmspTypeLoader.log
    fi
    echo "$(date): Exiting" >> /tmp/itmspTypeLoader.log
    

    sleep 15달리기 전과 후에 모두 lsregister가장 중요합니다. 원하는 결과가 보이지 않으면 다른 지연을 시도하십시오.

  3. /usr/local/bin/itmspTypeLoaderLauncher이 내용으로 작성하십시오 .

    #!/bin/bash
    
    # $1 returns the short name of the user who is logging in
    su - $1 -c /usr/local/bin/itmspTypeLoader &
    
  4. 두 스크립트를 실행 파일로 설정하십시오.

    $ sudo chmod a+x /usr/local/bin/itmspTypeLoader /usr/local/bin/itmspTypeLoaderLauncher 
    
  5. 설정 /usr/local/bin/itmspTypeLoaderLauncher으로 로그인 후크 :

    $ sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/itmspTypeLoaderLauncher
    
  6. 변경 사항을 적용하려면 재부팅하십시오. 로그인 후 다음을 볼 수 있습니다 :

    여기에 이미지 설명을 입력하십시오

    하고 lsregister -dump있음을 공개한다 itmspOpener.app의 것은 UTExportedTypeDeclarations보다 우선 Application Loader.appS '

    $ lsregister -dump | less
    bundle  id:            24748
            path:          /Users/jaume/Desktop/itmspOpener.app/
            name:          itmspOpener
            (...)
            flags:         apple-internal  relative-icon-path  ui-element  has-min-sys-version-by-arch  hi-res-capable  user-can-change-hi-res-mode  
            item flags:    container  package  application  extension-hidden  native-app  scriptable  services  x86_64  
            (...)
            --------------------------------------------------------
            type    id:            33796
                    uti:           com.apple.itunes-producer.itmsp
                    description:   itmsp folder
                    flags:         exported  active  apple-internal  trusted  
                    icon:          Contents/Resources/folder.icns
                    conforms to:   kuttypedirectory
                    tags:          .itmsp
            --------------------------------------------------------
            (...)
    bundle  id:            24600
            path:          /Applications/Xcode.app/Contents/Applications/Application Loader.app/
            name:          Application Loader
            (...)
            flags:         apple-internal  relative-icon-path  hi-res-capable  user-can-change-hi-res-mode  
            item flags:    container  package  application  extension-hidden  native-app  i386  x86_64  
            (...)
            --------------------------------------------------------
            type    id:            33832
                    uti:           com.apple.itunes-producer.itmsp
                    description:   iTunes Package
                    flags:         exported  inactive  apple-internal  trusted  
                    icon:          Contents/Resources/ITMSP.icns
                    conforms to:   com.apple.package, public.composite-content
                    tags:          .itmsp
            --------------------------------------------------------
    

    당신은 볼 수 있나요 inactive응용 프로그램 Loader.app의 형태 수출 플래그가 설정? 우리는 Application Loader를 물리 쳤다.

산성 테스트 : iTunes 업데이트 후에도 .itmsp 폴더가 계속 표시됩니다

최근에 Xcode를 업데이트했습니다.

여기에 이미지 설명을 입력하십시오

업데이트 중에 .itmsp 폴더가 폴더로 표시되었는지 확인할 수 있습니다.

여기에 이미지 설명을 입력하십시오

그 후 :

여기에 이미지 설명을 입력하십시오

부분 솔루션 : 더블 클릭하면 패키지에 내용이 표시됩니다

앞에서 언급했듯이 위에서 설명한 절차는 Finder에서 패키지로 표시되는 임의의 폴더에서는 작동하지 않습니다.

그러나 패키지를 두 번 클릭하여 열려면 하나의 bash스크립트와 Automator 로 패키지를 수행하는 방법이 있습니다 .

  • 스크립트는 패키지 내부에 숨겨진 임시 폴더를 생성하여 Finder에 표시하여 (패키지를 폴더로 표시) 임시 폴더를 삭제합니다.

    노트 :

    대신 스크립트는 숨겨진 임시 파일을 만들 수 있습니다. 그러나 폴더 rmdir만 삭제 하고 어떤 이유로 파일 을 삭제 하므로 폴더를 만드는 것이 좋습니다. 스크립트가 혼란을 일으키고 빈 폴더 만 삭제되므로 파일을 삭제하는 것만 큼 나쁘지 않습니다.rm

  • Automator는 스크립트를 패키지 파일과 관련된 응용 프로그램으로 묶습니다.

이러한 응용 프로그램을 만드는 단계는 다음과 같습니다. 아래 설명에서 .itmsp 파일을 패키지 유형 예제로 사용합니다.

  1. 열기 자동화 응용 프로그램 폴더 선택에서 응용 프로그램 :

    여기에 이미지 설명을 입력하십시오

  2. 라이브러리 목록에서 유틸리티 를 선택 하고 쉘 스크립트 실행을 선택한 후 오른쪽 분할 창으로 끄십시오.

    여기에 이미지 설명을 입력하십시오

  3. 패스 입력인수로 설정하십시오 .

    여기에 이미지 설명을 입력하십시오

  4. 기본 스크립트 내용을 다음으로 바꾸십시오.

    for f in "$@"; do
        # If not dealing with a directory, exit
        if [ ! -d "$f" ]; then exit; fi
        # Create a temporary directory inside the itmsp "file"
        tmpdir="$f/.itmspOpener$$"
        if mkdir $tmpdir; then
            # Reveal in Finder
            open -R $tmpdir
            # Delete temporary file
            rmdir $tmpdir
        fi
    done
    
  5. itmspOpener로 애플리케이션을 저장하십시오.

    여기에 이미지 설명을 입력하십시오

  6. 오토메이터를 닫습니다.

이제 .itmsp 파일을 관련 폴더로 열 수있는 응용 프로그램이 있습니다.

외관상의 문제가 있습니다. 관련 파일에는 표준 흰색 문서 아이콘이 있습니다.

여기에 이미지 설명을 입력하십시오

이것도 고치자 :

  1. Automator가 닫혀 있는지 확인하십시오.

  2. itmspOpener를 선택하고 내용을 표시하십시오.

    여기에 이미지 설명을 입력하십시오

  3. Contents> Info.plist를 찾아서 좋아하는 편집기로여십시오.

    여기에 이미지 설명을 입력하십시오

  4. CFBundleDocumentTypes배열 에서이 키의 값을 바꾸십시오 .

    <key>CFBundleTypeName</key>
    <string>itmsp folder</string>
    

    이 키를 추가하십시오.

    <key>CFBundleTypeIconFile</key>
    <string>folder</string>
    

    이제 섹션은 다음과 같습니다.

    여기에 이미지 설명을 입력하십시오

  5. Finder로 전환하고 폴더를 선택한 다음 I을 누르고 왼쪽 상단에서 폴더 아이콘을 선택하고 다음으로 복사하십시오 C.

    여기에 이미지 설명을 입력하십시오

  6. 미리보기를 열고 클립 보드에서 파일> 새로 만들기를 선택하십시오. 파일을 folder.icns다음 과 같이 저장하십시오 .

    여기에 이미지 설명을 입력하십시오

  7. 복사 folder.icns하기 itmspOpener/Contents/Resources:

    여기에 이미지 설명을 입력하십시오

  8. .itmsp 파일을 연결 itmspOpener하고 버튼을 누릅니다 Change All...:

    여기에 이미지 설명을 입력하십시오

.itmsp 파일의 아이콘이 폴더로 변경되어야합니다. 또는 적어도 그렇게 생각했습니다. 불행히도, 그렇지 않습니다. 그래서 응용 프로그램 itmspOpener를 다른 위치로 옮겼습니다 (데스크톱에 임시 폴더를 만들고 거기로 옮긴 다음 다시 데스크탑으로 옮겼습니다). Finder의 아이콘 정보가 새로 고쳐졌습니다.

여기에 이미지 설명을 입력하십시오

이제 .itmsp 파일을 두 번 클릭하여 폴더로 열리는 지 확인하십시오.

여기에 이미지 설명을 입력하십시오


이것은 매우 인상적입니다 ...하지만 한 가지 문제가있는 것 같습니다 : Finder가 열보기 (내 선호하는보기 유형)에 .itmsp있으면 폴더에 포함 된 모든 것이 보이지 않습니다. 이유를 정리할 수는 없습니다. 또한, 내가 진실을 알고 있다면 내부를보기 위해 파일을 두 번 클릭 할 필요는 없지만 아.
michaelmichael

1
네 말이 맞아 수천 개의 .itmsp 폴더를 다룰 때 완벽하게 이해해야한다고 말하지만 열보기를 사용하지는 않았습니다. 그러나 문제를 해결할 수있는 방법을 찾았습니다. 즉, Finder가 .itmsp 폴더를 폴더로 취급하도록 강요했습니다. 내 편집 내용을 살펴보십시오 (또는 솔루션이라는 마지막 단락으로 바로 이동하지만 단락 트릭에 설명 된 것처럼 itmspOpener의 Info.plist를 먼저 수정하는 것을 잊지 마십시오)
jaume

믿을 수 없는! 답변 해주셔서 감사합니다. 이것은 Finder와 OS X를 똑딱 거리게 만드는 것들 중 일부에 대한 매우 흥미로운 모습입니다.
michaelmichael

감사합니다. 유용하다고 생각합니다. (가독성을 높이고 더 많은 구조를 제공하기 위해 나중에 답을 편집하겠습니다.)
jaume

나는 마침내 답변을 편집 할 시간을 찾았습니다. 나는 단락의 순서를 다시 정했고 내 대답에 설명 된 솔루션이 iTunes 업데이트에 영향을 미치지 않는다는 증거를 추가했습니다.
jaume

7

한 가지 옵션은로 Application Loader를 등록 취소하는 lsregister -u /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/것이지만 실행 서비스 데이터베이스를 다시 빌드하거나 Xcode가 업데이트 된 경우 다시 열면 등록됩니다.

CFBundleDocumentTypes 및 UTExportedTypeDeclarations 사전의 항목을 주석 처리하여 /Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Info.plist실행할 수도 lsregister -f /Applications/Xcode.app/Contents/Applications/Utilities/Application\ Loader.app/있습니다. Xcode의 코드 서명을 무효화하지 않지만 업데이트로 변경 사항을 덮어 쓸 수 있습니다.

lsregister의 전체 경로는 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister10.5 이상입니다.


앱을 변경 한 후 Info.plist등록을 취소하면 plist에서 제거한 파일 형식이 등록 해제됩니까? 나는 그것이 작동한다고 상상할 수 있고 쉽게 실패한다고 상상할 수 있습니다. 너무.
Old Pro

@OldPro 예, 적어도이 lsregister -u $app && lsregister $app경우에는 변경 사항을 Info.plist에 적용하는 것 같습니다.
Lri

다음 번에 Xcode를 업그레이드 할 때 기본값을 등록하는 Application Loader가 CFBundleDocumentTypes생길 수 있으므로 필요하지 않은 경우 "도구"가 표시되면이를 삭제할 수 있습니다. 또는 수정의 타이어.
bmike

2

다음 은 번들에 대한 Apple의 문서 에서 발췌 한 내용입니다 ( 강조 표시됨).

시스템이 번들 및 패키지를 식별하는 방법

Finder는 다음 조건 중 하나에 해당하는 경우 디렉토리를 패키지로 간주합니다.

  • 디렉토리의 알려진 파일 이름 확장자는 .app, .bundle, .framework, .plugin, .kext 등입니다.
  • 디렉토리에는 일부 다른 응용 프로그램 청구가 패키지 유형을 나타내는 확장자가 있습니다. “ 문서 패키지 ”를 참조하십시오 .
  • 디렉토리에 패키지 비트가 설정되어 있습니다.

패키지를 지정하는 기본 방법은 패키지 디렉토리에 알려진 파일 이름 확장자를 지정하는 것입니다. 대부분의 경우 Xcode는 올바른 확장자를 적용하는 템플릿을 제공하여이를 처리합니다. 적절한 유형의 Xcode 프로젝트를 작성하기 만하면됩니다.

거의 확실하게 Xcode는 Document Packages에.itmsp 설명 된 것처럼 패키지 유형을 주장한다고 주장 합니다. 따라서 Xcode에서 해당 확장을 제거 하면 트릭을 수행 할 수 있지만 Finder가 해당 연결을 확인하면 Xcode에서 제거하면 실행이 취소되지 않을 것으로 생각됩니다. "연결 프로그램 ..."을 마우스 오른쪽 단추로 클릭하면 "권장되는 응용 프로그램"은 무엇입니까? Info.plists를 모두 확인해야합니다. Info.plist

내가 lsregister -u주장한 앱의 등록을 취소하는 방법 을 사용하여 벗어날 수 있는지 확인하시기 바랍니다 .itmsp. 그렇지 않으면 .itmsp모든 plist에서 제거한 다음을 사용하여 전체 파인더 연관 데이터베이스를 종료해야 lsregister -kill -seed합니다. 나머지 시스템에 얼마나 많은 피해를 줄지 말하지 않았다. 아마도 등록을 취소하고 plist를 편집 한 다음 데이터베이스를 종료하고 다시 시드하려고합니다. plist에서 이미 제거한 경우 unregister로 연결을 삭제하지 않고 다시 연결하지 않은 경우 다시 연결하면 연결이 다시 추가됩니다. 또한이 방법으로 문제가되는 앱에 대한 다른 모든 연결을 잃지 않습니다.

더 나쁜 것은 Xcode가 모든 폴더에 번들 비트를 설정하고 설정할 수 있다는 것입니다. 그렇다면 디스크를 사용 GetFileInfo하고 SetFile디스크를 스캔하고 실행 취소 하는 스크립트를 작성해야 할 것 같습니다 . 번들 비트를 넘은 손가락은 설정되지 않은 상태로 유지됩니다. 사용하여 GetFileInfo몇 가지를 테스트하여 확인 할 수 있습니다.


0

나는 당신이 이것을 사용하여 해결할 수 있다고 생각합니다.

/usr/bin/SetFile -a B /path/to/file.itmsp

다른 모든 것을 시도하기 전에 한 가지로 테스트하십시오.

주어진 폴더에서 모든 파일을 실행 해야하는 경우 :

find . -name \*.itmsp -exec /usr/bin/SetFile -a B {} \;

당신을 위해해야합니다.


1
SetFile -a B 번들 비트를 설정 합니다. 실제로 다음을 비활성화해야합니다 SetFile -a b.. 하지만 이후이 영향을주지 않습니다 Has bundle비트가 설정되지 않습니다 GetFileInfo -ab foo.itmsp반환 0.
jaume
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.