問題タブ [lipo]
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 - iOS ファット バイナリ: すべてのアーキテクチャにビットコードを含める必要がありますか?
ビットコード対応アプリで使用するライブラリを構築する場合、ファット バイナリの各アーキテクチャを構築する必要があり-fembed-bitcode
ますか、それともそのうちの 1 つだけですか?
ビットコードはアーキテクチャに依存せず、複製されるだけなので、そのうちの1つですか?
プリプロセッサ コマンドがアーキテクチャ (NSInteger 幅など) に基づいてコードを変更する可能性があるためです。
x86 スライスを除外すると、それ以外の場合duplicate symbol _llvm.cmdline
は発生しますか? - rdar://21884601
ios - iphoneos および iphonesimulator アーキテクチャを備えた iOS ユニバーサル フレームワーク
xcodebuild
sdk をどちらかに設定してプロジェクトをビルドできますiphoneos
がiphonesimulator
、両方に設定することはできません。そのため、armv7 arm64
アーキテクチャを含むフレームワークを生成するには、 2 回i386 x86_64
実行してから、すべてのアーキテクチャを 1 つのユニバーサル バイナリに結合する必要があります。これを行う商用フレームワークを見ましたが、フィールドがあり、すべての記号が.xcodebuild
lipo
info.plist
CFBundleSupportedPlatforms
CFBundleSupportedPlatforms = ( "iPhoneSimulator" )
lipo
によって公式にサポートされていないため、この方法で使用するべきではないようですxcodebuld
。すべてのアーキテクチャを含むフレームワークを構築するより良い方法はありますか?
ios - 同じ設定の別のプロジェクトで動作している iOS プロジェクトでライブラリを使用することはできません
私は今、何日も私を夢中にさせているばかげた基本的な単純な問題で立ち往生しています!
ストーリーは次のとおりです。
- サードパーティのライブラリを使用すると、プロジェクトのビルドが停止します。
- このライブラリが使用され、正常にビルドされている別のサンプル プロジェクトがあります。
"Project Build Settings"
と"Target Build Settings"
Xcodeの両方のビルド設定をすべて (文字通りすべて) チェックしましたが、すべて同じように見えます。- 両方のプロジェクトのビルド設定のスクリーンショットを次に示します。
- リンカー エラーのスクリーンショットを次に示します。
すべての
lipo:can't open input file
エラーの質問とld: symbol(s) not found for architecture armv7
エラーの質問を検索して見ましたが、どの回答もうまくいかないようです。Googleの検索結果だけを参考にしないでください。プロジェクトのクリーニング、ターゲットへのファイルの削除と再追加、両方のプロジェクトでリンクされたフレームワークの同期、派生データの削除、変更
build active architecture only setting
、および他の質問で提案された他の多くのことを試みました。同じライブラリ ファイルが同じデバイスと Xcode および SDK で正常にコンパイルおよびリンクされているため、「arm64 などと互換性のある新しいバージョンのライブラリをベンダーに要求する」などの提案はしないでください。
私は OS X El Capitan で Xcode 7.1 を実行しています。プロジェクトを詳しく調べる必要がある場合は、TeamViewer アクセスを提供することもできます。
どんな助けも本当に感謝しています。私は本当にこれにこだわっています。
前もって感謝します。
ios - xcode7: ファイルは、リンクされているアーキテクチャではない x86_64 用にビルドされました (i386)
「Release-iphoneos」と「Release-iphonesimulator」という名前の 2 つのファイルがあり、これらのコマンドを使用して共通のフレームワークを作成しますが、「ファイルは x86_64 用にビルドされました。リンクされているアーキテクチャーではありません (i386)」というエラーが引き続き発生します。
リポ -作成 "Release-iphoneos/Fxencrypt.framework/Fxencrypt" "Release-iphonesimulator/Fxencrypt.framework/Fxencrypt" -output "Fxencrypt"
cp -R リリース-iphoneos/Fxencrypt.framework ./Fxencrypt.framework
mv Fxencrypt ./Fxencrypt.framwork/Fxencrypt
lipo -info はこれらです
lipo -info Release-iphoneos/Fxencrypt.framework/Fxencrypt ファット ファイルのアーキテクチャ: Release-iphoneos/Fxencrypt.framework/Fxencrypt は: armv7 arm64
lipo -info Release-iphonesimulator/Fxencrypt.framework/Fxencrypt ファット ファイルのアーキテクチャ: Release-iphonesimulator/Fxencrypt.framework/Fxencrypt は: i386 x86_64
lipo -info Fxencrypt.framework/Fxencrypt ファット ファイル内のアーキテクチャ: Fxencrypt.framework/Fxencrypt は: armv7 i386 x86_64 arm64
xcode - XCode ユニバーサル ライブラリのビルド フェーズ - Lipo がファイルを見つけられない
XCode でユニバーサル ライブラリを作成する方法について、いくつかのチュートリアルとガイドを読みました。基本的には、bash スクリプト ビルド フェーズで集約ターゲットを追加して、個別のターゲットをビルドし、それらをまとめて lipo します。
私は自分の小さなスクリプトを持っています (ターゲットに名前を付けた方法で動作します) が、何らかの理由で lipo がファイルを見つけることができません。
致命的なエラー: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: 入力ファイルを開けません: /Users/username/Projects/project/plugins/build/Release-iphoneos/ libproject-plugins.a /Users/username/Projects/project/plugins/build/Release-macos/libproject-plugins.a (そのようなファイルやディレクトリはありません)
しかし、私が
- 失敗したビルドの直後にまったく同じ lipo コマンドを実行すると、すべてが機能し、ファイルが見つかります。
- スクリプトに bash ロジックを追加して、問題が解決しないファイルの作成を待ちます。
lipo
スクリプトの を単純な に置き換えls
ます。ファイルはそこにあります。
何が問題なのかわかりませんxcodebuild
.lipoが呼び出された後にのみファイルを作成するようには見えません(私が最初に考えたように)。
スクリプト;
ios - Apple は「lipo」コマンドの使用を推奨していますか?
動的フレームワークを開発し、それを配布して再利用する場合。シミュレータ (i386 および x86_64) とデバイス (arm7、arm7s、および arm64) アーキテクチャを 1 つに結合します。そのため、開発者はシミュレーターとデバイスでアプリをエラーなしで簡単に実行できます。
ユニバーサル フレームワークを提出しようとすると、AppStore はそれを拒否します。このエラーを修正するために、lipo コマンドを使用してシミュレータ アーキテクチャを削除します。
私の質問は、「lipo」コマンドの使用は Apple によって推奨されていますか?