embedded frameworkのプロジェクトをClean Build Folderすると毎回エラーになる
はじめに
embedded frameworkに挑戦しています。
コンパイルが通り実行もできたのですが、
Clean Build Folder
すると毎回エラーになります。
再現可能なプロジェクトの場所
Xcodeのプロジェクトファイルも関係すると思いますので、
ソースコード自体を載せることにあまり意味がないように感じますので、
プロジェクト全体を持つGitHubへのリンクを置きます。
https://github.com/shingo-nakanishi/embedded-framework
↑この中のHogeフォルダです。
エラー内容
エラー内容は
undefined symbol: method descriptor for FooKit.Foo__allocating__init() -> FooKit.Foo
といったものが主です。
一旦は解決するが...
おそらく
https://stackoverflow.com/questions/32687105/framework-not-found-in-xcode
が解決策になると考え、
一度、本プロジェクトの
Embedded Binaries
から全てのembedded frameworkを「-」ボタンで削除し、「+」ボタンで追加し、複数回Xcodeの実行ボタンを押すと正常に実行されます。
(おそらくXcodeの実行ボタンを押す回数は関係なく、「+」ボタンを押した結果が反映されるのに時間がかかっている?)
しかしもう一度、Clean Build Folderするとエラー
上記の通り、「削除&追加」をすると正常に動きだしましたが、
もう一度Clean Build Folderするとまた同じエラーになります。
その都度、「削除&追加」をすればよいのですが、あまりにも手間です。
なにかやり方が間違っているのでしょうか?
それとも、Clean Build Folderは基本的にできなくなってしまうのでしょうか?
念の為に関係しているソースを載せます
「はじめに」に書いたとおりあまりソースコード自体は関係ない気がしますが、関係しているソースコードも載せておきます。
ViewController
import UIKit
import FooKit
import BarKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print(Foo().f)
print(Bar().f)
print(Bar().b)
}
}
Foo
import Foundation
open class Foo {
public init() {}
public let f = "F"
}
Bar
import Foundation
import FooKit
public class Bar: Foo {
public let b = "B"
}
【再掲】プロジェクト全体のコードは次のリンクです
https://github.com/shingo-nakanishi/embedded-framework
参考にしたサイト
embedded frameworkを作成したときに参考にしたサイトを念の為、載せておきます
https://qiita.com/edm/items/4cda53320dfa0858d542