ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

SyscallError: setpriority(PRIO_DARWIN_ROLE, 5562, 3): No such process

Objcで書かれていたアプリをSwiftに移行する準備としてObjcの大半のコードをフレームワークに移した。
Embedded framework として埋め込むのだが、実行時に参照できる様に Runpath Search Paths に Frameworkのある場所として @executable_path/Frameworks を指定することで参照できる様になる。

これで問題なさそうだったので申請して結果を待っていたのだが、手元にiOS 12iPadがあって 試しにTestFlight からインストールしてみると起動してすぐにクラッシュする。慌てて審査を取り消した。

Xcodeから起動して直接確認してみようとするが、古くてDeviceSupport ファイルがなくて起動できない。
こちらを参照して組み込んで起動できる様になった。

qiita.com

iPadにはiOS 12.5.7がインストールされているが iOS 12.4 までしかなく動かせないかもと頭をよぎったがこれで試して問題なかった。

戻って、Xcodeから起動すると __abort_with_payload で終了している。
検索しても有用な情報がない。
コンソールには

SyscallError: setpriority(PRIO_DARWIN_ROLE, 5562, 3): No such process

と表示されている。
これで検索するとどうやら Framework が見つからない様だ。

試しに、該当FrameworkをOptionalにしてみるともう少し先まで行って、Framework内にあるメソッドが見つからない異常で終了している。やはりFrameworkが読み出せいなための様だ。
色々試してみるが解決に至らなかった。

iOS12で問題があるのは分かったので、iOS13からサポートすることとしたいが、iOS13のデバイスがないので大丈夫かは分からない。
しかし、iOS13が動くデバイスはiOS15まで動くので、シミュレータではiOS15.5で確認できているので何かあったら最新にしてくださいで対応することとしよう。