SlavaBushtruk opened this Issue Aug 3, 2011 · 55 comments

Guys, I think it's time for ShareKit 2.0 managing only by community. So much good code was written, so much good features and fixes. That's really good!

But when I try to gather all these pieces from different forks .. it's just impossible.

We really need one common fork and mentors who will take care of pull requests.

Let's discuss?


Best I can tell I have all of the common changes in my fork, as well as fixes for leaks, allow configurable sharers list (so that you can subclass SHKsharers), callbacks for canceling out of sharers, added UI for flickr and removed a round trip to the server to set item attributes, allow you to nobble offline and other enhancements.

Off the top I've merged flickr integration, delegate config, new facebook and many more.

I would be open to having other admins on my fork, and could spare a little time to merge changes, but I don't want to be the only one.



This is really good! I see you're very active last time. Thank for the quick reply.

The main problem for ShareKit newbie is to select right fork. Then when any bug appears, e.g. Facebook doesn't share text right now, people try to fix and it's hard to find fixes and how to embed it in own changes code and so on. This becomes a mission impossible for newbies. So that's why I believe we need one fork and maybe ask @ideashower to delegate rights to new lead or so.

Honestly I am not very experienced in ShareKit, I just see my own problem and suggest that it's common.

Let's wait what other guys think.
I've sent a message @ideashower also.


I agree with you that there should be one global fork.
It's getting pretty hard right now to get things up and running quickly.
There are a lot of enhancements fragmented over a lot of forks.

Apperently @ideashower doesn't have the time to maintain this fork.

If you guys need some help getting ShareKit to V2.0 I am willing to contribute to this project.


This situation exemplifies the strength and weakness of open libs shared via GitHub. I suspect that ideashower is simply too busy to manage all the work that community is contributing and I suspect that would be the case for any individual or group who would take over. I would recommend that any beginner start with a fork of the jayway fork ( and merge in other forks as needed.


Hey there- interested to see ShareKit in the hands of the community as well. A little busy these days with projects and usually use Github to keep the changes / additions somewhere at least. A central repository on Github would be great.
We could think about a simple upvote procedure by a core team of ShareKit contributors which decides what goes into the main GH-Project or not.

What is the next step to continue?


I think this is a great idea. I sent message to @Ideashower 5 months ago suggesting this and never got a response back.

I've created a GitHub organization called ShareKit and pushed the current contents of the repo there. I have no problem giving others admin rights to the org.

I think the next step should be deciding on a fork that will become the seed of ShareKit 2.0. It might also be useful to port the current issues from ideashower to the new org.


Whichever fork is used, I do recommend a "rebase" by putting it on the ShareKit/ShareKit tree. It will minimize confusion for users in the long run as to which branch is the "official" one, and can serve as the root for the 2.0 going forward. @troppoli @scompt


I'd like to contribute, with the caveat that a) I still haven't grokked git and am therefore of limited use as an admin and b) I'm completely new to ShareKit.

  • @scompt, if you add me to the ShareKit org, I'd be happy to start participating by rewriting the ReadMe to summarize the discussion happening here.
  • After perusing the commit histories of the two forks mentioned so far, it seems likely that @troppoli has the stronger repo. If given privileges on ShareKit/ShareKit, I'd like to follow @coneybeare 's recommendation and (after figuring out how), rebase to

Unless there's a good argument against either of these next steps...?



P.S. One thing that surprises me is that the ShareKit/ShareKit network graph is completely disconnected from the original. It seems like that might make it harder to pull useful commits from all of the existing project forks. (?)


There are a ton of forks that have become less and less compatible. I think that my fork as the bulk of the changes that people have been looking for and some fixes to fundamental issues.


@Troppoli, can you and @scompt work together to get on a more official repo with your code at ShareKit/ShareKit ?


@clozach That's true. I pulled locally and then pushed up to github, which blew away the network graph. The one benefit that it has is that it doesn't say 'forked from ...', which might lend the repo some credibility as the canonical one. What are the others' opinion about this? Fork with network graph or pull/push without network graph?

Let's go with @troppoli 's repository in any case. That'll get us up and running with a good base from which we can start looking at the existing tickets to see which should be ported.


You can have both. This was the first google hit, I am sure there are other ways too.

@troppoli, it needs to be off of your personal fork to get any legs here as an "official" 2.0


I've re-pushed the ShareKit/ShareKit repository using the method described in @coneybeare 's linke (essentially clone/push instead of pull/push). The history is there, but the network isn't. Is that enough to go on? I used @troppoli 's fork this time.

@clozach I've just created the wiki for the repository. Let's stick the documentation in there. You should be able to edit it.


Count me in, people. I should note that I've already added iOS[REDACTED] support for SHKTwitter.


@coneybeare well I just pushed to sharekit/troppoli and tried to open a pull request to sharekit/sharekit... not sure how to do it because of the way it was created. Any ideas?


I am not entirely sure, but because ShareKit/Sharekit has your recent code, I think it would be easiest to create a new branch off of that, re-apply the changes that you just pushed to sharekit/troppoli, then submit a pull request back up to ShareKit/ShareKit. @scompt should make you a collaborator on the main repo so you can accept your own pull requests and push to master there


Which commit added the iOS[REDACTED] support?


@troppoli I've just deleted the repo again and forked it using the normal methods. Try again with your pull request. I've also added you so that you can push to the repository.

@coneybeare Your issue got deleted when deleting and forking the repo. Can you add it again?


@scompt forking from @troppoli is the wrong approach here.

  • AFAIK, You can't create issues in a fork, or have project management such as milestones, etc
  • It loses credibility with the "forked by" text

@coneybeare I've just enabled issues for the repository. I think the rest of the project management stuff is also enabled with that feature. Do you notice anything else that is missing? That means the only downside is the lack of credibility. Personally, I think it would be better if it wasn't forked, but rather cloned as it was previously. I think the credibility issue is also important. However, I'm not sure what problem @troppoli had when trying to make his pull request and if it has to do with the way the repo was created.


The problem was that @troppoli did not reclone from the sharekit/sharekit repo, then do the pull request. He tried to do the request across repo's. It has to be done as before, with you pulling the history from him, then him doing the process outlined in #283 (comment)

A new beginning, a 2.0 for share kit, really needs to be a fresh start, pulling from an up-to-date repo like @troppoli's to start with. I won't contribute to yet another fork based off of the 1.0, and I am sure there are many like me.


Guys, thanks everybody to be active! Sorry for late, I was on a vocation.
– please add me to the new repo
– yes, it's hard to decide from what which to start. I believe it's better to start just from one of more active. Just select and go. if it's @troppoli's one then I'm able to switch my project to it. More–more important to keep it active and centralized.
– I'm in!

– have you decided to organize a core team or work in Git style with personal forks and pull requests?


@alondon: Not pushed yet, as the code is still under NDA and can't be made public.


@coneybeare OK, that makes sense. I've re-done the repo using clone/push. Hopefully everything works now. Sorry to everyone who's tried to watch/comment/whatever on the repo while I've been getting this sorted out.

@SlavaBushtruk I've added you to the new repo. I'd be more for the git development style with personal forks.

Shall we move the discussion over to the new repo? I've just added a 2.0 milestone. Let's make a release!



So the best way to push changes is to make a new fork and the make pull request for you?


I made 3 issues in new repo to discuss. Just not sure how to notify you about it except this topic.


I agree that development should be done in personal forks with pull requests as a primary method of integrating fixes. At the same time, a core team should have pull/push privileges on, with at least 2-3 full owners. Not would more members reduce risk to the community at large, but it's more fair to the org. members since verifying pull requests, managing issues prioritization, and defining stable releases can be a lot of work!

@scompt, I'm sure you want to make sure that there aren't too many cooks in the kitchen, but please at least invite @troppoli in (if he wants), and me and/or @coneybeare (if you trust us) so that we can share the load. :) I'm cramming as much git/github info as I can fit into my tiny brain right now in order to become a useful resource on this project....


I've added the following users as owners to the ShareKit/ShareKit repository. I think that should be a good start at a core team. We can make changes later if the need arises.

@coneybeare, @clozach, @troppoli, @SlavaBushtruk, @scompt


It's great that you all are trying to resurrect this project but my current project timeline is tight, so I'm wondering - is there a fork out there where at least the FBConnect portion has been updated to use FB's latest API? Thanks!


@benjaminjackson Was just curious whether the fix was a backwards compatible one that could be made with iOS 4.x. Figured it out anyway.


Hello guys, could someone please explain from where I should get troppolis fork? From or from here? If from here, where do I find it? The files from are all from 2010.
Sorry for that newbie question, I am still confused with git forks/pulls/trunks etc...

Question 2 while I'm at it, does troppolis fork work with
-the latest facebook sdk?
-localization, as described here -> #94

Thanks for any help, lexar


@troppoli I am sure you are aware of this but due to some changes of modal view controllers in iOS 5, the current sharekit has major issues when compiled with xcode 4.2 and base sdk of 5.0. Cancel buttons will not dismiss the current view when closing out emails, or Twitter. I was able to fix the twitter part by removing the SHKCUrrenthelper and replacing with self dismissmodalviewcontroller code, but not on the email. Have you been able to work on a good fix for this issue?


See the iOS 5 documentation for the new method presentingViewController and changes to parentViewController as it is now out of NDA.

The parent of the current view controller. (read-only)

@property(nonatomic, readonly) UIViewController *parentViewController
Parent view controllers are relevant in navigation, tab bar, and modal view controller hierarchies. In each of these hierarchies, the parent is the object responsible for displaying the current view controller. If you are using a view controller as a standalone object—that is, not as part of a view controller hierarchy—the value in this property is nil.

Prior to iOS 5.0, if a view did not have a parent view controller and was being presented modally, the view controller that was presenting it would be returned. This is no longer the case. You can get the presenting view controller using the presentingViewController property.

Available in iOS 2.0 and later.
See Also
@property modalViewController
Declared In

The view controller that presented this view controller. (read-only)

@property(nonatomic, readonly) UIViewController *presentingViewController
The default implementation of this property walks up the view hierarchy, starting from this view controller. The first view controller it finds that received the presentViewController:animated:completion: method, or that has its definesPresentationContext property set to YES is returned as the value of the property. It keeps walking up the hierarchy until it finds a value to return or it gets to the root view controller.

Available in iOS 5.0 and later.
Declared In


Yes, I realize and have read this documentation. My question is about ShareKit...on iOS 5 because of the changes you wrote above, the view for logging into Twitter to authorize the app, does not disappear upon authorizing, or clicking the cancel button. Where in the ShareKit code needs to be changed in order to have that disappear?


@spiderguy84 We're working on a patch for this problem over here if you're interested in switching the fork you're using.


I was able to take care of this problem with the help of someone in One thing I am having issue with now is Facebook not sharing text. I use this code:

  • (IBAction)postGradesTapped:(id)sender {

    self.textual = @"Test";
    SHKItem *item = [SHKItem text:self.textual];
    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
    [actionSheet showInView:self.tabBarController.view];

Twitter and Email handle it fine, butFacebook just leaves dialog box empty, or will sometime give NSURLConnectionError -999 message.


Ok, here is what I am having troubles with right now on the fork I am using. When you share a URL, the facebook window doesn't show the link that is being shared, although it does end up getting posted. I'm concerned that the user will think something is wrong when they don't see it, and cancel it. How can I set it up to show in the preview window of the app? Here is what the user sees:

Here is what gets posted:


I've updated my files from the ShareKit web site with those in here.

Facebook has major issues. When i press FB share, it pops app the facebook app, and do nothing more.


evripidis, this problem occurs, when your application ID (which you registered in facebook) is incorrect.


I'm having difficulties following this (I'm not that into Git yet I guess). Will there be a ShareKit 2.0 in the coming days or weeks or even months?


when i am sharing, in sharekit 2.0 LINK, everything is working ok,
i added to my project, everything is good, BUT when i try to share LINK with facebook,
nothing will happen. I've changed plist, used id that given in sharekit, nothing.... Please help


@KanybekMomukeyev The app ID is correct cause i can see the ID info into the FB app.

Here is exactly where i stuck. I am sharing a text with Link and nothing happens


@sebrk at the moment the development branch is the most recent:

Here are the most up to date installation instructions (if I'm not mistaken):


I got the error like operation could not be completed, contents ={ "OAuthException"} contents ={ "(#100) action links must have string 'href' and 'text' attributes"}

Can any one help on this



Why the sharekit added to my project is not working properly?Example: In SHKActionSheet.m files inside
id class;
for (NSString * sharerId in favoriteSharers)
        NSLog (@ "% @", sharerId);
class = NSClassFromString (sharerId);
if ([class canShare])
[as addButtonWithTitle: [class sharerTitle]];
[as.sharers addObject: sharerId];
class is nil
How do I do????


I have just downloaded ShareKit. I am trying to run ShareKit demo app.xproject file but it is showing me some errors like PocketAPI.h file not found. BufferSDK.h file not found. I don't know how to run the project of sharekit that i just downloaded. Can someone explain me how can i check it?


Some vendors support SSO login. is it possible to add the feature in ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment