概要
Unity4で書き出したXcodeプロジェクトにNCMB iOS SDKをクイックスタートの「SDKをダウンロードして利用する」に従って導入した場合、ビルドしたアプリをiOS9で動かすとEXC_BAD_ACCESSが出てしまいます。
Unity上でUnity SDKを導入するのではなく、Unityから書き出したXcodeプロジェクト上でiOS SDKを導入する場合です!
原因
Unity4から書き出されたXcodeプロジェクトはObjective-C Automatic Reference Counting(ARC)がNOに設定されています。つまり非ARCなプロジェクトです。
一方でNCMB iOS SDKのソースコードはARC前提で実装されています。
非ARCなプロジェクトでARCなコードを混在させてしまったため、想定外の部分でメモリが解放されてEXC_BAD_ACCESSが発生したものと思われます。
iOS8以前で発生しなかった明確な理由は不明ですが、メモリ管理周りの仕様の厳格化が影響しているのかなと思います。(iOS6→iOS7の時も同じようなことがありました)
回避策
ARCなソースコードをARCでコンパイルするように、ファイル毎にコンパイルフラグを付けてあげることで回避できます。
「Project > Targets > Build Phases > Compile Sources」で、インポートしたNCMB iOS SDKの全てのファイルのCompiler Flagsに「-fobjc-arc」を設定するだけです。
(NCMB iOS SDKのファイル数がめっちゃ多いんですけどね・・・)