web-dev-qa-db-ja.com

Xcode 6のiOS 8拡張機能を使用したアーカイブアプリ中の警告

アプリのアーカイブ中に問題が発生しました。

IOS 8拡張の新しいターゲットを作成しました。

アプリをアーカイブすると、警告が表示されます。

警告は

「PBXCp警告」、「警告:コピーフェーズストリップをスキップ、バイナリコード署名:/ Users/Library/Developer/Xcode/DerivedData/App/Build/Intermediates/ArchiveInter mediates/AppName/IntermediateBuildFilesPath/UninstalledProducts/AppExtappex/AppE xt」

アプリはObjective-Cにあります。

57
Gianpispi

Xcodeターゲットビルド設定の「コピー中にデバッグシンボルを削除」オプションをチェックします。拡張機能は既に署名されているため、デバッグシンボルを削除できないという。

25
perezda

コピー元: https://stackoverflow.com/a/30459703/736384

「通常、コンパイルされたコードにはデバッグ情報が含まれています。このデバッグはデバッガで実行中のコードを検査するのに役立ちますが、ディストリビューションビルドで出荷する最適化コードにはあまり役立ちません。

ここでの問題は、PBXCpがデジタル署名を無効にするため、署名されたバイナリからデバッグシンボルを取り除くことができないことです。そのため、Xcode 6.3より前に作成されたプロジェクトがある場合、このような警告が表示されます。

警告を修正するには、両方の値をNOに変更するだけです。デフォルト値は両方ともYESのままなので、それらを削除しても機能しません。 Xcode 6.3に付属のプロジェクトテンプレートでは、これらがデフォルトでオフになっています。古いテンプレートを使用して開始されたプロジェクトのみ、リリース行にまだYESがあります。」

出典:https://www.cocoanetics.com/2015/04/skipping-copy-phase-strip/

8
Luis Ascorbe

フレームワーク/拡張機能は既に削除され、デフォルトでコード署名されています。アプリケーションプロジェクトは、フレームワークが既に削除されていることを検出できず、無害な警告をスローします。 not無効にしないと、アプリケーションは削除されません。

6
Monstieur

コピー中のデバッグシンボルのストリップビルド設定の効果をめぐって混乱があるようです。この記事を読むことをお勧めします追加情報: コピーフェーズストリップのスキップ

この質問の調査から得た重要なポイントは次のとおりです。

  • Xcode 6.2以降で新しいプロジェクトを作成する場合、プロジェクトファイルに挿入される値は、両方とも[〜#〜] no [〜#〜]です。この設定のデフォルトのビルド構成(デバッグおよびリリース)。
  • リリース構成で値を[〜#〜] yes [〜#〜]に設定し、製品アーカイブを実行しても、生成されたアプリケーションには影響しませんバイナリサイズ(自分のプロジェクトでテストすることでこれを確認することをお勧めします)。
  • iOSクラッシュレポートの暗号化 に使用されるデバッグシンボルは、アプリケーションバンドルとは別の外部.dsymファイルから取得されるため、シンボルテーブルがバイナリに含まれるとは思われません。
3
Mark Edington

Xcodeターゲットのビルド設定の「ストリップスタイル」オプションをチェックします。 「非グローバルシンボル」の場合は、「すべてのシンボル」に変更します。これで問題を解決できますが、この変更によって他の問題が発生したかどうかはわかりません。

1
Xichao Teng

ターゲットのビルド設定の「展開」セクションで、Strip Debug Symbols During Copyそして、実動ビルドに対してYESに設定します。

enter image description here

1
ehrpaulhardt

私のために働いたのは次のことでした:

アーカイブしていたスキームを編集しました。そのウィンドウで、「実行」を選択してから「情報」タブを選択しました。 「ビルド構成」で、「リリース」に変更しました。私はそれを「デバッグ」(デフォルトではオプション)に変更しましたが、その警告は消えました。

これがお役に立てば幸いです。

0
ajpallares