質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Q&A

解決済

2回答

11045閲覧

iOS SDKのバージョンによる違いについて

shikasama

総合スコア163

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

0グッド

0クリップ

投稿2017/08/10 01:33

編集2017/08/10 01:37

当方、iOSアプリの開発をしたことがありませんが既存アプリの改修をすることとなりました。
iOS SDKのバージョンのごとの違いがあまりわかっていません。

  1. 使用するiOS SDKのバージョンによりiOSの最低動作バージョンが変わる?

wikiから見るにXcode 8についている iOS SDKの場合はiOS 10が最低動作バージョンになるのでしょうか?

  1. Xcode 8についている iOS SDKを使用する場合はiOS 10以降は動作すると思ってよろしいのでしょうか?

  2. Xcode 8.3.3にについている iOS SDKを使用する場合はiOS 10は動作対象外となってしまうのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

  1. SDKは対応するバージョンのOSで動くアプリを開発するためのものなので、新しいバージョンのiOSが出るとそれに追加/変更/削除された機能に追従するようにSDKもリリースされます。

といっても、完全にリプレースされることはまずないので、変わったところを全く使わなければ新しいSDKを使用したアプリはそれ以前のiOS上でも大抵動きます。ですので、iOS10向けのSDKを使って開発したアプリが、iOS9が持っていてiOS10で全く変更されていない機能しか使っていないならiOS9でも動きます。

  1. 1の通り普通動きますが、今後ずっとという保証はありません。iOS6->7のように大きな変更があってうまく動かないというのはありえます。特にAppleは良く動作を変えるので特定の機能がAppleの胸三寸で動かなくなることもあります。

  2. これも1の通りで対象外にはならないです。

使用するSDKと最低動作バージョンはそれぞれアプリのプロジェクト設定で変更することができます。
SDKには各機能ごとに追加されたり使用非推奨となったバージョンが記載されていてプロジェクトで設定されたバージョンが範囲外の場合はビルド時に警告を出してくれます。
また、機能が削除された場合はSDKにその機能がないということなのでビルドは通りません。
一度ビルドしてみて特に警告が無かったら大抵動きますよ。
画面レイアウトが崩れるなどは別問題ですが。

投稿2017/08/10 03:27

toki_td

総合スコア2850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shikasama

2017/08/10 04:29

回答ありがとうございます。 以下のような解釈であっていますでしょうか? - iOS 10 SDKを使用する場合でもiOS 10未満及び以降のiOSでも動作するが、SDKの変更内容によっては機能がなくなってしまうことがあるのでその場合はビルドが通らなくなるのでそれで確認することができる。 例えば、iOS9SDKで開発した既存のアプリをiOS11に対応させたいという場合は、iOS11SDKを内包しているXcodeを使用し、ビルドしてエラーになった箇所を修正するみたいな感じになるのでしょうか
toki_td

2017/08/10 05:21

解釈はそれであっています。まぁ下位互換性がなくなるので機能が無くなるのはそんなにありませんけど。 「対応させたい」というのは色々含みますがやり方はそうです。 まず現行のアプリをiOS11で動かしてみて、 1. iOSのバージョンを変えても特に全機能問題なく動く   -> 現行から変更する必要は無い 2. あるバージョン以降のiOSで特定の機能を使おうとしたらクラッシュしたり何かうまく動かない   -> iOSの機能が置き換わっていたり動作変更があったりしないか調べてそれに合わせる 3.起動しない   -> 例えばiOS11だったら64bitが必須になるので32bitアプリは起動しなくなる     この場合は設定を変えてビルドしなおし動作を再確認する 4.そもそもビルドが通らない   -> 機能が削除されたりビルド時にわかるような変更の恐れあり、ビルドエラーを調べる といったことをします。 そのあとiOS11特有の機能を追加対応したいなら機能を使う前にiOSのバージョンを調べて対応有無を判定するようなプログラムにします。
guest

0

Q1. 使用するiOS SDKのバージョンによりiOSの最低動作バージョンが変わる?
A1. 逆です、最新のSDKバージョンを使うと最新版のiOSへの最適化及び最新版のiOSの新機能が利用できるようになります。逆に最低動作バージョンはXcodeのDeployment Targetの方で設定されます(Xcode 8の場合は選択できる最低バージョンはiOS 8になります)

Q2. Xcode 8についている iOS SDKを使用する場合はiOS 10以降は動作すると思ってよろしいのでしょうか?
A2. 「iOS 10以降でしか動作しない」という意図の質問でしたら、A1で述べた通り違います。「iOS 10以降(iOS 11とか)でも動作する」という意図の質問でしたら、答えは「9割9分問題ない」となります。稀に動作しなくなることもあります。

Q3. Xcode 8.3.3にについている iOS SDKを使用する場合はiOS 10は動作対象外となってしまうのでしょうか?
A3. 「iOS 10.0」という意味でしたら、Deployment TargetがiOS 10.0もしくはそれ以前であれば動作します。

投稿2017/08/10 03:17

lovee

総合スコア92

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shikasama

2017/08/10 04:20

回答ありがとうございます。 以下のような解釈であっていますでしょうか? - 最低動作バージョンはDeployment Targetで設定(選択)でき、その範囲はXcode自体のバージョンによる。 - iOS 10 SDKを使用する場合でもiOS 10未満も基本的に動作するし、iOS 11以降でもほぼ動作するはず。
lovee

2017/08/10 04:29

- 最低動作バージョンはDeployment Targetで設定(選択)でき、その範囲はXcode自体のバージョンによる。 だいたいそうです。ただDeployment Targetは選択できないバージョンでも無理やり手入力でできなくはないです(オススメはしませんが) - iOS 10 SDKを使用する場合でもiOS 10未満も基本的に動作するし、iOS 11以降でもほぼ動作するはず。 はい、そうです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問