私はiPhoneとiPadの両方の製品の開発を開始しており、2つはコア機能にカスタムフレームワークを使用します。すべての一般的なAPIを含むiOSフレームワークプロジェクトを作成しました。 iPhoneアプリのデバッグ中にフレームワークをデバッグできるようにしたいと思います。 iPhoneプロジェクトとフレームワークプロジェクトの両方をワークスペースに追加し、フレームワークをiPhoneプロジェクトにリンクしました。プロジェクトをクリーンアップまたはビルドしようとすると、このエラーが発生します。
MyFrameworkは、DEFINES_MODULEを有効にするフレームワークターゲットで使用する有効なPRODUCT_NAMEではありません(名前は有効なC99拡張識別子ではありません)。これはXCode 6にあります
誰もがこれが何を意味するかについて何か考えを持っていますか?
ありがとうございました。
フレームワークの名前が無効であることを意味します。
予約されていない文字が含まれています。
-
フレームワーク名では使用できません
例:
MyFrameroks-iOS
-誤りMyFrameroksiOS
-正解
フレームワークの名前を変更してみてください。プロジェクトのビルド設定でproduct name
を検索して変更します
@Kostiantynコヴァルの答えに追加するだけです。製品名フィールドのデフォルト値は$(TARGET_NAME)
であり、暗黙的にターゲット名から値を取得します。これを$(TARGET_NAME:c99extidentifier)
に変更することで、デフォルト値と同様に、ターゲット名との同期を維持するc99互換の文字列を提供できます。 Appleは、たとえばProduct Module Nameプロパティ($(PRODUCT_NAME:c99extidentifier)
として表示される場所)で使用しています)
実際には、これは、空白などの互換性のない文字を、この場合はアンダースコアなどの互換性のある文字に変更することです。