사진 앨범 불러오는 데 발생하는 에러 질문 있습니다.

5 답변 글타래를 보이고 있습니다
  • 글쓴이
    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      “Error returned from daemon: Error Domain=com.apple.accounts Code=7 “(null)”” 에러가 발생하는 데, 그런데 PHFetchResult를 가져와서

      CollectionView 에서 사진을 볼 수 있습니다.

      기존에 Photos 를 활용해서 사진 관련 앱 코드를 그대로 따라해도 보고,

      인터넷 상에서 에러의 원인이 info.plist 에 제대로 권한 설정 문제라는 의견이 있어

      info.plist

      • Privacy – Photo Library Usage Description
      • Privacy – Photo Library Additions Usage Description

      를 추가도 해봤는데 에러 메시지는 사라지지 않는 데 해결 방법이 있을 까요?

      코드는 조금 디버깅을 위해 단순화 시켰습니다.


      import UIKit import Photos class ViewController: UIViewController { @IBOutlet private weak var collectionView: UICollectionView! let cellIdentifier : String = "HorizontalCell" let imgManager : PHCachingImageManager = PHCachingImageManager() var fetchResult : PHFetchResult<PHAsset>? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.setAuthorization() let allPhotosOptions = PHFetchOptions() allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)] // 디버그 했을 때 fetchAssets 부분을 통과하며 "Error returned from daemon: Error Domain=com.apple.accounts Code=7 "(null)"" // 오류가 발생합니다. self.fetchResult = PHAsset.fetchAssets(with: allPhotosOptions) self.collectionView.reloadData() } func setAuthorization(){ let status = PHPhotoLibrary.authorizationStatus() switch status{ case .authorized: print("접근 권한 얻음") case .denied: print("접근 권한 거부") case .notDetermined: PHPhotoLibrary.requestAuthorization { status in switch status{ case .authorized: print("접근 권한 거부") default: break } } case .restricted: print("제한된 접근 권한") @unknown default: print("접근 권한 얻을 수 없음") } PHPhotoLibrary.shared().register(self) } }
    • 광현
      참가자
      • 글작성 : 15
      • 답글작성 : 26

      코드에서 UICollectionViewDataSource 프로토콜을 채택한 부분은 첨부하지 않았습니다.

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 580

      검색해보니 allPhotosOptions 즉, fetch options 문제일 수도 있을 것 같아요.
      fetch option 없이 해보면 잘 동작하나요?
      아니면 앨범 선택은 어떤 것으로 했나요?
      저도 확신은 못하지만 참고할 만한 링크들일 것 같아요.

      • 광현
        참가자
        • 글작성 : 15
        • 답글작성 : 26

        야곰님이 주신 링크도 읽어보고 야곰님 말씀대로 self.fetchResult = PHAsset.fetchAssets(with: nil) 로 해보았습니다. 앨범은 .album.smartalbum 모두 해보아도 같은 에러 메시지가 뜨지만 사진은 가져옵니다.

        한동안 검색하거나 여러 가지 시도해 보면서 고쳐봐야겠습니다. 문제는 최근에 만들던 사진 어플리케이션에서는 저 에러 메시지가 안 뜨는 게 ㅎㅎ

        가로 방향의 collectionView를 연습하려고했던 게 디버깅을 더 공부하게 될 거 같습니다.

        혹시 저 프로젝트가 잘못되어서 저런가 해서 오늘 다시 가장 간단한 Photos 를 이용해서 사진 앨범 불러오는 코드를 만들어 봤는데 같은 에러 메시지가 뜨네요.

        • 야곰
          키 마스터
          • 글작성 : 37
          • 답글작성 : 580

          에구… 코코아 터치 프레임워크나 Photos 프레임워크 자체의 버그일 수도 있어요. 다른 버전이나 다른 시뮬레이터 혹은 다른 버전의 기기를 가지고도 해보세요.
          Deployment Version을 변경해서도 시도해보구요. 속상하시겠어요 ㅠㅠ

    • 상헌 이
      참가자
      • 글작성 : 0
      • 답글작성 : 1

      혹시해결하셨나요 ㅠㅠ?

    • 고파 배
      참가자
      • 글작성 : 2
      • 답글작성 : 3

      저 같은경우는 swiftui에서 같은 에러가 발생하였는데

       

      PHContentEditingInputRequestOptions에 있는 isNetworkAccessAllowed를 설정하여 해결하였습니다.

    • odyflame
      참가자
      • 글작성 : 17
      • 답글작성 : 21

      fetchoptions에 있는 isNetworkAccessAllowed를 확인하시는것도 좋을듯합니다.

      공식문서에서 더 자세히 나와있는데 기본적으로 false로 되있고

      로컬에서 사진을 받아올 수 없는 경우 icloud에서 사진을 받아오게 해주는 건데 아마 저에러가 발생할때 중 하나가

      로컬에서 사진을 받아올 수 없어서 그런 에러가 발생하는 걸로 알고있습니다

      다른분들 중에서 더 좋은 답변이 있으면 알려주시면 좋을것같습니다

5 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom