問題タブ [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.
ios - 2 つの静的ライブラリ (libssl.a、libcrypto.a) から XCFramework を作成します。
OpenSSL について考えてみましょう。プロジェクト自体には、 と の 2 つの製品がlibssl.a
ありlibcrypto.a
ます。簡単にするために、このリポジトリiphonesimulator
に格納されているコンパイル済みのライブラリを使用し、プラットフォームだけを考えてみましょう。
リポジトリを見ると、各プラットフォームにはiphonesimulator
、iphoneos
必要なすべてのアーキテクチャ用の静的ライブラリのセットがあります。
私の目標は、これら 2 つの静的ライブラリをバンドルする XCFramework を作成して、Swift Package Manager を単一のパッケージとして使用すると便利になるようにすることです。
i386
次のコマンドを使用して、スタティック ライブラリから iOS シミュレータ ( 、x86_64
、arm64
)、iOS ( arm64
、arm7
...)など、複数のプラットフォームをサポートする 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
. だから、私が求めていることは単に不可能だと思いますか?
ios - シミュレーター ビルドの XCFramework を除外する
私のプロジェクトはサードパーティの xcframeworks を使用していますが、xcframework の 1 つがシミュレーターをサポートしていないため、ビルドが失敗します。その特定の xcframework をシミュレータ ビルドから除外する方法はありますか?デバイス ビルドでは?
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キット)を使用しました