お?いけるくさい?

iPhoneアプリエンジニアのたまごです。いっちょまえエンジニア目指してちいさな発見や学んだことを覚え書きしていきます!Objective-C/iOS/開発

PROJECTのDeployment Target設定はTARGETSだけで大丈夫なのか?

Xcodeで対象OSを設定したいときに、

Depoyment Targetを変更するところが2箇所ありますね。

(PROJECT と TARGETS)

f:id:simamikiii:20130617192217p:plain

f:id:simamikiii:20130617192224p:plain

 

 

TARGETS > SUMMARYのほうはアプリのバージョンとかBundle Iddentifierとか

もろもろ設定できますよね。

なので私はこっちのDeploymentment Targetは5.0にしてたのですが、

PROJECT > Info > Deploymentment Target のほうは6.1のまま

ストアにあげてしまいました。(´・ω・`)

(つまり一致させずにあげてしまった)

 

デバッグ中(Debug版)は、このSUMMARYの方の対象OSを例えば6.0とかに設定して

それを5.1の端末でビルドしようとすると、エラーが出て怒られたりしていたのだけど、

テストも終盤になってくると、Release版でアーカイブしたものを実機でテストしてました。

(そのときはもちろんSUMMARYの対象OS設定を5.0以上にして)

そのときは問題なく動いていた。

 

で、今日上記のPROJECT > InfoのほうのDeploymentment Targetが

6.1のまま5.0に設定されていないことが発覚して、

 

 

 

「どうしよう....adhoc版ではOS5.1の端末でも問題なく動いたけど、

これストアにあがったら6.1からしか動かんとかなったら...!!」

 

 

 

てめっちゃ不安になった。(´・ω・`)

色んな情報ぐぐったけど、「こっちだけで大丈夫ー!」って言ってる情報ないし。

 

 

■調査してみた

AppleさんのReferenceによると、

https://developer.apple.com/jp/devcenter/ios/library/documentation/Xcode/Conceptual/ios_development_workflow/#115-Configuring_Applications/configuring_applications.html

「絶対PROJECTの方も設定しろよナ!!(Д゚))」とかは書いていないし、

SUMMARYの設定だけで大丈夫くさい。

でもちょっと情報が古い。(´・ω・`)

 

②そしてこの英語のQ&Aによると

http://stackoverflow.com/questions/7105127/xcode-4-target-deployment-target-vs-project-deployment-target

どうやらTARGETSのほうで設定した項目があればそちらが上書きされるので問題なさげ。

でも他のブログとかではみんなPROJECTのほうから設定してるし、信頼性がなんとも。(´・ω・`)

 

 

■そこで....

ためしにTARGETS(SUMMARY)のほうのDeveloment Targetを削除してみる。

すると、デフォルト値である最新OSがグレーの文字で設定された。

で、この状態でPROJECTSのほうを5.1とかにすると、

コンパイラで5.1でビルドしているのが確認できた。

 

 

■つまり...

Q&Aの情報は正しい説に一票?

 

「TARGETのSUMMARYで設定している値があれば、

それがアプリのDevelopmentTargetとして設定される」

 

ということであってくれ・・・・!!

 

 

 

■補足

 

iTunes Connectからアプリの詳細画面にいって
「Binary Details」ってところにいくと「Minimum OS Requirements」に
対象OS(最低)が書いてあったよ!

という先輩のアドバイスをもとにすぐさま確認しにいくと

ステータスはWaiting For Reviewではあるけど

アプリのMinimum OS Requirementsは確かに5.0になっていました。

これってAppleが受け取ったバイナリデータを元に情報作成してくれてるとしたら

ストア版も5.0からで確実。なはず。

 

 

 ガクブル!(ω・`))キョロ(( ´・ω)

またストアでどうなったか報告します。