web-dev-qa-db-ja.com

Swiftコンパイラエラー:フレームワークでの宣言されていない型の使用

私はLCConnectionクラスを作成するカスタムフレームワークLCCommLibraryの新しいバージョンをインポートしていますが、これがビルドされるが複数のことを試みた後にアーカイブされない理由を完全に困惑しています。

  • ターゲットが追加されていることを確認します(4つのアプリ、1つのテスト)
  • プロジェクトのクリーニングと再起動

これはビルドして私のiOSデバイスで実行しますが、どのターゲットもアーカイブしません。

Build Phases

Compiler Error

8
Macness

最後に問題が見つかりました。犯人は、フレームワークのdebugバージョンが含まれていたフレームワークでした。これは〜をひき起こす Archive Schemesは、デフォルトでReleaseを使用しているため、このエラーをスローします。

解決策は、LCCommLibraryプロジェクトを個別に開き、フレームワークターゲットの実行スキームをReleaseに変更し、実行してビルドし、ターゲットフレームワークを見つけ、インポートしてメインプロジェクトファイルに埋め込み、アーカイブすることでした。いつものように。

2
Macness

アーカイブは通常Releaseビルド構成を使用しますが、デバイスでのビルド/実行はDebugビルド構成を使用します。これは、そこに問題があるというヒントです。

あなたの場合、ターゲットのビルド設定に移動してOther Linker FlagsRunpath Search PathsおよびLibrary Search Paths、それらを展開してDebugおよびRelease構成を表示し、両方に同じ設定があることを確認します。おそらくreleaseに不足しているものを見つけますそれらの1つで。

2
Mostafa Berg