2017-09-08 12 views
0

私たちのアプリケーションの9つの異なるターゲットを持つ大きなXcodeプロジェクトがあります。ブランド、API-url、その他の小さな違いが異なります。 これらはすべて同じファイル/クラス/ストーリーボードを使用しており、特定のビルド設定、bundleID、appGroupsなどが異なります。それらを区切るコード内のロジックは、同じファイル内の単なるプリプロマクロです。Xcodeは、変更されたときに各アプリケーションターゲットのストーリーボードをコンパイルします

ストーリーボードで何かを変更すると、ストーリーボード全体が再コンパイルされます。かなり大きなストーリーボードなので、しばらく時間がかかります。私の問題は、それぞれターゲットのためにのためにコンパイルすることです。だから私が変更を加えると、それは全体のストーリーボード回をコンパイルし、非常に長い時間がかかります。これらのターゲット間で共有されるストーリーボードはまったく同じなので、なぜそれを一度コンパイルしてコンパイル結果を共有できないのですか?

私はストーリーボードで視覚的に何かを変更するたびに、または私はストーリーボードに小さな何かを変更したたびに、デバイスにターゲットを実行/構築しようと、それはステータスバーでこれを言う:

Building "MyTargetOne": | Compiling 1 of 1 Storyboard files 
[...] 
Building "MyTargetTwo": | Compiling 1 of 1 Storyboard files 
[...] 
Building "MyTargetThree": | Compiling 1 of 1 Storyboard files 
etc. 

特定のターゲットを実行しようとしても、そのターゲットがコンパイルの行の最初にある場合でも、アプリケーションが正常に構築されたとみなす前に残りのターゲットをコンパイルします。

これを防ぐにはどうしたらいいですか? 私はエディタ - >自動的にビューをリフレッシュすることについて知っていますが、ストーリーボードで何をしているのか分かりません。ビルド/実行時にすべてのターゲットが作成されます。

答えて

0

異なるターゲット上の同じファイルで再生することは、常に苦労します。

アプリのデプロイメントターゲットがiOS8以上の場合は、ストーリーボードで動的フレームワーク(Cocoa Touch Framework)を作成し、ターゲットのバイナリをリンクすることができます。

関連する問題