最近Xcodeをバージョン7.1にアップデートしました。これには、Swift 2.1。Swift 2.1を問題なくインストールしました。プロジェクトを実行しようとすると、以前のバージョンはSwift 2.1をサポートしていなかったため、Realmの最新バージョンを取得する必要がありました。古いフレームワークを削除し、Realm 0.96.2をインポートしました。実行するたびに、このエラーが発生します:
bash: /Users/userName/Library/Developer/Xcode/DerivedData/appName-ghiroqitgsbvfhdqxsscyokyoouz/Build/Products/Debug-iphoneos/appName.app/Frameworks/Realm.framework/strip-frameworks.sh: No such file or directory
アプリをApp Storeに送信する場合に必要なスクリプトに問題があると思われるため、Run Scriptフェーズを削除し、新しいフェーズを追加して、Realmドキュメントサイトからスクリプトをコピーしました。
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
私はそれがそれを修正すると思ったが、そうではなかった。次に、問題はRealm.frameworkまたはRealmSwift.frameworkファイルにあるのではないかと思ったので、それらを削除して再インポートしました(念のために)。何も変わっていません。このエラーに修正があるかどうかは誰にもわかりますか?
ありがとう! -CodeIt
エラーメッセージから、_Realm.framework
_および_RealmSwift.framework
_をEmbedded Binariesペインに追加していないようです。General以下のように、プロジェクトのタブ:
さらに検証するために、タブBuild Phasesを確認できます。以下のようになります。
注:スクリプト実行フェーズがafterになることを確認してくださいEmbed Frameworksフェーズ。
ベンダーのフレームワークは、単一の実行可能ファイルだけでなく、実際には、異なるアーキテクチャ上のリンクされた実行可能ファイルのアーカイブであるFATバイナリです。これには、電話での展開に必要な_arm64
_および_armv7
_のアーキテクチャスライスと、シミュレータでアプリを実行するのに必要な_i386
_および_x86_64
_が含まれます。
_strip-frameworks.sh
_スクリプトの主な役割は、不要なスライスを削除することです。 iTunes Connectはシミュレータアーキテクチャを備えたアプリを拒否するため、これにより最終的なパッケージサイズが小さくなり、AppStoreの展開に必要になります。
このスクリプトは、ビルド設定_VALID_ARCHS
_に基づいて機能します。これにより、フレームワークの署名付き実行可能ファイルが変更されるため、コード署名にも注意する必要があります。ビットコードの導入以来、責任としてさらに後処理が行われました。フレームワークバンドルから含まれる_*.bcsymbolmap
_ファイルを抽出し、それらを_*.xcarchive
_の正しいパスに配置します。
PSPDFKitのビットコードに関するFAQトピック には、BCSymbolMapsが何であるかについての適切な説明があります。
BCSymbolMapは、ビットコードのdSYMによく似ています。 Xcodeは、アプリバイナリの作成の一部として、またすべての動的フレームワーク用にビルドします。関数/メソッド名を再記号化してクラッシャーを理解するために必要です。