しばらく作業していたアプリに問題があります。気が狂ってXcodeを9.4(以前は9.3)に更新するまで、すべてが順調でした。
swift4.0.3でコンパイルされたサードパーティのフレームワークを使用しています。私は完璧に動作しましたが、更新後はコンパイルされませんでした(4.1で4.0.3でコンパイルされたフレームワークをビルドできません)。Swift 4.0.3リリースツールチェーンをダウンロードしてインストールしましたが、エラーなしでビルドできます。
ただし、デバイス(iOS 9.0 ipad)でターゲットを実行すると、dyld`dyld_fatal_errorでクラッシュします。
dyld`dyld_fatal_error:
0x1fe9008c <+0>: trap
0x1fe90090 <+4>: nop
コンソールはこれを出力します:
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/containers/Bundle/Application/2E966F50-67E3-4250-858C-382319CD6274/myApp.app/Frameworks/myFramework.framework/myFramework Reason: Incompatible library version: myFramework requires version
1.0.0 or later, but libswiftCore.dylib provides version 0.0.0
いくつかの事実:
フレームワークは、一般の下の埋め込みバイナリとリンクされたフレームワークとライブラリにあり、ビルドフェーズの下のライブラリと埋め込みフレームワークとのリンクバイナリにあります。
このアプリはiOS9.0にデプロイする必要があり、それに応じてデプロイターゲットが設定されます。
Xcode 9.3を再度インストールしましたが、4.0.3ツールチェーンを使用しても同じ問題が発生しました。
私の疑い:
ツールチェーンが何らかの方法で破損する可能性はありますか?Swift 4.0.3リリース2017-12-05(a)をインストールしました
4.0ツールチェーンを使用していますが、ビルド設定のSwiftコンパイラで4.1と3.3からしか選択できません。これは上書きされていると思いますが、確かではありません。
私の主な懸念は、展開ターゲットがiOS 9.0に設定されていても、BASE SDKでは11.3に設定されており、別のターゲットを選択できないことです。インターネットで9.0SDKが見つかりません。これが問題でしょうか?
また、私の証明書はすべて有効で問題ありません。
よろしくお願いします。何か新しいものを見つけるたびに編集を追加します。
さて、ここでは何の助けも受けませんでしたが、誰かが知る必要がある場合に備えて、これを解決する唯一の方法は、使用しているフレームワークの更新バージョンを要求することでした。これは互換性の問題であり、解決策がないようです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加