質問: ### 発生している問題・エラーメッセージ 実機でビルドしようとすると下記エラーが発生してしまいます。シミュレータでは問題なくビルド通ります。 実機をiOS13.3.1にアップデートしてからこのエラーが発生するようになりました。 どなたか解決策ご教示いただけないでしょうか? ``` dyld: Library not loaded: @rpath/Charts.framework/Charts ``` ``` # Uncomment the next line to define a global platform for your project # platform :ios, '13.2' target 'プロジェクト名' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # use_modular_headers! # Pods for プロジェクト名 pod 'RxSwift' pod 'RxCocoa' pod 'XLPagerTabStrip' pod 'Charts' pod 'SVProgressHUD' pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'FirebaseFirestoreSwift' pod 'Firebase/Auth' pod 'Firebase/Analytics' pod 'Fabric', '~> 1.10.2' pod 'Crashlytics', '~> 3.14.0' end ``` ### 試したこと この記事を参考に、Podfileで`use_frameworks!`→`use_modular_headers!`に変更。 →下記エラーが発生してしまう。 ``` module map file '/Users/プロジェクトまでのPath/Pods/Headers/Private/openssl_grpc/BoringSSL-GRPC.modulemap' not found ``` ### 補足情報(FW/ツールのバージョンなど) Xcode:11.3.1 実機のバージョン:iOS13.3.1
回答: 次の条件で、現在実機テストが失敗する現象を確認しています。 * iOS13.3.1の実機を使用 * フレームワーク化されたダイナミックリンクの外部ライブラリを使用 * 無償アカウントでビルド 参考 : iOS13.3.1以降、Appleは無償アカウントでの実機利用を不可にしたのではないかという人もいますが、私としては、おそらくこれはAppleのバグで、いずれ修正されるのではないかと思います。ただ、今のところAppleからの公式なアナウンスは何もないので、推測でしかありません。無償アカウントを使った場合の話なので、放置されてしまう可能性もあると思います。 回避策としては、以下の案があります。 (案1) iOS13.3以前の実機を使用する。 iOS13.3.1をiOS13.3にダウングレードすればよいという話も以前はありましたが、 2月13日以降、AppleはiOS13.3の署名を停止したため、現在は既にダウングレードできなくなっています。 参考: (案2) CocoaPodsでライブラリをインストールする際、`use_frameworks!`の指定の代わりに`modular_headers!`を指定する。(または単純に`use_frameworks!`を削除する。) これによって、外部ライブラリがスタティックリンクされ、問題を回避できる場合がありますが、`use_frameworks!`指定が必須のライブラリもありますので、全てのライブラリでこの方法が通用するわけではありません。Firestoreを使いたい場合は、この方法は使えません。 (案3) Apple Developer Programの有償契約アカウントでビルドする。 年間11,800円の契約料が必要ですが、AppStoreからアプリをリリースするつもりでやっているのだったら、いずれ必要になるので、この方法が一番確実だと思います。 (3/26追記) 3/25にiOS13.4とXcode11.4がリリースされました。 これらを使用することで、この問題は解消されたようです。