7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

iCloudDocumentのフォルダ表示されなさすぎ問題を一撃で退治した話

Last updated at Posted at 2023-03-11

iCloudDocumentとは、ユーザーのファイルをユーザーのiCloud内に保存するものである。

<key>NSUbiquitousContainers</key>
  <dict>
       <key>iCloud.com.***.app2</key>
       <dict>
            <key>NSUbiquitousContainerIsDocumentScopePublic</key>
            <true/>   
            <key>NSUbiquitousContainerName</key>
            <string>App2</string>
            <key>NSUbiquitousContainerSupportedFolderLevels</key>
            <string>Any</string>
           </dict>
  </dict>

本来はこれを追加すればうごくはずなのだが、30回くらいビルドし直しても治らん。

一応解決策として検索してよく出てくるのが、

クリーン ビルドをする
通常のVersionを変更する
Buildバージョンを変更する
Bundle Identifierを変更してみる
一度ストア用に、ビルドをしてAppStoreConnectにアップロードしてみる
(こうすると、普段のビルドでは出現しないエラーがよく出る、そのエラーが原因になっていることがあるため。)

などが上がっているが、どれをやってもうまくいかなかった。ちなみにファイル自体はiCloud内に保存されているのは確かで、取得することはできていた。しかし、FilesアプリやMacのiCloudには表示されない。

埒が明かないので、海外のサイトを見てみると
Documentsフォルダを作ると解決したなどというのがあったので以下のコードを実行してみたが、そもそもすでにフォルダーは存在していた


.onAppear(){
            
            let fm = FileManager.default
            // First get the URL for the default ubiquity container for this app
            if let containerURL = fm.url(forUbiquityContainerIdentifier: nil) {
            let tryURL = containerURL.appendingPathComponent("Documents")
            do {
            if (fm.fileExists(atPath: tryURL.path, isDirectory: nil) == false) {
            try fm.createDirectory(at: tryURL, withIntermediateDirectories: true, attributes: nil)
                print("ディレクトリ作成した")
            }else{
                print("ディレクトリすでに存在している")
            }
            
           let documentsURL = tryURL
            } catch {
            print("ERROR: Cannot create /Documents on iCloud")
            }
            } else {
            print("ERROR: Cannot get ubiquity container")
            }
            
        }

結局どうやって解決したかというと、わたしはXcode学びたての頃に、どこかのサイトで書いてあった通りBuildバージョンは整数ではなく、1.0.0のような表記で、通常のアプリバージョンと同様の形式で記述していた。実はこれが原因だったようだ。。
わたしは,1.0.0から1.0.1 1.0.2などのように変更していたのだ。これではダメらしい。
ビルドバージョンを1.0.0から整数の2に変更して、ビルドしてみると...

iCloudに自分のアプリフォルダーが出現した!!!!!!!

結論

Xcodeはやっぱりクソ

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?