[解決済み] プリプロセッサー・マクロがない場合、Xcodeプロジェクトでプロジェクト・レベルで実用的なスキーム固有のフラグを定義する方法はありますか?
2022-04-20 16:04:47
質問
swiftの前は、α、β、ディストリビューションビルドのスキーム一式を定義していました。 これらのスキームには、プロジェクト レベルで特定の動作をゲートするために定義されたマクロのセットがあります。 最も単純な例は、実行ビルドのデフォルトスキームで、すべての Xcode プロジェクトに対してデフォルトで定義されている DEBUG=1 マクロです。 このマクロは、#ifdef DEBUG ... と照会して、それに応じてコードを決定し、必要でないコードをコンパイルすることもできます。
マクロがサポートされていないため、このような設定上のゲーティングはswiftでは簡単ではなさそうです。 私は、コードがコンパイルされるかどうか、それ自体は気にしません。 私は、ビルドスキームに基づいて機能をゲートしたいのですが。
どのように解決するのですか?
Swift では、以下のように "#if/#else/#endif" プリプロセッサマクロをまだ使用できます (より制限されますが)。 アップルのドキュメント . 以下はその例です。
#if DEBUG
let a = 2
#else
let a = 3
#endif
ここで、"DEBUG"のシンボルを他の場所に設定する必要がありますが。Swift Compiler - Custom Flags" セクションの "Other Swift Flags" 行で設定します。DEBUG シンボルを追加するには
-D DEBUG
のエントリーをご覧ください。
(ビルド設定 -> Swift コンパイラ - カスタムフラグ)
通常通り、Debugの時とReleaseの時で異なる値を設定することができます。
実際のコードでテストしてみました。プレイグラウンドでは認識されないようです。
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] Swift 3でディスパッチキューを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] 奇妙な不要なXcodeログを隠す
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] セキュリティで保護されたWebサービスにもアクセスするiOSアプリで、Facebook認証を行うためのデザイン
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] swiftで電子メールアドレスを検証する方法は?
-
[解決済み] iOSアプリがTestFlightベータ版のインストールを通じて実行されているかどうかを実行時に判断する方法