パソコンなどの、データ消えたことありますか?
私はあります。綺麗さっぱり、焼け野原です。
バックアップとっておけば…とどれだけ後悔したか;;
iCloudへのファイル保存の方法について、記載します。
まずは全体図を。。。
- iCloudDocumentSyncを取り込む
- Xcodeにて、iCloudを使いますよ。の設定
- コード書いてくだけ。
1.ライブラリiCloudDocumentSync を取り込む
iCloudDocumentSyncをpodで取り込んでください。(podの初期設定はGoogle先生に)
podFileに取り込むためにPodfileに下記を追加します。
⇨ pod ‘iCloudDocumentSync’
Podfileを保存して”pod update”で取り込む
2.XcodeにてiCloudを利用するための設定
Xcodeプロジェクトを開きます。
TARGETのSigining & Capabilitiesから +Capabilityを押下
”iCloud”を追加。
ServiceのiCloud Documentsにチェック
Containerは、iCloud.バンドルID
例)iCloud.com.hogehoge.icloudsaveApp
次にinfo.plistに下記を追加(なんかコードタグがうまく動かないので、見辛いですが;;)
<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.com.hogehoge.icloudsaveApp</key> ←Containerと一緒にする
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>icloudsave2</string> ←iCloudDriveに作成されるフォルダ名になる
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>
3.コードを実装する
import iCloudDocumentSyncをインポート
初期セットアップメソッドを呼び出す。
これがないと、ダメっぽいです。
cloud = iCloud.shared()
cloud.setupiCloudDocumentSync(withUbiquityContainer:"iCloud.com.hogehoge.icloudsaveApp")
ラスト、ディレクトリ作成するメソッドです。
func createFolder() throws{
// iCloudドキュメントURLを取得。info.plistで決めたディレクトリ
guard var documentUrl = cloud!.ubiquitousDocumentsDirectoryURL() else {
return
}
// ドキュメントURLにディレクトリ名を付加
documentUrl = documentUrl.appendingPathComponent(backupFolderName)
let fileManager = FileManager.default
let result = fileManager.fileExists(atPath: documentUrl.path)
// ディレクトリが存在しない場合
if result == false{
do {
// ディレクトリ作成(エラーが出る可能性あり)
try fileManager.createDirectory(at: documentUrl, withIntermediateDirectories: true, attributes: nil)
} catch {
throw error
}
}
}
以上です。実機で試してみてください。
念の為、このメソッドを呼び出す際は、 tryをつけてください。
do{
try createFolder()
}catch{
print(error)
}
みたいな。
ファイルの作成等は、また。
(WordPressを使いこなせていない…)
コメント