Electronで作成したアプリに署名後、ファイルの保存が出来ない

More than 1 year has passed since last update.

ElectronアプリをMac App Storeに出した時のつまずきです。

署名後にファイルの保存が出来なくて悩みました。

plistにEntitlements(権限まわりのいろいろ)を指定する必要があります。
※ Entitlementsに指定できるもの → 「Enabling App Sandbox

ユーザーが選択したファイル・フォルダにしか読み書きの権限を与える例

parent.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    ... 省略 ...
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
  </dict>
</plist>

今回のアプリは、「〇〇.png」と関連の「〇〇.html」と、複数のファイルを保存する実装になっていた。もともと「〇〇.png」というファイルを保存するダイアログを出して、保存名が決まった後にファイル名部分の拡張子を変えて別ファイルの保存を行うという処理を実装していたけれども、「〇〇.png」を保存した後、アクセス権限がない「〇〇.html」を保存しようとすると、エラーが発生してしまって出来なかった。

もしかしたら別の解決法はあったかも知れなかったけれども、ひとまず処理を変更して「〇〇.png」も「〇〇.html」も両方保存ダイアログを出すようにしました。

ちなみに、一時的なファイルを作成するためにテンポラリフォルダーに読み書きを行ったのだけど、ここの読み書きは特に許可してなくても大丈夫でした。

参考

[2016年3月時点]Mac用Electronバイナリに署名してApp Storeにアップするためのメモ - Qiita

おわりに

ElectronアプリをMac App Storeに出したときの手順をまとめました。「Electron製アプリ「アニメ画像に変換する君」をMac App Storeにリリース、アプリリリース時の手順まとめ - Qiita

また、今回リリースしたElectronアプリのインストール・使い方は記事「LINEアニメスタンプにも利用できる! APNGやWebPへ変換可能なアプリ「アニメ画像に変換する君」をリリース」を参照ください。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.