私のテスト動的iOSフレームワークXYZFramework
は、単一のクラスXYZ
で構成されています。
ただし、宣言後でも:
import XYZFramework
このクラスにアクセスできず、次のエラーが発生します。
Use of unresolved identifier 'XYZ'
この問題を解決するにはどうすればよいですか?
答えが見つかりました。クラス宣言の前にpublic
修飾子を付ける必要がありました。したがって、この:
class XYZ {
}
なりました:
public class XYZ {
}
そして、いつものように、~/Library/Developer/Xcode/DerivedData
フォルダは、小さな複雑な問題を修正しました。
フレームワークのクラスに静的関数とインスタンスメンバー関数も含まれている場合は、さらにpublic
キーワードを追加する必要があります。
// set the Framework class to Public
public class FrameworkHello{
// set the initializer to public, otherwise you cannot invoke class
public init() {
}
// set the function to public, as it defaults to internal
public static func world() {
print("hello from a static method")
}
}
これで、Swiftコードまたはlldbでこれにアクセスできます:
(lldb) po FrameworkHello.world()
hello from a static method
これにより、フレームワークのシンボルにReleaseビルドでアクセスできるようになります。