{"action":"opened","number":176,"pull_request":{"url":"https://api.github.com/repos/mattt/FormatterKit/pulls/176","id":34900704,"html_url":"https://github.com/mattt/FormatterKit/pull/176","diff_url":"https://github.com/mattt/FormatterKit/pull/176.diff","patch_url":"https://github.com/mattt/FormatterKit/pull/176.patch","issue_url":"https://api.github.com/repos/mattt/FormatterKit/issues/176","number":176,"state":"open","locked":false,"title":"Support Frameworks","user":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"body":"This PR adds support for frameworks, so that FormatterKit can be used with [Carthage](https://github.com/Carthage/Carthage).\r\n\r\nSince this is my first try to add framework support, I'm not sure if everything I've done is correct or best practice. \r\nI have tested these changes with Carthage and Cocoapods and both ways of adding FormatterKit to my project have worked in my tests.\r\n\r\n### Project \r\n\r\nA new project `FormatterKit.xcodeproj` has been created in the root folder that has targets for building frameworks for iOS and OSX. \r\nThe schemas for these targets are shared so Carthage can pick them up. \r\nI didn't bother to delete the test targets, maybe they will be used someday? If not, I can still clean them up if you want.\r\n\r\nI had to delete the `FormatterKit.xcworkspace` because somehow this has always confused Carthage - it was always trying to build the Examples project and complained that the Examples project had no shared schemas. \r\n\r\nThe location of all the source files has remained the same, so no changes to the podspec have been necessary.\r\n\r\n### Localization\r\n\r\nAs mentioned in [this cocoapods blog post](http://blog.cocoapods.org/CocoaPods-0.36/) under Caveats, it is not possible to use `[NSBundle mainBundle]` when using frameworks anymore, so the `NSLocalizedString` macros had to be changed to use the macro that also takes a specific bundle `[NSBundle bundleForClass:[self class]]`\r\n\r\nThis may also fix #158 but I didn't check because for me, it already worked with Cocoapods 0.37 before this PR.","created_at":"2015-05-07T10:08:40Z","updated_at":"2015-05-07T10:08:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mattt/FormatterKit/pulls/176/commits","review_comments_url":"https://api.github.com/repos/mattt/FormatterKit/pulls/176/comments","review_comment_url":"https://api.github.com/repos/mattt/FormatterKit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mattt/FormatterKit/issues/176/comments","statuses_url":"https://api.github.com/repos/mattt/FormatterKit/statuses/2ea246ae4573538886ffb946d70d141583443734","head":{"label":"iv-mexx:feature/supportFrameworks","ref":"feature/supportFrameworks","sha":"2ea246ae4573538886ffb946d70d141583443734","user":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"repo":{"id":35157983,"name":"FormatterKit","full_name":"iv-mexx/FormatterKit","owner":{"login":"iv-mexx","id":3407787,"avatar_url":"https://avatars.githubusercontent.com/u/3407787?v=3","gravatar_id":"","url":"https://api.github.com/users/iv-mexx","html_url":"https://github.com/iv-mexx","followers_url":"https://api.github.com/users/iv-mexx/followers","following_url":"https://api.github.com/users/iv-mexx/following{/other_user}","gists_url":"https://api.github.com/users/iv-mexx/gists{/gist_id}","starred_url":"https://api.github.com/users/iv-mexx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iv-mexx/subscriptions","organizations_url":"https://api.github.com/users/iv-mexx/orgs","repos_url":"https://api.github.com/users/iv-mexx/repos","events_url":"https://api.github.com/users/iv-mexx/events{/privacy}","received_events_url":"https://api.github.com/users/iv-mexx/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iv-mexx/FormatterKit","description":"`stringWithFormat:` for the sophisticated hacker set","fork":true,"url":"https://api.github.com/repos/iv-mexx/FormatterKit","forks_url":"https://api.github.com/repos/iv-mexx/FormatterKit/forks","keys_url":"https://api.github.com/repos/iv-mexx/FormatterKit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iv-mexx/FormatterKit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iv-mexx/FormatterKit/teams","hooks_url":"https://api.github.com/repos/iv-mexx/FormatterKit/hooks","issue_events_url":"https://api.github.com/repos/iv-mexx/FormatterKit/issues/events{/number}","events_url":"https://api.github.com/repos/iv-mexx/FormatterKit/events","assignees_url":"https://api.github.com/repos/iv-mexx/FormatterKit/assignees{/user}","branches_url":"https://api.github.com/repos/iv-mexx/FormatterKit/branches{/branch}","tags_url":"https://api.github.com/repos/iv-mexx/FormatterKit/tags","blobs_url":"https://api.github.com/repos/iv-mexx/FormatterKit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iv-mexx/FormatterKit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iv-mexx/FormatterKit/git/refs{/sha}","trees_url":"https://api.github.com/repos/iv-mexx/FormatterKit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iv-mexx/FormatterKit/statuses/{sha}","languages_url":"https://api.github.com/repos/iv-mexx/FormatterKit/languages","stargazers_url":"https://api.github.com/repos/iv-mexx/FormatterKit/stargazers","contributors_url":"https://api.github.com/repos/iv-mexx/FormatterKit/contributors","subscribers_url":"https://api.github.com/repos/iv-mexx/FormatterKit/subscribers","subscription_url":"https://api.github.com/repos/iv-mexx/FormatterKit/subscription","commits_url":"https://api.github.com/repos/iv-mexx/FormatterKit/commits{/sha}","git_commits_url":"https://api.github.com/repos/iv-mexx/FormatterKit/git/commits{/sha}","comments_url":"https://api.github.com/repos/iv-mexx/FormatterKit/comments{/number}","issue_comment_url":"https://api.github.com/repos/iv-mexx/FormatterKit/issues/comments{/number}","contents_url":"https://api.github.com/repos/iv-mexx/FormatterKit/contents/{+path}","compare_url":"https://api.github.com/repos/iv-mexx/FormatterKit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iv-mexx/FormatterKit/merges","archive_url":"https://api.github.com/repos/iv-mexx/FormatterKit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iv-mexx/FormatterKit/downloads","issues_url":"https://api.github.com/repos/iv-mexx/FormatterKit/issues{/number}","pulls_url":"https://api.github.com/repos/iv-mexx/FormatterKit/pulls{/number}","milestones_url":"https://api.github.com/repos/iv-mexx/FormatterKit/milestones{/number}","notifications_url":"https://api.github.com/repos/iv-mexx/FormatterKit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iv-mexx/FormatterKit/labels{/name}","releases_url":"https://api.github.com/repos/iv-mexx/FormatterKit/releases{/id}","created_at":"2015-05-06T12:47:25Z","updated_at":"2015-05-07T07:43:49Z","pushed_at":"2015-05-07T09:52:04Z","git_url":"git://github.com/iv-mexx/FormatterKit.git","ssh_url":"git@github.com:iv-mexx/FormatterKit.git","clone_url":"https://github.com/iv-mexx/FormatterKit.git","svn_url":"https://github.com/iv-mexx/FormatterKit","homepage":"","size":1795,"stargazers_count":0,"watchers_count":0,"language":"Objective-C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mattt:master","ref":"master","sha":"ceb1892d0fa160737e17baaf2f85bfb0c05a13c8","user":{"login":"mattt","id":7659,"avatar_url":"https://avatars.githubusercontent.com/u/7659?v=3","gravatar_id":"","url":"https://api.github.com/users/mattt","html_url":"https://github.com/mattt","followers_url":"https://api.github.com/users/mattt/followers","following_url":"https://api.github.com/users/mattt/following{/other_user}","gists_url":"https://api.github.com/users/mattt/gists{/gist_id}","starred_url":"https://api.github.com/users/mattt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattt/subscriptions","organizations_url":"https://api.github.com/users/mattt/orgs","repos_url":"https://api.github.com/users/mattt/repos","events_url":"https://api.github.com/users/mattt/events{/privacy}","received_events_url":"https://api.github.com/users/mattt/received_events","type":"User","site_admin":false},"repo":{"id":2103283,"name":"FormatterKit","full_name":"mattt/FormatterKit","owner":{"login":"mattt","id":7659,"avatar_url":"https://avatars.githubusercontent.com/u/7659?v=3","gravatar_id":"","url":"https://api.github.com/users/mattt","html_url":"https://github.com/mattt","followers_url":"https://api.github.com/users/mattt/followers","following_url":"https://api.github.com/users/mattt/following{/other_user}","gists_url":"https://api.github.com/users/mattt/gists{/gist_id}","starred_url":"https://api.github.com/users/mattt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattt/subscriptions","organizations_url":"https://api.github.com/users/mattt/orgs","repos_url":"https://api.github.com/users/mattt/repos","events_url":"https://api.github.com/users/mattt/events{/privacy}","received_events_url":"https://api.github.com/users/mattt/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mattt/FormatterKit","description":"`stringWithFormat:` for the sophisticated hacker set","fork":false,"url":"https://api.github.com/repos/mattt/FormatterKit","forks_url":"https://api.github.com/repos/mattt/FormatterKit/forks","keys_url":"https://api.github.com/repos/mattt/FormatterKit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mattt/FormatterKit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mattt/FormatterKit/teams","hooks_url":"https://api.github.com/repos/mattt/FormatterKit/hooks","issue_events_url":"https://api.github.com/repos/mattt/FormatterKit/issues/events{/number}","events_url":"https://api.github.com/repos/mattt/FormatterKit/events","assignees_url":"https://api.github.com/repos/mattt/FormatterKit/assignees{/user}","branches_url":"https://api.github.com/repos/mattt/FormatterKit/branches{/branch}","tags_url":"https://api.github.com/repos/mattt/FormatterKit/tags","blobs_url":"https://api.github.com/repos/mattt/FormatterKit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mattt/FormatterKit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mattt/FormatterKit/git/refs{/sha}","trees_url":"https://api.github.com/repos/mattt/FormatterKit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mattt/FormatterKit/statuses/{sha}","languages_url":"https://api.github.com/repos/mattt/FormatterKit/languages","stargazers_url":"https://api.github.com/repos/mattt/FormatterKit/stargazers","contributors_url":"https://api.github.com/repos/mattt/FormatterKit/contributors","subscribers_url":"https://api.github.com/repos/mattt/FormatterKit/subscribers","subscription_url":"https://api.github.com/repos/mattt/FormatterKit/subscription","commits_url":"https://api.github.com/repos/mattt/FormatterKit/commits{/sha}","git_commits_url":"https://api.github.com/repos/mattt/FormatterKit/git/commits{/sha}","comments_url":"https://api.github.com/repos/mattt/FormatterKit/comments{/number}","issue_comment_url":"https://api.github.com/repos/mattt/FormatterKit/issues/comments{/number}","contents_url":"https://api.github.com/repos/mattt/FormatterKit/contents/{+path}","compare_url":"https://api.github.com/repos/mattt/FormatterKit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mattt/FormatterKit/merges","archive_url":"https://api.github.com/repos/mattt/FormatterKit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mattt/FormatterKit/downloads","issues_url":"https://api.github.com/repos/mattt/FormatterKit/issues{/number}","pulls_url":"https://api.github.com/repos/mattt/FormatterKit/pulls{/number}","milestones_url":"https://api.github.com/repos/mattt/FormatterKit/milestones{/number}","notifications_url":"https://api.github.com/repos/mattt/FormatterKit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mattt/FormatterKit/labels{/name}","releases_url":"https://api.github.com/repos/mattt/FormatterKit/releases{/id}","created_at":"2011-07-25T20:27:48Z","updated_at":"2015-05-06T08:18:33Z","pushed_at":"2015-05-04T05:01:33Z","git_url":"git://github.com/mattt/FormatterKit.git","ssh_url":"git@github.com:mattt/FormatterKit.git","clone_url":"https://github.com/mattt/FormatterKit.git","svn_url":"https://github.com/mattt/FormatterKit","homepage":"","size":1795,"stargazers_count":2881,"watchers_count":2881,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":306,"mirror_url":null,"open_issues_count":15,"forks":306,"open_issues":15,"watchers":2881,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mattt/FormatterKit/pulls/176"},"html":{"href":"https://github.com/mattt/FormatterKit/pull/176"},"issue":{"href":"https://api.github.com/repos/mattt/FormatterKit/issues/176"},"comments":{"href":"https://api.github.com/repos/mattt/FormatterKit/issues/176/comments"},"review_comments":{"href":"https://api.github.com/repos/mattt/FormatterKit/pulls/176/comments"},"review_comment":{"href":"https://api.github.com/repos/mattt/FormatterKit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mattt/FormatterKit/pulls/176/commits"},"statuses":{"href":"https://api.github.com/repos/mattt/FormatterKit/statuses/2ea246ae4573538886ffb946d70d141583443734"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":4,"additions":1401,"deletions":204,"changed_files":18}}