3

私は2つのXcodeプロジェクトを持っています:SuperSubSuperカスタム構成があります:EnterpriseSubデフォルトの構成のみがあります:DebugおよびReleaseSuperにターゲット依存関係がありSubます。構成を使用してビルドする場合Super、デフォルトの構成を使用してビルドします。これにより、次の階層が生成されます。EnterpriseSubRelease

Build
|-Products
  |-Enterprise-iphoneos
    |-Super.app
  |-Release-iphoneos
    |-libSub.a
    |-Sub
      |-Sub.h

Clangはビルドに失敗します。これは、通常はlibSub.aSub/Sub.h同じディレクトリにありますが、の代わりに構成を使用してビルドされているSuper.appため、代わりに別のディレクトリにあります。私は両方のプロジェクトを制御しているので、に構成を簡単に追加できますが、これを機能させるには、 Xcodeビルド設定の魔法の呪文が必要だと感じています。SubReleaseEnterpriseEnterpriseSub

4

2 に答える 2

0

親プロジェクト(通常はアプリケーション)でXcode構成ファイルを使用することで、まったく同じ問題を解決しました。

これらは私が取ったステップです:

  1. [新規]>[その他]>[構成ファイル]を使用して、Xcodeで基本構成ファイルを作成します。

  2. あなたのベースxcconfigファイルを書いてください、私のものは少しこのように見えます:

    /// Configure Search Paths
    HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)/include" "$(BUILT_PRODUCTS_DIR)/usr/local/include"
    LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../Externals/Libraries/GoogleAnalytics"
    
    /// Linker flags
    OTHER_LDFLAGS=-ObjC -all_load
    
  3. ここで注意すべきこと$(BUILT_PRODUCTS_DIR)は、次の連結です。

    $(BUILD_DIR)/$(CONFIGURATION)-$(PLATFORM_NAME)
    
  4. カスタム構成専用の構成を作成します。リリースを複製したアドホック構成を作成したため、検索パスは次のようになります。

    #include "BaseConfig.xcconfig"
    
    /// Ad Hoc search paths
    HEADER_SEARCH_PATHS = "$(BUILD_DIR)/Release-$(PLATFORM_NAME)/include" "$(BUILD_DIR)/Release-$(PLATFORM_NAME)/usr/local/include"
    LIBRARY_SEARCH_PATHS = "$(BUILD_DIR)/Release-$(PLATFORM_NAME)" "$(SRCROOT)/../Externals/Sources/GoogleAnalytics"
    

次に、アプリケーションのプロジェクトの[情報]タブで構成を選択し、デバッグとリリースに基本構成を使用してから、カスタム構成に特別な構成を使用します。

于 2013-04-30T21:55:35.417 に答える
0

私のアプリの1つで同様の問題が発生しました。Xcode 12.4では、追加の構成(テスト用にアドホックと呼びます)のシステムフレームワーク検索パス$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)をに設定することで、これを解決できました。

この設定は、[ターゲット]、[ビルド設定]タブの順に選択することでプロジェクトに表示されます。「システムフレームワーク」を検索して見つけることをお勧めします。パスを追加すると、私のスクリーンショットに示されているように、Xcodeはそれをシステム上の実際のパスに変換します。これはアーカイブにも機能します。

ビルド設定の例

于 2021-04-06T21:47:31.307 に答える