15

大規模なレガシー C++ ライブラリを iOS アプリと統合しようとしています。デバイスでビルドして実行することはできますが、アプリをアーカイブすることはできません。アーカイブは次のエラーで失敗します。

コマンド /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip が終了コード 1 で失敗しました

ストリップで「-v」を実行すると、次のような一連の警告が表示されます

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip : 削除できない再配置エントリによって参照されるシンボル: / MyApp/DerivedData/SmartMusic_iPad/Build/Intermediates/ArchiveIntermediates/MyApp /IntermediateBuildFilesPath/UninstalledProducts/libMyLib-iOS.a(MyWhatever.o)

このメッセージが警告なのか、失敗の理由なのかは明確ではありません。ストリップ出力に問題を示すその他の兆候はありません。手がかりはありますか?

4

9 に答える 9

7

スタティック ライブラリ ターゲットのビルド設定で、「デプロイ後処理」と「コピー中にデバッグ シンボルを取り除く」に NO を選択します。コンパイルされたコードなので、シンボルを削除する必要はありません。同じエラー (「usr/bin/strip が終了コード 1 で失敗しました」) が発生していましたが、これで修正されました。

于 2013-05-24T14:41:48.367 に答える
5

私の場合、ライブラリのターゲット ビルド設定に以下を追加し、正常に動作し始めました。

  • デッド コード ストリッピング: いいえ

  • コピー中にデバッグ シンボルを削除する: すべての構成でいいえ

  • ストリップ スタイル: 非グローバル シンボル

于 2015-09-15T08:57:38.213 に答える
1

私は同じ問題を抱えていますが、編集DEPLOYMENT POSTPROCESSINGしましNOたが、うまくいきません。

Build Phasesターゲットでタブに移動し、をCopy Bundle Resources削除Foundation.frameworkしてから に追加Foundation.frameworkしたLink Binary With Librariesところ、うまくいきました!

それがあなたの問題を解決することを願っています!

于 2014-11-07T08:06:25.257 に答える
1

にはさまざまなオプションがありstrip( manpageを参照)、そのオプションを使用することをお勧めし-rます。Xcode プロジェクト設定内から、実行するストリッピングのタイプを設定できます。Xcode のオプションをマンページのオプションと関連付けることができるかどうかを確認してください。

于 2012-07-31T15:06:34.990 に答える