自作というよりは自社製っていう感じなんですが、お客さんのアプリにインストールしている際に発生したエラーです。
以下のエラーが出ました。
no matching architecture in universal wrapper
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /Users/hoge/Library/Developer/CoreSimulator/Devices/977028FF-E9A8-4608-AF32-7436C0542091/
data/Containers/Bundle/Application/9A7DA83A-9C33-404E-89ED-49D3715489F4/Dev.app/
Frameworks/myFramework.framework/myFramework
Reason: no suitable image found. Did find:
/Users/hoge/Library/Developer/CoreSimulator/Devices/977028FF-E9A8-4608-AF32-7436C0542091/data/Containers/Bundle/
Application/9A7DA83A-9C33-404E-89ED-49D3715489F4/Dev.app/Frameworks/myFramework.framework/
Frameworks/libswiftCore.dylib:
no matching architecture in universal wrapper
このエラーは、ユニバーサルフレームワークとしてビルドしたFrameworkをインストールする前は全く出ておらず、
対応を行った後に出るようになった上、universal wrapper
という文言につられて、
x86_64
やi386
、arm
系のバイナリは入っているのになぜ発生するのかと暫く頭を悩ませました。
結論からいうと、導入対象のプロジェクトがObjective-C製であり、このフレームワークはSwift製で、Swiftの動作に必要な標準ライブラリがロードされていない為でした。
Objective-C製のプロジェクトはデフォルトでこの様な状態らしく、以下設定を変更する必要がありました。
Always Embed Swift Standard Librariesを有効にする
Build Settings
-> Build Options
にあるAlway Embed Swift Standard Libraries
を有効にします。
上記を有効にする事で無事ビルドと動作の確認が出来ました。
よかったらシェアしてください!