Open14

App Extension

yorifujiyorifuji
        <key>NSExtension</key>
        <dict>
                <key>NSExtensionAttributes</key>
                <dict>
                        <key>NSExtensionActivationRule</key>
                        <dict>
                                <key>NSExtensionActivationSupportsImageWithMaxCount</key>
                                <integer>1</integer>
                        </dict>
                </dict>
                <key>NSExtensionMainStoryboard</key>
                <string>MainInterface</string>
                <key>NSExtensionPointIdentifier</key>
                <string>com.apple.ui-services</string>
        </dict>
yorifujiyorifuji

シミュレータのファイルが保存される場所

Library/Developer/CoreSimulator/Devices

yorifujiyorifuji

フォトライブラリの画像を選んだときにエラーが出る、上記の定義ではHDRの画像を選ぶとエラーになる

yorifujiyorifuji

URLスキームでアプリを起動するときに「このアプリを開きますか?」を出さない方法

yorifujiyorifuji

'shared' is unavailable in application extensions for iOS: Use view controller based solutions where appropriate instead.

yorifujiyorifuji

ERROR ITMS-90362: "Invalid Info.plist value. The value for the key 'NSExtensionActivationRule' in bundle Yomitori.app/PlugIns/YomitoriActionExtension.appex is invalid. Please refer to the App Extension Programming Guide on https://developer.apple.com"

yorifujiyorifuji
  • target で actionを追加する
  • appgroupをセットする
  • extensionのinfo.plistをいじる
  • extensionに渡ってくるデータはURLとUIImage
    • 前者はライブラリなどから共有した場合
    • 後者はスクリーンショットの共有など
  • extension側でappgroupが読み書き可能な場所にファイルを保存する
  • ホスト側アプリでurl schemeを使ってファイルパスを受け取る