質問: UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); CGPDFPageRelease(pageRef); CGPDFDocumentRelease(pdf); ``` ~~iOS8からCoreGraphicsでPDFの扱い方に変更があったのでしょうか? もしよろしければ原因やヒントとなる情報をお持ちの方がいましたらご教示いただければ幸いです。~~ なお、iOS8でも、Xcodeから実行した際にはエラーとなるものの、 ArchiveしてOTAで実機にインストールするとエラーが発生せず正常にPDFの取得・変換ができております。 つまり、 ・iOS8以上 ・Xcodeから実行 ・一部のPDFでのみエラーとなる という条件でエラーが発生しております。 Xcodeから実行した際と実機単体で実行した際で差分が発生する現象について、 何か知見をお持ちの方がおりましたら、 本現象と直接の関係がないことでも結構ですのでご教示いただけませんでしょうか?
回答: その後、エラー発生時のバックトレースを追ってみるなどして原因を探っていたところ、 下記の質問の回答を参考にとりあえず**エラーを抑制する方法**が分かりました。 要点をかいつまむと、 C++領域の例外をスローしているので 例外ブレイクポイントを利用することでC++の例外を無視してしまおう ということのようです。 具体的な手順としては、 1.CGContextDrawPDFPageの行を選択 !手順1 2.例外ブレイクポイントを追加 !手順2 3.監視対象?をObjective-Cのみとする !手順3 取り急ぎこの方法でArchiveせずともテストを行えるようになりましたので報告させていただきました。 本件のように、バックトレースでlibc++絡みの例外が原因で不明なエラーが発生している場合、同様の方法で**とりあえずの抑制**ができるかもしれません。 とはいえ、根本的な原因は未だ分からない状態ですので引き続き調べてみたいと思います。 今回の発見で、どうやらC++の領域での例外が原因の可能性が高いというところまでは分かったので、そちらの方向で探ってみようと思います。