iOS 10.3에서 파일 옮기기 불가능



  • iOS 10.3 beta 1에서부터 발생했고 오늘 올라온 iOS 10.3 beta 2에서도 동일하게 발생한 문제라 수정이 필요한 것으로 보여서 보고합니다.

    iTunes를 통해 앱의 도큐멘트로 저장시킨 동영상을 앱의 파일 이동기능을 통해 앱의 최상위 디렉토리에서 그 외의 디렉토리로 이동을 시도할 경우 '이전 항목이 없거나 해당 문자를 포함하는 폴더가 존재하지 않기 때문에 '<동영상 파일명>'을(를) <디렉토리 이름>(으)로 이동할 수 없습니다.' 라는 오류 메세지가 뜨며 파일 이동이 불가능합니다.

    문제 발생 사용환경 정보는 다음과 같습니다.
    단말은 iPhone 7 Plus (A1784), iOS의 버전은 10.3 beta 2(14E5239e), 앱의 버전은 3.5.3.5+ 입니다.


  • administrators

    문의주신 문제는 iOS10.3 베타 버전에서 APFS(애플 파일시스템) 변경으로인해 발생한 애플측의 오류로 판단되어 애플측에 버그리포트를 보낸 상태입니다. 이용에 참고해주시기 바라며, 문제가 해결될 수 있도록 노력하겠습니다.



  • 엔플 사용자는 아니지만...

    불행히도 애플은 어디서도 언급 해 준적이 없지만,
    APFS는 더이상 유니코드 파일명을 노멀라이즈 해 주지 않습니다.
    이는 관행적으로 유예되어 온 "파일명이 프리젠테이션 레이어에서 처리된어야 한다는 원칙"이 이제서야 실행 된 것으로 버그로 보기 어렵습니다.

    기본적으로 어떤 노멀라이즈 룰을 쓰는지도 언급되어 있지 않아 골치 아프긴 합니다만,
    HPF시절까진 fully decomposed, canonical order 규칙을 썼던 것 처럼 보입니다.

    다만, 노멀라이즈 규칙에 따라 똑같은 것 처럼 보이는 파일명이 여러개가 중복될 수 있어서, 앱 내에서는 동일한 규칙을 하나 선택해서 구현하는 수 밖에 없을 듯 합니다.


  • administrators

    @Jeeeyul-Lee

    좋은 정보 감사합니다.

    말씀하신 것 처럼 유니코드 노멀라이즈에 관련된 이슈이고 APFS에서는 노멀라이즈하지 않고 바이트의 집합으로 파일명을 저장하도록 바뀐 것이 맞습니다.

    문제는 NSFileManager의 일부 메소드들이 NFC(Normalized Form Canonical Composition)로 저장된 파일명을 제대로 처리하지 못하는 버그가 있습니다.₁₎

    가령 NFC를 기본으로 사용하는 Windows에서 iTunes로 파일을 전송하면 iOS의 APFS에서는 NFC 그대로 저장을 합니다.₂₎ 그런데 NSFileManager의 fileExistsAtPath, moveItemAtPath 등 같은 메소드는 NFC 형태로 Path를 전달해도 파일을 찾을 수 없다는 오류를 발생합니다. 이는 명백한 애플의 오류입니다. 참고로 같은 기능을 하는 POSIX API인 access, rename은 정상적으로 동작합니다.

    1 ) NFD(Normalized Form Canonical Decomposition)로 저장된 파일은 정상 동작합니다.
    2 ) HFS에서는 NFD로 변환하여 저장됩니다.



  • 리포트 갱신 : 오늘(20170329) 배포가 시작된 iOS 10.3.2 beta 1에서도 여전히 문제는 해결되지 않았음을 확인했습니다.


Log in to reply
 

Looks like your connection to nPlayer Forums was lost, please wait while we try to reconnect.