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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Swift 2

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

Q&A

2回答

1102閲覧

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

axeralater

総合スコア6

Swift

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

Swift 2

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

0グッド

0クリップ

投稿2018/01/07 00:14

編集2018/01/07 10:56

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に、以下のコードを貼っています。

AppDelegate.swift

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

ViewController.swift

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

テスト環境

  • 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

objectivec

1#ifndef BridgeHeader_h 2#define BridgeHeader_h 3 4//#import <TwitterKit/TwitterKit.h> 5#import <TwitterKit/TWTRKit.h> 6 7#endif /* BridgeHeader_h */

イメージ説明

swift

1 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 2 // Override point for customization after application launch. 3 4// Twitter.sharedInstance().start(withConsumerKey:"hTpkPVU4pThkM0", consumerSecret:"ovEqziMzLpUOF163Qg2mj") 5 TWTRTwitter.sharedInstance().start(withConsumerKey:"hTpkPVU4pThkM0", consumerSecret:"ovEqziMzLpUOF163Qg2mj") 6 7 return true 8 } 9 10 func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 11// return Twitter.sharedInstance().application(app, open: url, options: options) 12 return TWTRTwitter.sharedInstance().application(app, open: url, options: options) 13 }

もし以前のバージョンを使いたいのであれば、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

投稿2018/01/07 22:54

編集2018/01/07 22:55
izkn

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

イメージ説明

投稿2018/01/07 01:56

komo_ta

総合スコア275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問