目的

iOSのframeworkについてのメモ
知っていれば、1mm賢くなった感も!?


参照サイト

iOSでライブラリを提供する際に気をつけたいこと
Embedded Framework使いこなし術
上記一部参照しています。とくにEmbedded Frameworkの公式が見つからず。


frameworkとは

frameworkとはある機能、プロジェクト、プログラム、画像、文字列などを他のプロジェクトでも使いまわしたいときに、パッケージ化して使いやすくしたもの。


Embedded Framework

公式ページなどによる明確な説明は見つけられなかったので、Qiitaページによるもので、詳しくは参照ページをご覧ください。
ビルドが早くなる。iOSだけじゃなく、watchOSでも共有できるなどのメリットがある。


framework作成時の豆知識

framework作成時にはDebug用とRelease用のframeworkが作られる。

それぞれの主な違いとしては
Debugframeworkにはi386アーキテクチャの設定が行われていて、
シミュレータでも起動できる。
逆に、Releaseframeworkにはそれが設定されていないので、Releaseを利用した場合は、シミュレータでは起動できない。
じゃあ、Debugを使い回せばいいじゃないかというと、そうではない。
理由は次のEmbedded Frameworkについて


Embedded Frameworkについて

Xcode6から導入された機能 メリットとしては、Embedded Frameworkに設定すると、ビルドが早くなる。
iOSからもiPadからも参照できるなど、OS間で共通して参照できる。
などがある。

注意点としては Embedded Framework設定したframeworkにi386などのアーキテクチャが含まれていると、itunesConnectでの申請時にエラーとなる。
なので、上の項目で
Debug用とRelease用が作成されていたが、
Debug用を使って申請はできない。Release用を使う必要がある。


Debug用とRelease用のframeworkのマージ

framework作成時にはDebug用とRelease用のframeworkが作られる。 と書いたけれども
両方の機能をマージしたframeworkも作れる。らしい。。。
[iOS+Swift] 実機とシミュレータで使用可能なフレームワークの作成方法

ここから想像だけれども

このframeworkでもitunesConnect時にエラーは出ると思う。
なので、RunScriptなどを使って申請時?にi386を削除する処理が必要なよう。
Realm ライブラリはそういうことしてそう。