問題タブ [xcframework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1237 参照

ios - 2 つの静的ライブラリ (libssl.a、libcrypto.a) から XCFramework を作成します。

OpenSSL について考えてみましょう。プロジェクト自体には、 と の 2 つの製品がlibssl.aありlibcrypto.aます。簡単にするために、このリポジトリiphonesimulatorに格納されているコンパイル済みのライブラリを使用し、プラットフォームだけを考えてみましょう。

リポジトリを見ると、各プラットフォームにはiphonesimulatoriphoneos必要なすべてのアーキテクチャ用の静的ライブラリのセットがあります。

私の目標は、これら 2 つの静的ライブラリをバンドルする XCFramework を作成して、Swift Package Manager を単一のパッケージとして使用すると便利になるようにすることです。

i386次のコマンドを使用して、スタティック ライブラリから iOS シミュレータ ( 、x86_64arm64)、iOS ( arm64arm7...)など、複数のプラットフォームをサポートする XCFramework を確実に作成できます。

出力は次のとおりです。

xcframework は /Users/name/OSSSL_test/OpenSSL.xcframework に正常に書き出されました

フレームワークの構造は正しく、ヘッダーとlibcrypto.a. 別の Xcode プロジェクトにインポートすると、この XCFramework が認識され、アプリのビルドに使用されます。

ただし、 も追加しようとするとlibssl.a、次のエラーが発生します。

「ios-arm64_i386_x86_64-simulator」という識別子を持つライブラリは既に存在します。

libcrypto.aとの両方libssl.aが同じアーキテクチャであるため、これは理にかなっています。

私の質問は、単一の XCFramework を使用して 2 つの静的ライブラリを一緒にバンドルすることは可能ですか? または、各ライブラリが独自のものを持つように、2 つの別個の XCFrameworks を作成する必要がありますか?

上記のリポジトリでは、.framework各プラットフォームごとに を生成する入力として別のビルド フェーズで実際に使用された静的ライブラリ。ビルド ロジックはOpenSSL.xcodeproj. だから、私が求めていることは単に不可能だと思いますか?

0 投票する
0 に答える
238 参照

ios - シミュレーター ビルドの XCFramework を除外する

私のプロジェクトはサードパーティの xcframeworks を使用していますが、xcframework の 1 つがシミュレーターをサポートしていないため、ビルドが失敗します。その特定の xcframework をシミュレータ ビルドから除外する方法はありますか?デバイス ビルドでは?

0 投票する
0 に答える
71 参照

swift - 「モジュール インターフェイスからモジュール "MyCustom" をビルドできませんでした」で「Firebase/FirebaseCore.h が見つかりません」を解決する方法は?

生成した「MyCustom.xcframework」を (デモ プロジェクト) で使用しようとしました。「MyCustom.xcframework」には、Cocoapods のない Firebase があります。私はこれに従いました。https://mokacoding.com/blog/setting-up-firebase-without-cocoapods/ .

(デモ プロジェクト) で "MyCustom.xcframework" を使用する前は、2018 年から正常に動作している "MyCustom.framework" を使用していましたが、今後は xcframework を使用する必要があります。

問題は、(demo proj) で次のエラーが発生することです (下のスクリーンショットを参照してください)。

ここに画像の説明を入力

私のモジュール マップ (ライブラリ プロジェクト) は次のとおりです。

https://bugs.swift.org/browse/SR-14195によると、私の問題はモジュール名がタイプと同じであることです。しかし、モジュール名を適切に変更する方法がわかりません。Product Module Nameしかし、ビルド設定で変更しようとしました。問題は解決しません。

どんな助けでも感謝します。=)

ノート:

  • Cocoapods を使用していないため、.xcodeproj しかありません。
  • Xcode 12.5を使用しています(以前のバージョンを試してもエラーは同じです)
  • このfirebaseフレームワーク(特にMLキット)を使用しました