2019年6月24日月曜日

Xcode10になったらFrameworkがnot foundになった

Swift3の時代に作ったソースを久しぶりにXcodeで開いたら、Bridging-Header.hで#importしてるTwitterKit3.4.0とOpenCVがnot foundと表示されるようになってしまった。
リリースしてるアプリだから当然動いてたし、この間いじった覚えもないため、原因としてはXcode10になったくらいしか心当たりがない。

かなり試行錯誤し、結局は プロジェクトの
TARGETS / Build Settings / Search Paths / Framework Search Paths
がおかしかったことがわかった。
読んで字のごとくFrameworkを検索するPathを書くところだが、

$(inherited)
$(PROJECT_DIR)
$(PROJECT_DIR)/Twitter-Kit-iOS

などとなっていたのを

$(inherited)
$(PROJECT_DIR)/Twitter-Kit-iOS
$(PROJECT_DIR)

と順番を入れ替えたところ治ってくれた。
外部Frameworkをプロジェクトにaddすると勝手に新しい pathを追加してくれるみたいなんだが、関係ないpathも消した。
そのディレクトリになければ順番に下に書かれたディレクトリまで検索してくれそうなもんだけど、うまくいかないようで。

なお、実際のフォルダの階層は以上のようになってる。

プロジェクトへのaddは以下のようにした。
アップル純正のが入ったFrameworksフォルダとかもあるけど、直下に入れろみたいな情報も見たのでその通りにしてみてる。

ところでビルドできない致命的エラーは消えたけど、以下のようなWarningが一個出て消えない。
/Users/ユーザ名/Dropbox/Develop/Swift開発/tukkomi/Twitter-Kit-iOS/TwitterCore.framework/Modules/module.private.modulemap:1:29: Private submodule 'TwitterCore.Private' in private module map, expected top-level module
エラー個所は
explicit module TwitterCore.Private {
}
とだけ書かれたところ。とりあえず動きゃいいか。

TwitterKitはもうサポートが終了されてしまったのでこれからはSwifterというのに乗り換えた方が良さそう。

0 件のコメント:

コメントを投稿