iOSアプリケーションにGame Centerの機能を実装しようとしています。しかし、私はアプリケーションのバイナリファイルサイズをどれくらい増やすか分かりません。 GameKitには、成果やリーダーボードを使いたいだけなので、使用しない機能がたくさんあるようです。コンパイル時に未使用の機能を残す方法はありますか?アプリでGameKit/Game Centerを使用するとバイナリサイズが増えますか?
ありがとうございます!
iOSアプリケーションにGame Centerの機能を実装しようとしています。しかし、私はアプリケーションのバイナリファイルサイズをどれくらい増やすか分かりません。 GameKitには、成果やリーダーボードを使いたいだけなので、使用しない機能がたくさんあるようです。コンパイル時に未使用の機能を残す方法はありますか?アプリでGameKit/Game Centerを使用するとバイナリサイズが増えますか?
ありがとうございます!
フレームワークの実際のコードは、プログラムにコピーされません。リンカは実行可能コードへのシンボリックリンクを構築し、実行時にデプロイメントプラットフォーム(iPhone、iPadなど)上のフレームワークを見つけることができます。
プログラムサイズの唯一の増加は、GameKit(リーダーボードまたはP2Pコードなど)を使用するために実際に作成したコードに起因します。
iOSフレームワークにリンクしても、バイナリのサイズは実質的に増加しません。これらのフレームワークはすべてオペレーティングシステムの一部としてデバイス上に既に存在しているため、アプリケーションにリンクされているアプリケーションはアプリケーション自体にライブラリを含めず、デバイスの共有場所からロードするだけです。
なぜ、フレームワークがデフォルトまたは自動的にリンクされていないのですか?私たちは毎回これをしなければならないのですか?多くの質問はリンクエラーから来ています。 –
可能なすべての動的フレームワークにリンクするのは効率的ではありません。実行可能ファイル内のスペースを無駄にすることとは別に、プログラムの起動時間を長くし、RAMを浪費します(OSは実行ファイルで定義されたすべての必要なフレームワークを読み込もうとします)。 – Perception