エラーの原因
Found an unexpected Mach-O header code: 1918975009 in xCode 6
プロジェクトをアーカイブして、ad hoc
ビルドすると、ビルド/リンク/アーカイブは正常に動作しますが、xCode
オーガナイザーでExport -> Ad Hoc
、
エラーが表示されます
Found an unexpected Mach-O header code: 191897500.
同じエラーが発生しました。私の場合、ユニバーサルフレームワークが原因でアプリのリソースに誤ってコピーしました(フレームワークはiOS AFAIKのメインの実行可能ファイルに直接マージされるため、これは不要です)。
そのため、ターゲットを選択し、[ビルドフェーズ]タブをクリックし、[バンドルリソースのコピー]リストを調べて、デスクトップアーキテクチャ(i386またはx86_64)を含むライブラリまたはフレームワークをコピーするかどうかを確認します。
ほとんどの場合、このようなファイルのコピーは間違っていますが、何らかの理由で必要な場合は、iOS互換アーキテクチャのみを含めることができます。
同様のエラーがありました1918975009で、新しいSwift手動で追加されたサードパーティのフレームワーク(ワークスペース設定...)上記のスレッドに関連している可能性がありますので、万人に役立つ場合があります...これは、昨日正式にリリースされたXcode 9.3にアップグレードした後にのみ表示されます。
:-1: <path>/Frameworks/<frameworkName>.framework/<frameworkName>: Failed to parse executable: Unknown header: 1918975009
古い非Swiftベースのビルドシステムに戻すと、問題が修正されます。最適なソリューションではありませんが、同様の警告が表示された場合は、今のところ先に進みます。
同じエラーが発生しましたが、コピーバンドルリソースのライブラリ/フレームワーク、またはライブラリの不正なバージョンをトレースできませんでした。
回避策として、コマンドラインからエクスポートビルドを実行できることがわかりましたが、うまくいくようです:
xcodebuild -exportArchive -exportFormat ipa \
-archivePath /path/to/app.xcarchive/ \
-exportPath /path/to/app.ipa \
-exportProvisioningProfile "Name of provisioning profile"
ここで、「プロビジョニングプロファイルの名前」は、Xcodeに表示されるプロビジョニングプロファイルの名前です(プロファイルへのパスではありません)
[ビルドフェーズ]-> [バンドルリソースのコピー]に移動すると、フレームワークが表示されます。このセクションから削除し、LINK BINARY WITH LIBRARIESに追加します。それが動作します..
時々、あなたはBuild Phases
-Embed Pods Frameworks
を見るべきです。シェルファイルを見つけます。例えば。
Pods-midea-common-adddevice_Example-frameworks.sh
を開き、このファイルに問題があるかどうかを確認します。
私の場合は問題を解決しました
ビルドフェーズ->存在しないフレームワークまたはその他のバイナリのバンドルリソースのコピー
twitterKitとDigitKitバイナリを削除します。
編集:バンドルリソースのコピーからこのバイナリを削除すると、プロジェクトをビルド、アーカイブ、検証に渡し、App Storeに送信することもできます。しかし、プロジェクトを実行すると失敗します。したがって、Copy Bundle Resourcesから削除し、Link Binary With Libraryセクションに追加する場合(「Add other」を選択し、cmd + shift + gの組み合わせを押してバンドルまたはバイナリの場所に移動する)、それは解決されます。
ターゲットの「一般」タブの「埋め込みバイナリ」セクションで静的フレームワークを埋め込まないことを確認してください。
知る.framework内のバイナリアイコンが白の場合、フレームワークが静的かどうか、アイコンが黒の場合は動的フレームワークかどうかを確認できます。
私もこの問題に遭遇しましたが、解決できました...
私の場合、既存のターゲットを複製して新しいターゲットを作成していました。名前を「MyApp-dev copy」から「MyApp-test」に変更しましたが、1つ忘れていました...新しいターゲットを作成すると、新しい.plistファイルも作成されます。そのファイルの名前を変更するのを忘れてから、新しく作成したターゲットにリンクして戻します。
それができたら、問題はなくなりました。私はもともとターゲットについて読んでいました: http://www.raywenderlich.com/68613/create-paid-lite-version-iphone-app そのページに戻ることが問題の解決に役立ちました。