Titanium SDK 2.1以降でUIRequiredDeviceCapabilitiesを定義したい場合



先週サブミットしたアプリがリジェクトされました。
リジェクト内容を見てみると「カメラを使うのにInfo.plistに書いてねーじゃねーかゴルァ!」というものでした。
失意の中ググってみると結構有名なリジェクト理由だったようで、対応方法もいくつか見つけることができます。

『titanium UIRequiredDeviceCapabilities』とかでググると下のブログの記事が上位に出てきてました。
UIRequiredDeviceCapabilities | MOL
UIRequiredDeviceCapabilities | road to win!

簡単だしさっさとサブミットちゃうぞー♪なんてノリでDistributeしてInfo.plistを確認してみたら『Required device capabilities』の欄が出てこない。。
あ、Cleanしなきゃだったかな?と思ってやってみたけどダメ。
というわけで、公式のドキュメントを探してみると…ちゃんと書いてありました。

tiapp.xml and timodule.xml Reference – Titanium 3.0 – Appcelerator Docs

どうやら上のブログで紹介されていたやり方は2.1までのやり方だったようで、それ以降のバージョンの場合は記述方法が違うのでした。。
Titanium 2.1以降の場合はではなくUIRequiredDeviceCapabilitiesで書きなさいとのこと。

<ios>
<plist>
<dict>
  <key>UIRequiredDeviceCapabilities</key>
  <array>
    <string>telephony</string>
    <string>wifi</string>
    <string>sms</string>
    <string>still-camera</string>
    <string>auto-focus-camera</string>
    <string>front-facing-camera</string>
    <string>camera-flash</string>
    <string>video-camera</string>
    <string>accelerometer</string>
    <string>gyroscope</string>
    <string>location-services</string>
    <string>gps</string>
    <string>magnetometer</string>
    <string>gamekit</string>
    <string>microphone</string>
    <string>opengles-1</string>
    <string>opengles-2</string>
    <string>armv6</string>
    <string>armv7</string>
    <string>peer-peer</string>
    <string>bluetooth-le</string>
  </array>
</dict>
</plist>
</ios>

というわけで、tiapp.xmlに上の要素を追加してDistributeしてみると…
出ました『Required device capabilities』!

やっぱり公式ドキュメントをしっかり読まきゃきゃですねー。。


Related Posts Plugin for WordPress, Blogger...