質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.24%

  • Swift

    5348questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Swift 2

    1308questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

TwitterKitを入れる際の'TwitterKit/TwitterKit.h' file not found'というエラーメッセージについて

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 118

axeralater

score 2

SwiftでTwitterKitをpod installしたところ、このエラーが表示されました。

https://dev.twitter.com/twitterkit/ios/installation

の手順に従い、Objective-CのBridge-headerファイルを作成し、

#import <TwitterKit/TwitterKit.h>


の記述をheaderファイルに記載したところ、このエラーが表示されました。

podfileには、

use_frameworks!
   pod 'TwitterCore'
   pod 'TwitterKit'

を記載し、

%pod install
%pod update

を行っています。
Cleanと、Build Cleanも行いました。

このやり方自体に違和感があるので、そもそもBridge-headerがいるかもわからないです。Bridge headerなしの場合は、別のエラーが表示されます。
普通にTwitter投稿がやりたいだけなのですが、以前はここまで複雑じゃありませんでした。
何か方法をおわかりの方は、ご教授頂けると幸いです。

 補足

すみません、説明不足だったのですが、Bridge-headerなしでも、TwitterKitを入れてビルドするだけなら出来るのですが、別のエラーがでたため、ドキュメントを読んでBridge-headerを入れました。
今回やりたいことは、Twitter投稿です。
そこで、ドキュメントにそって、AppDelegate.swiftに、以下のコードを貼っています。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        Twitter.sharedInstance().start(withConsumerKey:"{customor-key}", consumerSecret:"customor-secret")

        return true
    }
func tweet() {
    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) {
            let composer = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
            composer.setInitialText("Hello Twitter!")
            composer.addImage(UIImage(named: "hello"))
            composer.addURL(URL(string: "https://dev.twitter.com"))
            self.presentViewController(socialController, animated: true, completion: nil)
        }
}


これらの機能でTwitter投稿が出来るらしいですが、AppDelegate.swiftにて、
Use of unresolved identifier 'Twitter'というエラーが表示されます。こちら、解決方法が分からずに困っています。同じようなエラーに引っかかった方、おられないでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

 テスト環境

  • MacOS Sierra 10.12.6
  • Xcode 9.2 Build version 9C40b
  • Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)

TwitterKit 3.3.0で名称の変更がなされました。
公式サイトのドキュメントの更新が間に合っていないようですね。

Twitter - swift twitterkitでの投稿(107623)|teratail
Composing tweet in Twitterkit since Xcode 9 with Swift 4 & IOS 11

#ifndef BridgeHeader_h
#define BridgeHeader_h

//#import <TwitterKit/TwitterKit.h>
#import <TwitterKit/TWTRKit.h>

#endif /* BridgeHeader_h */

イメージ説明

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

//        Twitter.sharedInstance().start(withConsumerKey:"hTpkPVU4pThkM0", consumerSecret:"ovEqziMzLpUOF163Qg2mj")
        TWTRTwitter.sharedInstance().start(withConsumerKey:"hTpkPVU4pThkM0", consumerSecret:"ovEqziMzLpUOF163Qg2mj")

        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
//        return Twitter.sharedInstance().application(app, open: url, options: options)
        return TWTRTwitter.sharedInstance().application(app, open: url, options: options)
    }

もし以前のバージョンを使いたいのであれば、PodfileTwitterCoreのバージョンを指定してください。

project 'MyTwitter.xcodeproj'

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'MyTwitter' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyTwitter
  pod 'TwitterKit'
#   pod 'TwitterKit', '3.2.1'
#   pod 'TwitterCore'
  pod 'TwitterCore', '3.0.2'

end

参考までにCarthageの場合は、Cartfileを以下のように記述してください。

binary "https://ton.twimg.com/syndication/twitterkit/ios/TwitterKit.json" == 3.2.1
binary "https://ton.twimg.com/syndication/twitterkit/ios/TwitterCore.json" == 3.0.2

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

確認してみましたが、pod install後、Bridge-headerファイルを作成しなくても、必要な箇所でimportしビルドできました。確認してみてください。

イメージ説明

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.24%

関連した質問

同じタグがついた質問を見る

  • Swift

    5348questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Swift 2

    1308questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。