Giter Site home page Giter Site logo

twitter-archive / twitter-kit-ios Goto Github PK

View Code? Open in Web Editor NEW
687.0 44.0 444.0 33 MB

Twitter Kit is a native SDK to include Twitter content inside mobile apps.

License: Apache License 2.0

Objective-C 94.17% Swift 3.32% Ruby 0.17% Shell 0.11% C 2.17% C++ 0.07%

twitter-kit-ios's Introduction

Twitter will be discontinuing support for Twitter Kit on October 31, 2018. Read the blog post here.

Twitter Kit for iOS

Background

Twitter Kit is a native SDK to include Twitter content in mobile apps. Twitter Kit is designed to make interacting with Twitter seamless and efficient.

Using Twitter Kit from source in production applications is not officially supported. Please utilize the official binaries released via CocoaPods or Carthage.

Twitter Kit Features

  • Display Tweets and timelines
    • Native views to display Tweets in alignment with Twitter's display guidelines.
    • Timeline adapters for displaying collections, lists, and profile timelines from the Twitter API
    • Search result timelines using the Search API, with additional client-side filter capability
  • Compose Tweets
    • Share Tweets with text, URLs, photos and video.
    • Automatically handles API access and login for quick sharing.
  • Monetize with MoPub integration
    • Easy integration of MoPub's display ads tools with Twitter content.
  • Log in with Twitter
    • Authorize users, using the Twitter accounts already on their phone.
    • Support for requesting email address
  • Access the Twitter API
    • API client for all interactions with the Twitter API.

Components of Twitter Kit iOS

  • TwitterCore
    • Network calls are handled
  • TwitterKit
    • Tweet display
  • TwitterShareExtensionUI
    • Tweet composer

Installation

Get started

Install using Cocoapods

To add Twitter Kit to your app, simply add TwitterKit to your Podfile.

target 'MyApp' do
  use_frameworks!
  pod 'TwitterKit'
end

Install using Carthage

To install Twitter Kit for iOS using Carthage, add the following lines to your Cartfile. For more information about how to set up Carthage and your Cartfile, see here.

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

After running carthage update, add TwitterKit.framework and TwitterShareExtensionUI.framework to the Linked Frameworks and Binaries section under General of your App target. In addition to that, make sure that when you are adding the copy-frameworks run script for Carthage that you add the following input paths:

$(SRCROOT)/Carthage/Build/iOS/TwitterCore.framework
$(SRCROOT)/Carthage/Build/iOS/TwitterKit.framework
$(SRCROOT)/Carthage/Build/iOS/TwitterShareExtensionUI.framework

Make sure that the run script phase is after your Link Binaries with Libraries phase to prevent issues with properly archiving your iOS application.

Preview Twitter Kit Features in the Demo App

Twitter Kit includes a demonstration app allowing you to preview features, and verify functionality. Create Twitter API keys as above, and then:

  • To check out a demo app with features already built in, rename DemoApp/Config.xcconfig.sample to DemoApp/Config.xcconfig and populate the consumer key and secret.
  • Run DemoApp.xcworkspace on Xcode to verify build.

Code of conduct

This, and all github.com/twitter projects, are under the Twitter Open Source Code of Conduct. Additionally, see the Typelevel Code of Conduct for specific examples of harassing behavior that are not tolerated.

Contribution

The master branch of this repository contains the latest stable release of Twitter Kit.

Twitter Kit can be used as a dependency for substantial other work, and we welcome fixes and enhancements to the core libraries as well. See CONTRIBUTING.md for more details about how to contribute.

Contact

For usage questions post on Twitter Community. Please report any bugs as issues. Follow @TwitterDev on Twitter for updates.

License

Copyright 2017 Twitter, Inc. Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

twitter-kit-ios's People

Contributors

a2 avatar andypiper avatar evansobkowicz avatar javisoto avatar mclaughj avatar nsalmoria avatar pavanky avatar ra1028 avatar shepting avatar tnphucsk avatar willdinkel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

twitter-kit-ios's Issues

With VoiceOver on TWTRTweetTableViewCell focuses on an invisible line

With VoiceOver on TWTRTweetTableViewCell focuses on an invisible line after the text of the tweet and the user cannot advance after it with the standard swipe gesture.

This is the code used for the cell initialization:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    TWTRTweetTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TWTRTweetTableViewCell.h"];
    if (cell == nil){
        cell = [[TWTRTweetTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TWTRTweetTableViewCell.h"];
    }
    TWTRTweet *tweet = [tweets objectAtIndex:indexPath.item];
    [cell configureWithTweet:tweet];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;
}

iOS Version: 11.2.6
iOS Device Model: iPhone SE
TwitterKit Version Number: 3.3.0
TwitterCore Version Number: 3.1.0

simulator screen shot - iphone 8 - 2018-02-28 at 16 32 49

:'TwitterKit/TWTRKit.h' file not found" ?ไธบไป€ไนˆ#import <TwitterKit/TWTRKit.h>ๅœจๆจกๆ‹Ÿๅ™จไธŠ็ผ–่ฏ‘ไธๆŠฅ้”™,ๅœจ็œŸๆœบไธŠ็ผ–่ฏ‘ๅฐฑๆ็คบnot found file?

ไธบไป€ไนˆ#import <TwitterKit/TWTRKit.h>ๅœจๆจกๆ‹Ÿๅ™จไธŠ็ผ–่ฏ‘ไธๆŠฅ้”™,ๅœจ็œŸๆœบไธŠ็ผ–่ฏ‘ๅฐฑๆ็คบnot found file?
my problem is that when I use run my project on Simulator,it's ok ;but when i run my project on my phone ,#import <TwitterKit/TWTRKit.h>,then alert :'TwitterKit/TWTRKit.h' file not found" ,did anybody meet the same issue?

TWTRTweetViewDelegate notification for @mention and #hashtag taps

From the documentation:

The TWTRTweetViewDelegate is notified:

  • When the background is tapped.
  • When a link is selected.
  • When the share button is tapped.
  • When the share action completes.
  • When the favorite action completes.
  • When the video (if available) is paused or started to play.

I think it should also be notified when a @user mention or an #hashtag is tapped, in order to show our own webview rather than opening Safari.

No member 'tweetView'

I've installed TwitterKit via Cocoapods following the installation instructions. I have "Import TwitterKit" in my file and I believe my bridging header is OK. But the sample code to show tweets gives me an error.

The code:

func loadTweets() {
   let client = TWTRAPIClient()
   client.loadTweet(withID: "20") { (tweet, error) in
     if let t = tweet {
       self.tweetView.configure(with: t)
     } else {
       print("Failed to load Tweet: \(error.localizedDescription)")
     }
   }
 }

The error:
"Value of type 'Setup' has no member 'tweetView'"

setup_swift_ _edited

Expected behavior

To be able to configure tweetview

Actual behavior

"Value of type 'Setup' has no member 'tweetView'"

Steps to reproduce the behavior

I followed these steps to set-up (Cocoapods): https://github.com/twitter/twitter-kit-ios/wiki/Installation
I followed these steps to show tweets: https://github.com/twitter/twitter-kit-ios/wiki/Show-Tweets

Pod install fail.

Pod install fail.
Installing TwitterCore (3.1.0)
Installing TwitterKit (3.2.2)
[!] Error installing TwitterKit
[!] /usr/bin/curl -f -L -o /var/folders/gh/mz0gcm392rzf67m6nwdy90900000gn/T/d20180404-4557-xg94o3/file.zip https://ton.twimg.com/syndication/twitterkit/ios/3.2.2/TwitterKit.zip --create-dirs --netrc-optional

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:01:15 --:--:-- 0curl: (7) Failed to connect to ton.twimg.com port 443: Operation timed out

TwitterKit guest session error

Bug Report

I try to load a tweet with a guest session following your documentation

    TWTRAPIClient *client = [[TWTRAPIClient alloc] init];
    [client loadTweetWithID:@"20" completion:^(TWTRTweet *tweet, NSError *error) {
        if (error) {
            NSLog(@"Failed to load tweet: %@", [error localizedDescription]);
        }
    }];

Xcode never go inside this loadTweetWithID and I have always this error :
[TwitterKit] initWithSessionStore:userID: Invalid parameter not satisfying: sessionStore

Do I need to configure something else ?

Thanks for your replies.

  • Configuration
    • iOS Version : whatever
    • iOS Device Model : whatever
    • TwitterKit/TwitterCore Version Number: 3.3.0
    • Xcode 9.2
    • Installation : Carthage or manually

Swift Usage

import TwitterKit with the following:

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

produces error "Use of unresolved identifier 'TWTRTwitter'

TWTRTimelineView instead of ViewController

I'm working on a news app and would love to embed Twitter's TWTRTimelineViewController into a UIScrollView or UITableView. Would it be possible to add this to TwitterKit?

Expected behavior

I want to embed Twitter's Timeline TableView into another view with other UIViews.

Actual behavior

Right now TwitterKit only supports the TableViewController for displaying timelines, so my app currently pushes a TWTRTimelineViewController on top of the article view. This detracts from the user experience.

Steps to reproduce the behavior

N/A

Undefined symbols ___isOSVersionAtLeast in TWTRImageScrollView

I unable to integrate TwitterKit in Swift 3.

I'm trying to show Twitter Timeline in my app, but when I compile TwitterKit with Swift 3 I get this error.

Error

Undefined symbols for architecture x86_64:
"___isOSVersionAtLeast", referenced from:
-[TWTRImageScrollView init] in TwitterKit(TWTRImageScrollView.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Please Update the Sharing Documentation

App Must Contain this code in AppDelegate to present the Composer after login/account connection.
Otherwise dismiss happens without composer being launched.

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

Swift 4 Decodable support for TWTRTweet

Feature Request

TWTRTweet supports construction from "a standard JSON dictionary for applications that have already obtained the necessary Twitter API response via other means." This is terrifically useful in any instance in which we already have raw JSON objects for tweet objects, as we can use JSONSerialization to turn them into dictionaries and pass them to TWTRTweet.

In Swift, however, all JSON decoding is moving to the Codable protocol as of Swift 4. As far as I know, there's no way to mix JSONSerialization with Codable. Therefore, in the case where an API returns some JSON data which includes twitter JSON objects nested within it, we're unable to use Codable to decode that JSON at all, because the core twitter JSON object can't be converted to TWTRTweet objects unless it supports the Codable protocol.

Here's an example of what I mean. Suppose an API exists to analyze tweets for some extra metadata, and returns a response like this:

{
    "relevantTweets": [
        {
            // twitter JSON object here - fields such as text, entities, source, etc
        }, ...
    ],
    "detailsFound": {
        // ... other metadata about the tweets
    }
}

This JSON response is not parsable using Codable.

If a Swift extension to TWTRTweet were added which supports Codable (or at the least, Decodable), then this JSON response would become parsable using Codable. For smoother Swift integration, I think this would be an awesome feature to add.

Error in present Image, video on iphone X

One line summary of the issue here.
I using twitterkit ver 3.3 and twittercore ver 3.1

In iphone X, when i click one item in timeline (video or image) the close button (X button) is over and under the status bar as attached image.
Can some one help me ?
simulator screen shot - iphone x - 2018-04-02 at 11 35 09

Multiple iOS app uses same Twitter App for Login

Our company has a framework that uses TwitterKit.
All of our iOS apps are using this framework.
Our aim to doing this to manage users in only one Twitter Application.

I implemented this framework to all of our apps

When I try to Login with Twitter from Application B, it redirects to Twitter iOS application.
Twitter asks me "Do you want to give permission to Application B ?"

After I accept the permission, Twitter App redirects to Application A.
But it should redirect me to Application B.

I am using Twitter iOS Application in my iPhone 6S Plus
iOS version: 11.2.2
Twitter iOS App version : 7.15
TwitterKit version 3.3.0
TwitterCore version 3.1.0

Demo app crashes on start

Bug Report

Following the instruction of how to run the Demo, the app crashes on start with this error:

libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
  • Steps to reproduce the problem:
  • iOS Version: 11.2
  • XCode: Version 9.2 (9C40b)
  • iOS Device Model: iPhone simulator
  • TwitterKit/TwitterCore Version Number: latest

Cannot add account in demo app, getting 401 error

ใƒป3.3.0

ใƒปAdded consumer key/secret to Config.xcconfig like this:

TWITTER_CONSUMER_KEY = adasdassdas
TWITTER_CONSUMER_SECRET = 443fs4ff

(actually using real values)
I was not sure if Config.xcconfig needs quotes around the values, tried with/without, neither works.

ใƒปActions taken in app:

  1. Account button top right
  2. Add Account
  3. Log in with Twitter

Getting alert:

Error - Request failed: unauthorized (401) - Dismiss

Device: iPhone SE, iOS 11.0

Architecture supported?

What arcitecture this Framework supported?
I cant find x86_32 on simulator and arm64 on devices

Migration from previous version?

First, a quick update from previous framework version and the app wouldn't compile. You should probably leave some migration instructions in the release notes?

Second, you might want to update the boilerplate text for new issues, it says this is the Android repo:

This form is for reporting issues in the Twitter Kit Android library. For all other developer questions/issues about Twitter please visit Twitter Community.

Bug Report

We work constantly to fix bugs, tweak functionality and improve device support. Providing detailed feedback will help us to quickly resolve your issue.

  • Steps to reproduce the problem (include logs and/or sample code where appropriate):

    • Expected behavior:
    • iOS Version (eg. iOS 10.2):
    • iOS Device Model (eg. iPhone 6):
    • TwitterKit/TwitterCore Version Number:
  • Feature Request

  • If you have anything you'd like to contribute, we recommend discussing it with the core team before writing it.

    • Describe feature in as much detail as possible:
    • Include sample usage where appropriate:

ViewController's deinit never called after passing the VC to logIn(with:completion:)

I'm developing my app, using multi windows. Simply, assuming that there are two windows, mainWindow and VideoPlayerWindow. The VideoPlayerWindow has higher window level than mainWindow.

After I call TWTRTwitter.sharedInstance.logIn(with:completion:), passing it the VideoPlayerWindow.rootViewController, the viewController's deinit never called, or captured.

What is the cause of this?
I'm using
Device: iPhoneX
iOS v11.1
Xcode 9.2
TwitterKit v3.3.0.

Thank you.

Unexpected behaviour when dismissing authentication modal from another modal.

Unexpected behaviour when dismissing authentication modal from another modal.

Expected behavior

Within my app I present a modal view controller. From this controller I call logInWithViewController:completion: to present the Twitter authentication modal. If I tap Done it should only dismiss the Twitter authentication modal.

Actual behavior

Tapping Done dismisses the Twitter authentication modal and my modal view controller. It should only dismiss itself.

Steps to reproduce the behavior

  • Present a modal view controller by calling presentViewController:controller:animated:completion:
  • From within that modal call the Twitter logInWithViewController:completion: method and pass the modal view controller to the method
  • Tap Done

View Controller that shows the login never released (never deallocated)

Something in the sdk appears to hold on to a reference to the view controller that was topmost when the twitter login is shown.

Expected behavior

When an app's view controller is displayed and a call made to - (void)logInWithCompletion:(TWTRLogInCompletion)completion; it shows the twitter login view controller. Then when the user cancels (or completes) the login, there should not be any references holding on to the app's view controller that would prevent the app's view controller from being deallocated when the app's view controller is dismissed.

Actual behavior

the app's view controller is never deallocated even after being dismissed and continues to exist.

Steps to reproduce the behavior

  1. from the app's main view controller, present a simple view controller (let's call it "VC1") with a button that is setup to call logInWithCompletion when the button it tapped and a button to dismiss the view controller and a simple log in the dealloc.
  2. when VC1 appears, tap the button and see that the twitter login is presented on VC1
  3. tap "Cancel" button on the twitter login view controller
  4. tap the dismiss button on VC1
  5. observe that the log in VC1's dealloc is never called

TWTRComposer does not update its height

TwitterCore 3.1.0
TwitterKit 3.3.0

Current Behavior:

When presenting a tweet with TWTRComposer the inner scroll view does not adjust its height or content height when it is given prefilled text, cutting off any text below the fold.

Expected Behavior:

The composer should dynamically update it's height based on tweet length

Sample code:

        let composer = TWTRComposer()
        composer.setText(content.title)
        composer.setURL(content.src.url)
        composer.show(from: viewController) { result in
            switch result {
            case .done:
                self.trackShare(for: .twitter)
            default:
                break
            }
        }

Screens:

simulator screen shot - iphone x - 2017-12-14 at 14 30 10

simulator screen shot - iphone x - 2017-12-14 at 14 30 23

Any trick to force persisting user session with `TWTRSessionStore`?

Since TwitterKit 3.2.1 (and in 3.3.0) user session is not persisted after the app is closed, so user has to repeat login procedure on each app launch. For some reason, this is not the case only if the app is opened in debug mode from Xcode.

I'm wondering if anyone found some workaround for this (within TwitterKit)?

I've tried to manually call saveSession: upon successful login, but that didn't make a difference. Also reloadSessionStore or sessionForUserID: or just delaying the call to sessionStore didn't help.

I guess it fails somewhere after unsafeLoadAllUserSessions so authSessionCache remains empty, but I don't have idea why.

TwitterKit provides Application-only authentication?

How can I make an Application-only authentication?

My app there is no user session, I only need to show a hashtag search timeline, but I'm limited of 180 request por 15 minutes, I noticed that I can obtain 450 request per 15 minutes if I use Application-only authentication, how can I do it using TwitterKit?

Update Install Twitter Kit Manually documentation

Need to update Install Twitter Kit Manually documentation

Expected behavior

Just adding TwitterKit and TwitterCore to "Linked Frameworks and Libraries" in your Xcode project settings should work and no need to Add TwitterKit to "Embedded Binaries" in your Xcode project settings.

Actual behavior

Adding TwitterKit to "Embedded Binaries" in your Xcode project settings causes unexpected Mach-O header code: 0x72613c21.

Steps to reproduce the behavior

Please list all relevant steps to reproduce the observed behavior.

SDK methods and flow

Bug Report - latest TwitterKit to this date

  1. The whole flow doesn't work:

If Twitter is not installed on the device it automatically falls back to use OAuth via a web view (using SFSafariViewController for the first user, and a UIWebView for subsequent additional users.)

Using iOS 11, on iPhone X/6S.

What works:
Only if the user has Twitter app installed we can compose a twit or log-in - the rest just doesn't work (app isn't installed):

  • When using composer.show(from: self) { (result) in I am getting .cancelled.
  • When using TWTRTwitter.sharedInstance().logIn(completion: { (session, error) in I am getting Request failed: unauthorized (401)

Note: Session remains even if you delete the Twitter app and of course, compose action still works.
Note2: SafarServices is embedded inside the project but it doesn't really matter because UIWebView flow should work and it doesn't.

Also,

NOTE: TWTRComposer relies on the existence of a local Twitter account in current session. If no account exists, attempting to show the composer will prompt the user to log in to Twitter app or on a web view.

"web view" flow doesn't work, again, only when Twitter app is installed

SOLVED 1:

Although the callback URL will not be requested by Twitter Kit in your app, it must be set to a valid URL for the app to work with the SDK.

even though when you try to create a Twitter app it doesn't say it is mandatory - which it is if you want above flow will work.

  1. If API key/secret are invalid, any action performed by TwitterKit lead to app crash - to avoid a crash do I need to always validate TWTRTwitter.sharedInstance().sessionStore.session() ? Isn't that something that should be encapsulated inside the SDK ?

  2. Once we instantiate the singleton using the start("key", "secret") method, the project plist with the value: twitterkit-{API KEY} has no meaning because once we change that value everything will still work the same (given start method key and secret are correct). What's the point of the double key ?

Repo ignored by maintainers

Widely used repo for major social platform doesn't receive updates or acknowledgment for plethora of issues

Expected behavior

Project maintainers respond to issues, fix bugs in a timely manner

Actual behavior

Issues go ignored and bugs that should be a simple fix remain in the production release

Steps to reproduce the behavior

Try to use the SDK and experience issues, report the issues.

App crashes by clicking "like" button

App crashes when user clicks the โ€œlikeโ€ button. This can be reproduced 100%. I use TwitterKit 3.2.2, and TwitterCore 3.0.3 on iOS 10 & 11. Any suggestions?

How to share session among app and sharedextention(SLComposeServiceViewController)

This form is for reporting issues in the Twitter Kit Android library. For all other developer questions/issues about Twitter please visit Twitter Community.

Bug Report

We work constantly to fix bugs, tweak functionality and improve device support. Providing detailed feedback will help us to quickly resolve your issue.

  • Steps to reproduce the problem (include logs and/or sample code where appropriate):

    • Expected behavior:
    • iOS Version (eg. iOS 10.2):
    • iOS Device Model (eg. iPhone 6):
    • TwitterKit/TwitterCore Version Number:
  • Feature Request

  • If you have anything you'd like to contribute, we recommend discussing it with the core team before writing it.

    • Describe feature in as much detail as possible:
    • Include sample usage where appropriate:

Change packaging form for proper handling of static frameworks using CocoaPods 1.4.0

Bug Report

  • TwitterKit/TwitterCore Version Number: 3.3.0/3.1.0
  • CocoaPods 1.4.0.rc.1

Hey!

This will be more of descriptive issue of things i think i found out today while integrating TwitterKit into my app.

My setup of a project is as follows: there is a framework, that contains most of the code, and app target which depends on it. I use CocoaPods for both targets, and integrate TwitterKit/TwitterCore into framework target.

When running the app, multiple warnings like this jump out in console:

objc[93428]: Class TWTRScribeService is implemented in both /Users/Denys/Library/Developer/CoreSimulator/Devices/CA2742B8-22F4-4C6B-8A09-8870838ACCEF/data/Containers/Bundle/Application/BAD2EE63-C5FF-4E07-A296-2BE29E4FB060/DocDebug.app/Frameworks/TwitterKit.framework/TwitterKit (0x1089ef148) and /Users/Denys/Library/Developer/CoreSimulator/Devices/CA2742B8-22F4-4C6B-8A09-8870838ACCEF/data/Containers/Bundle/Application/BAD2EE63-C5FF-4E07-A296-2BE29E4FB060/DocDebug.app/Frameworks/TwitterCore.framework/TwitterCore (0x108866f70). One of the two will be used. Which one is undefined.
objc[93428]: Class TWTRUserAuthRequestSigner is implemented in both /Users/Denys/Library/Developer/CoreSimulator/Devices/CA2742B8-22F4-4C6B-8A09-8870838ACCEF/data/Containers/Bundle/Application/BAD2EE63-C5FF-4E07-A296-2BE29E4FB060/DocDebug.app/Frameworks/TwitterKit.framework/TwitterKit (0x1089ef1c0) and /Users/Denys/Library/Developer/CoreSimulator/Devices/CA2742B8-22F4-4C6B-8A09-8870838ACCEF/data/Containers/Bundle/Application/BAD2EE63-C5FF-4E07-A296-2BE29E4FB060/DocDebug.app/Frameworks/TwitterCore.framework/TwitterCore (0x108866fe8). One of the two will be used. Which one is undefined.

After several hours of research i came into conclusion that reason for that is TwitterKit is compiled as static library and then imported into TwitterKit dynamic library, which is distributed using CocoaPods vendored_framework instruction. It seems that CocoaPods 1.4.0 introduces proper support for distributing static library without such shenanigans, as described in this blog post: https://github.com/CocoaPods/blog.cocoapods.org/pull/147/files

I'm not sure what the next steps would be and how PR to change this should be formed, as clearly this changes how framework can be distributed by Twitter team and requires some changes in Xcode projects e.t.c.

So this issue is more to start discussion about this and spread this information around.
There are multiple issues on CocoaPods, that have some helpful information on this topic, just listing them here in case they are helpful:

CocoaPods/CocoaPods#7126
CocoaPods/CocoaPods#5768

TWTRTimelineViewController impossible to dismiss image

TWTRTimelineViewController impossible to dismiss image

Expected behavior

Tap on single tweets' image -> show image in modal view -> dismiss tapping on "X" button

Actual behavior

It's impossible to tap on "X" because of UI issue:

simulator screen shot - iphone x - 2018-03-09 at 12 36 41

Steps to reproduce the behavior

Tap on single tweets' image

TwitterKit iOS - Signing - Stoped working.

I've TwitterKit integrated, followed all necessary settings mentioned in the Twitter dev notes, including the info.plist settings and the url handle on app delegate, and about this one, it's always returning false when I call - (void)logInWithViewController:(nullable UIViewController *)viewController completion:(TWTRLogInCompletion)completion;:

`@nonobjc @available(iOS 9.0, *)

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

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    
    return TWTRTwitter.sharedInstance().application(application, open: url, options: [:])
}`

The given url seems to be ok twitterkit-apcczt4diguk6myh6f0i*****://callback?app=ApccZt4dIgUk6Myh6f0ibvYl9&oauth_token=enKsAgAAAAAAytGCAAABYPrD_Mo&oauth_verifier=1qDr0xNr2O5eFLtOBzCt2yFl76IWFFzM

and the app gets stuck here:

screen shot 2018-01-15 at 12 23 45 pm

Twitter App is installed and my account signed in

iPhone 7 Plus - iPhone 6s -
iOS 11.2.1
Using TwitterCore (3.1.0)
Using TwitterKit (3.3.0)
Twitter App 7.14

Posting a tweet twice "Tweet failed to send" alert coming. Need to modify "tweet was already posted".

Posting a tweet twice "Tweet failed to send" alert coming.
I need to modify "tweet was already posted".
How to recognise error "Status is a duplicate." from TwitterKit.

TwitterKit API provides bellow logs:

Did encounter error sending Tweet: Error Domain=TwitterAPIErrorDomain Code=187 "Request failed: forbidden (403)" UserInfo={NSLocalizedFailureReason=Twitter API error : Status is a duplicate. (code 187), TWTRNetworkingStatusCode=403, NSErrorFailingURLKey=https://api.twitter.com/1.1/statuses/update.json, NSLocalizedDescription=Request failed: forbidden (403)}

TwitterShare[1137:185108] [TwitterKit] Composer did fail: Error Domain=TwitterAPIErrorDomain Code=187 "Request failed: forbidden (403)" UserInfo={NSLocalizedFailureReason=Twitter API error : Status is a duplicate. (code 187), TWTRNetworkingStatusCode=403, NSErrorFailingURLKey=https://api.twitter.com/1.1/statuses/update.json, NSLocalizedDescription=Request failed: forbidden (403)}

[Question] Is it possible build frameworks from source?

Hello guys. I use need add SDK to one big project. Unfortunately it does not support @Availability directive. So I need change a little bit source code and generate updated dynamic framework. How i can achieve this?I downloaded release sources(3.2.1) and I tried simply build framework (choosing in targets- "Framework"). But in this case compiled framework doe not contain TWTRKit.h file and a lot of other things. Seems like it incompleted. Can you provide instructions how correctly build framework? Thanks.

Invisible Cancel and Tweet Button

Bug Report

I am using TWTRComposerViewController to show tweet controller with initial text and video url, where every thing is expected to work file but I see cancel button and Tweet buttons are invisible.

  • Steps to reproduce the problem (include logs and/or sample code where appropriate):
    • Expected behavior:
    • iOS Version : 11.0.2
    • iOS Device Model : iPhone 7
    • TwitterKit/TwitterCore Version Number: 3.3.0
      img_0689

TWTRCompose doesn't store session after signing in - endless loop of signing in / granting permissions instead

After logging in / granting permissions via TWTRCompose, no session is stored / available

Expected behavior

Logging in / granting permissions via TWTRCompose will create a session, so when I try to show the window, I'll be able to send a tweet.

Actual behavior

Trying to open the TWTRCompose only opens Twitter and asks me to grant permissions, over and over again.

Steps to reproduce the behavior

Show a TWTRCompose. Log in / accept permissions.
Try to press the tweet button again to actually send the tweet, and instead go right back to the permissions page

TWTRComposer height problem

Bug Report
I don't understand why you have closed the same bug that is still exist.

  • Steps to reproduce the problem:
    When setting a TWTRComposer using the snip code with predefined text, the height of the Tweet view doesn't update:

screen shot 2018-03-06 at 15 47 52

  • Expected behavior:
    Tweet should have a height that let's the user scroll and look at the pre-defined text tweet.
    Example:
    Tap on the opened tweet with the predefined text, and tap any character inside the Tweet view, the height grows up immediately.
  • iOS Version (iOS 11.2):
  • iOS Device Model (iPhone 5S all the way up to X):
  • TwitterKit version 3.3.0

Errors like: Class TWTRScribeService is implemented in both ...

โš ๏ธโš ๏ธโš ๏ธ note that this framework is discontinued and no issues will be fixed โš ๏ธโš ๏ธโš ๏ธ

Bug Report

I'm getting lots of this on app startup.

objc[2541]: Class TWTRScribeService is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9330) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00c88). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRUserAuthRequestSigner is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc93a8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00d00). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRSecItemWrapper is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc93f8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00d50). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRMultipartFormElement is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9420) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00d78). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRMultipartFormDocument is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9470) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00dc8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAPINetworkErrorsShim is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc94c0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00e18). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAPIResponseValidator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9538) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00e90). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRDateFormatters is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9588) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00ee0). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGuestAuthRequestSigner is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc95d8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00f30). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRKeychainWrapper is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9600) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00f58). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRScribeClientEventNamespace is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9650) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00fa8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRUserAPIClient is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc96a0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d00ff8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRNetworking is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc96f0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01048). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRRequestSigningOperation is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9740) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01098). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGuestRequestSigningOperation is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9790) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d010e8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRUserRequestSigningOperation is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc97e0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01138). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRColorUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9830) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01188). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRFileManager is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc98a8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01200). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGuestSessionRefreshStrategy is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc98d0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01228). One of the two will be used. Which one is undefined.
objc[2541]: Class TFSScribe is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9920) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01278). One of the two will be used. Which one is undefined.
objc[2541]: Class TFSScribeEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9998) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d012f0). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRResourcesUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc99c0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01318). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAuthenticationProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9a38) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01390). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAuthConfig is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9a60) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d013b8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRDateUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ad8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01430). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRUserSessionVerifier is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9b00) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01458). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGuestAuthProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9b50) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d014a8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRScribeMediaDetails is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ba0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d014f8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRIdentifier is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9c18) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01570). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRScribeEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9c40) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01598). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRErrorScribeEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9c90) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d015e8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGenericKeychainQuery is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ce0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01638). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGenericKeychainItem is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9d30) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01688). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRNetworkingPipeline is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9d80) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d016d8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRCore is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9df8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01750). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAppAPIClient is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9e20) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01778). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAPIServiceConfigRegistry is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9e70) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d017c8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAuthConfigSessionsValidator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9ec0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01818). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRScribeItem is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9f10) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01868). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRScribeCardEvent is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9f60) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d018b8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRTokenOnlyAuthSession is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fc9fb0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01908). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRURLSessionDelegate is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca000) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01958). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRScribeFilterDetails is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca050) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d019a8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRNetworkingUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca0a0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d019f8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTROAuth1aAuthRequestSigner is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca118) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01a70). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGCOAuth is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca140) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01a98). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAppInstallationUUID is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca1b8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01b10). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRNetworkSessionProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca1e0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01b38). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRSessionStore is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca230) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01b88). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRNetworkingPipelineQueue is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca280) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01bd8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAuthConfigStore is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca2d0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01c28). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRCoreLanguage is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca348) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01ca0). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRSession is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca370) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01cc8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRX509Certificate is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca3c0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01d18). One of the two will be used. Which one is undefined.
objc[2541]: Class TFSScribeImpression is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca438) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01d90). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAppleSocialAuthenticaticationProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca460) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01db8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAPIDateSync is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca4b0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01e08). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRDictUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca500) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01e58). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRMultiThreadUtil is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca550) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01ea8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAuthenticator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca5c8) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01f20). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRGuestSession is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca5f0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01f48). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRUtils is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca640) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01f98). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRNetworkingPipelinePackage is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca690) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d01fe8). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRServerTrustEvaluator is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca6e0) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d02038). One of the two will be used. Which one is undefined.
objc[2541]: Class TWTRAppAuthProvider is implemented in both /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterKit.framework/TwitterKit (0x105fca730) and /private/var/containers/Bundle/Application/B90F531E-C7AD-43E6-9EF8-584D399A11E0/my.app/Frameworks/TwitterCore.framework/TwitterCore (0x105d02088). One of the two will be used. Which one is undefined.
  • Steps to reproduce the problem (include logs and/or sample code where appropriate):

Use TwitterKit framework in app. (using cocoapods, although the problem possibly might happen without cocoapods)

pod 'TwitterKit'

    • Expected behavior:
      No logs like described.
    • iOS Version (eg. iOS 10.2):
      iOS 11.2.1
    • iOS Device Model (eg. iPhone 6):
      iPhone 6s plus
    • TwitterKit/TwitterCore Version Number:
      Using TwitterCore (3.1.0)
      Using TwitterKit (3.3.0)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.