web-dev-qa-db-ja.com

Xcode 9-プリコンパイル済みヘッダーの発行に失敗しました

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 '

これから私を助けてください。ありがとう!

29
Shubham

最後に、私はこの問題の解決策を得ました。私のプロジェクトでは、Prefix Headerパスが明確に定義されていません。以前のパスは

$(SRCROOT)/MyPrefixHeaderFile.pch

MyPrefixHeaderFile.pchはプロジェクトフォルダー内の別のフォルダーにあるため、Prefix Headerパスを

$(SRCROOT)/FolderName/MyPrefixHeaderFile.pch

9
Shubham

プロジェクトでココアポッドを使用する場合はこれをお読みください。私の場合、ポッドとxcodeが最初のビルドを成功させた後、デプロイメントターゲットをiOS 10または11に更新します。だから問題は私が行を持っていたポッドファイルの中にありました

platform :ios, '11.0'

そして、私のポッドファイルをプラットフォームに変更した後、プロジェクトの展開ターゲットは9.0でした

platform :ios, '9.0'

プロジェクトが修正されました。

15
ua24

また、「ProductModuleName-Swift.h」のインポートが.hファイルではなく.mファイルにあることを確認してください。

9
Harris

たぶん、あなたは新しいターゲットを作成しますが、あなたはポッドファイルでこれを追加しませんでした

enter image description here

5
Li Yakun

誤ってProjectName.xcodeprojファイルを開くのではなく、ProjectName.xcworkspaceファイル。

xcworkspaceファイルを開くと、プロジェクトが再び動作を開始します!

5
nikdange_me

この解決策を試すことができます。この方法で同じ問題を解決しました。

製品>スキーム>スキームの編集>左メニューの「ビルド」を選択>暗黙的な依存関係を検索

[ビルド]タブで、[暗黙的な依存関係を見つける]をオンにします。

Find implicit dependencies

その後、クリーンを作成し、再度ビルドします。

4
Okan

私の観点では、私は単にインポート文の順序を切り替えて、うまく動作するように解決しました。

3

私自身の状況をループに追加します。

ブリッジングヘッダーファイルで、インポートを追加したとは言えません

#import "File.h"

File.hヘッダーファイル内には、Prefix.pch内にあるインポートから参照されるタイプがあり、File.hに欠落している#importを追加する必要がありました。

私の場合、プロジェクトファイルの1つに「不明なタイプ」などの追加エラーを含む同じコンパイラエラーがあったため、これを問題のあるファイルに追加するだけで、すぐに解決しました。

#import <UIKit/UIKit.h>

1
Benzi Heler

Xcodebuildコマンドの実行時にターミナルでこのエラーが発生した場合、-workspace YourWorkspace.xcworkspaceを必ず渡してください。

0
Anand

@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
0
clopex

また、複数のターゲットがある場合は、#importsをすべてのファイルに含めることに注意してください。

0
Gabriel Oliva