Objective-CとSwiftにMyProjectName-Bridging-Header.h
を使用してプロジェクトがあり、Objective-Cブリッジングヘッダーも構成しました。また、.pchファイルに「MyprojectName-Swift.h」を追加しました。
これはxcode 8.2では正常に機能しますが、xcode 9からプロジェクトをビルドすると、次のエラーが発生します。
プリコンパイル済みヘッダー '/Library/Developer/Xcode/DerivedData/MyprojectName-lajanjvhqjnfjksdsndsfkads/Build/Intermediates.noindex/PrecompiledHeaders/MyprojectName-Bridging-Header-Swift_44AHJm3/96/ Bridging-Header.h '
これから私を助けてください。ありがとう!
最後に、私はこの問題の解決策を得ました。私のプロジェクトでは、Prefix Header
パスが明確に定義されていません。以前のパスは
$(SRCROOT)/MyPrefixHeaderFile.pch
MyPrefixHeaderFile.pch
はプロジェクトフォルダー内の別のフォルダーにあるため、Prefix Header
パスを
$(SRCROOT)/FolderName/MyPrefixHeaderFile.pch
プロジェクトでココアポッドを使用する場合はこれをお読みください。私の場合、ポッドとxcodeが最初のビルドを成功させた後、デプロイメントターゲットをiOS 10または11に更新します。だから問題は私が行を持っていたポッドファイルの中にありました
platform :ios, '11.0'
そして、私のポッドファイルをプラットフォームに変更した後、プロジェクトの展開ターゲットは9.0でした
platform :ios, '9.0'
プロジェクトが修正されました。
また、「ProductModuleName-Swift.h」のインポートが.hファイルではなく.mファイルにあることを確認してください。
誤ってProjectName.xcodeprojファイルを開くのではなく、ProjectName.xcworkspaceファイル。
xcworkspaceファイルを開くと、プロジェクトが再び動作を開始します!
この解決策を試すことができます。この方法で同じ問題を解決しました。
製品>スキーム>スキームの編集>左メニューの「ビルド」を選択>暗黙的な依存関係を検索
[ビルド]タブで、[暗黙的な依存関係を見つける]をオンにします。
その後、クリーンを作成し、再度ビルドします。
私の観点では、私は単にインポート文の順序を切り替えて、うまく動作するように解決しました。
私自身の状況をループに追加します。
ブリッジングヘッダーファイルで、インポートを追加したとは言えません
#import "File.h"
File.h
ヘッダーファイル内には、Prefix.pch内にあるインポートから参照されるタイプがあり、File.hに欠落している#importを追加する必要がありました。
私の場合、プロジェクトファイルの1つに「不明なタイプ」などの追加エラーを含む同じコンパイラエラーがあったため、これを問題のあるファイルに追加するだけで、すぐに解決しました。
#import <UIKit/UIKit.h>
Xcodebuildコマンドの実行時にターミナルでこのエラーが発生した場合、-workspace YourWorkspace.xcworkspaceを必ず渡してください。
@Li Yakunこれは、プロジェクトに複数のターゲットがある場合のソリューションです。podfileのすべての新しいターゲットには以下が必要です。
target 'NEWTARGET' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for MAINTARGET
shared_pods
end
また、複数のターゲットがある場合は、#import
sをすべてのファイルに含めることに注意してください。