Compare commits

...

498 Commits

Author SHA1 Message Date
Anton c8ae154ba6 Sdk add custom methods
+ (void)forcedSetAccessToken:(VKAccessToken *)accessToken;
+ (void)forcedWakeUpSession;
2016-10-08 12:12:07 +03:00
Roman Truba 5061d72908 Merge pull request #431 from grebenschikov/master
Fix potentially vulnerable code
2016-08-02 15:17:37 +04:00
Roman Truba c28582cee5 Version up to 1.4.4 2016-08-02 14:11:56 +03:00
Roman Truba d6d65a57ea Fixed #432 2016-08-02 14:11:56 +03:00
Alexander Grebenschikov 9cdb1c8669 Rollback dev team ID 2016-07-30 11:59:11 +03:00
Alexander Grebenschikov c7548404dd Fix potentially vulnerable code 2016-07-30 11:57:10 +03:00
Roman Truba b7da2f2a8a Merge pull request #427 from Akhrameev/master
Update README.md
2016-07-22 15:25:15 +04:00
Pavel Akhrameev 22635ef4b0 Update README.md
Каждый раз при чтении README мне бросается в глаза этот запрос. Подправил название переменной.
2016-07-22 17:24:21 +06:00
Roman Truba c567b487bf Version up to 1.4.3 2016-07-18 20:04:14 +03:00
Roman Truba 4ddf66e973 Removed nsdata+md5, renamed nsstring+md5 category and method 2016-07-18 20:03:27 +03:00
Roman Truba c056db5ce9 Safe properties access 2016-07-18 19:54:20 +03:00
Roman Truba 2f8be07617 Correct SDK version check 2016-07-18 19:54:04 +03:00
Roman Truba dfcb75709e Fixed #424 2016-07-18 19:54:04 +03:00
Roman Truba a1806eb420 Update README.md 2016-06-28 02:13:46 +03:00
Roman Truba e93fed4968 Fixed resources for cocoapods 2016-06-28 01:50:56 +03:00
Roman Truba 37ada22c9a Added required image and sdk for travis 2016-06-27 20:39:51 +03:00
Roman Truba db1865da6b Allow any certificates for tests, to avoid test failed with SSL connection failure 2016-06-27 20:36:47 +03:00
Roman Truba 1ae11dad91 Schemes configured for tests 2016-06-27 20:25:08 +03:00
Roman Truba 32a5b4dd5d Project schemes added 2016-06-27 19:52:51 +03:00
Roman Truba 98b76d06b2 Add travis.yml 2016-06-27 19:42:02 +03:00
Roman Truba ddbd457074 Updated version and readme 2016-06-27 19:10:59 +03:00
Roman Truba 9868336bf2 Removed some deprecated methods for build target 9.0 2016-06-27 19:07:28 +03:00
Roman Truba 31b4193e7f Correct bundle for assets catalog images 2016-06-27 19:06:50 +03:00
Roman Truba dd39a645f1 Migrated to NSProcessInfo api for finding out the OS version of the current device 2016-06-27 18:48:54 +03:00
Roman Truba a63607ed0e Resources moved into asset catalog 2016-06-27 18:00:15 +03:00
Roman Truba ecf361ff88 Add two basic test for loading and parsing 2016-06-27 18:00:15 +03:00
Roman Truba 906e8b657b Fixed #390 2016-06-27 18:00:15 +03:00
Roman Truba 2a445eafda Fixed #410 2016-06-27 18:00:15 +03:00
Roman Truba 483b24682f Lightweight generics for models 2016-06-27 18:00:14 +03:00
Roman Truba 5dd3e827c9 Fixed #412 2016-06-27 18:00:14 +03:00
Roman Truba 4dd46e8811 Update README.md 2016-05-25 13:05:56 +03:00
Roman Truba 197d90a268 Version set to 1.3.17 2016-05-12 18:15:45 +03:00
Roman Truba 104299d7c3 Fixed #397 2016-05-12 18:14:45 +03:00
Roman Truba b5c31ac654 initializeWithAppId docs updated. VKAccessToken private category updated 2016-05-12 18:14:29 +03:00
Roman Truba 6c567873b8 Documentation improved 2016-05-12 17:37:50 +03:00
Roman Truba 072467f37f Merge pull request #389 from goingreen/master
Added search and edit methods for docs
2016-05-12 17:58:26 +04:00
Roman Truba 8da93c0213 Merge pull request #381 from kohver/master
Фикс импорта SDK
2016-05-12 17:58:05 +04:00
Roman Truba 397a4b22d4 Merge pull request #393 from ghost/master
Устранено появление ошибок автокомплита "Parameter name omitted"
2016-05-12 17:57:49 +04:00
svrz 1f87380618 Убрал сеттеры 2016-04-13 19:45:12 +03:00
svrz aeb2d7c149 Обновлены сигнатуры блоков 2016-04-13 18:49:56 +03:00
Artur Antonov 01a9871b3f Added search and edit methods for docs 2016-04-03 00:46:59 +03:00
Artyom Kohver 9f9e229617 Update README.md 2016-03-23 20:54:55 +03:00
Roman Truba 2a2d1e9719 Version set to 1.3.16 2016-03-17 16:52:13 +03:00
Roman Truba 74d2065a85 Fixed #328 #380 2016-03-17 16:51:31 +03:00
Roman Truba 30e410824c Version set to 1.3.15 2016-03-15 17:34:31 +03:00
Roman Truba 0927027f03 Fixed #353 2016-03-15 16:01:04 +03:00
Roman Truba 408cb7e791 Version set to 1.3.14 2016-03-15 15:04:04 +03:00
Roman Truba eeeff19c3f Merge branch 'master' of git://github.com/andriko13/vk-ios-sdk 2016-03-15 14:58:37 +03:00
Roman Truba 697edbd2ec Log error in share dialog, when not possible to load images 2016-03-15 14:58:07 +03:00
Roman Truba 871a0495ee Fixed #373 2016-03-15 14:58:07 +03:00
Roman Truba d5e6f00f10 Fixed #371 2016-03-15 14:58:07 +03:00
Andriy Suden 240e13b8ca Fixed possibility of garbage value being set.
A garbage value for the struct can be used unintentionally while initializing self.notAuthorizedLabel.frame a few lines down. Initializing struct to {0,0} takes care of this issue.
2016-02-29 20:01:23 -06:00
Roman Truba d0bc4bc7d5 Merge pull request #357 from npenzin/master
I dared to fix english grammar a bit and to add a bit of beauty to the .md wherever it was possible
2016-02-18 11:10:53 +03:00
Roman Truba 7960275dac Merge pull request #367 from HiDaN4/master
Fix bug - attachments were not shown in VKShareDialogController
2016-02-18 11:10:44 +03:00
Dmitry Sokolov eef95cfcd1 Fix the bug when attachments were not shown in VKShareDialogController (iOS 9.2) 2016-02-17 22:38:24 -08:00
Roman Truba eae288614a Version set to 1.3.13 2016-01-24 14:42:10 +03:00
Roman Truba 4b9603eec6 Fixed #356 2016-01-24 14:41:20 +03:00
Nikita Penzin 7e3def395f grammar fix? beautified md 2016-01-24 16:15:48 +08:00
Roman Truba 0ee1451d00 Version set to 1.3.12 2016-01-15 15:02:05 +03:00
Roman Truba 64e84de83b Refactored poor method names. Added missing licences 2016-01-15 14:59:51 +03:00
Roman Truba 22041a163f Merge branch 'master' of git://github.com/driver733/vk-ios-sdk into driver733-master 2016-01-15 14:24:51 +03:00
Roman Truba 84441d48a8 Fixed #351 2016-01-15 14:24:03 +03:00
Sergey Armodin 503bf73c01 - Formatting. 2016-01-15 14:24:03 +03:00
Sergey Armodin 81f10484ac - Fix for default scope in VKShareDialogController. Looking for access token permissions first. 2016-01-15 14:24:03 +03:00
Roman Truba 6663992286 Version set to 1.3.11 2016-01-12 11:04:56 +03:00
Roman Truba 910b4eab8e Fixed #347 2016-01-12 11:04:30 +03:00
Roman Truba cf66321aa0 Version set to 1.3.10 2016-01-11 16:00:05 +03:00
Roman Truba 3cc9caeb96 Added market permissions 2016-01-11 15:59:32 +03:00
Mikhail Yakushin 23f163a2e3 minor fixes 2016-01-10 20:15:48 -05:00
Mikhail Yakushin 57d8e700e1 Added missing VKAPIDocs methods 2016-01-10 12:15:40 -05:00
Roman Truba 43307ff5c0 Version set to 1.3.9 2016-01-09 19:15:21 +03:00
Roman Truba c41edc1819 Fixed #345 2016-01-09 19:14:31 +03:00
Roman Truba d9473189a1 Updated gitignore 2016-01-09 18:55:23 +03:00
Mikhail Yakushin 2787238612 Implemented VK Documents models and API methods 2016-01-06 23:01:41 -05:00
Mikhail Yakushin a68502ea61 Added cancellation information to the UI delegate view controller dismissal methods. 2015-12-24 12:32:25 +00:00
Roman Truba a90b8767ee Update README.md
Added carthage build info
2015-11-30 16:42:31 +03:00
Roman Truba 30c7f750f8 Version set to 1.3.8. Additional cocoapods frameworks added 2015-11-30 16:25:21 +03:00
Roman Truba 4a02e2622f Updated project settings 2015-11-30 16:24:35 +03:00
Roman Truba 14d9ab7f79 Fixed #318 2015-11-30 16:14:03 +03:00
Roman Truba 8e047deb3b Updated example 2015-11-30 16:10:38 +03:00
Roman Truba 7357629c86 Fixed #323 2015-11-30 16:09:10 +03:00
Roman Truba 3b9409311e Removed framework target 2015-11-30 15:54:14 +03:00
Roman Truba 5f6c11b5e2 Refactored special permissions 2015-11-26 14:47:37 +03:00
Roman Truba 3dfcf35985 Framework recompiled 2015-11-17 13:26:34 +03:00
Roman Truba 9524b8f60b Version set to 1.3.7 2015-11-17 13:26:31 +03:00
Roman Truba 4256963cf7 Force bitcode for static library 2015-11-17 13:26:31 +03:00
Roman Truba aebd049579 "notify" scope may cause bad user experience 2015-11-17 13:26:31 +03:00
Roman Truba db335040d2 Update README.md 2015-11-12 14:45:34 +03:00
Roman Truba fc50aa7bf9 Version set to 1.3.6 2015-11-11 17:33:17 +03:00
Peter 01279da5e6 Providing cancel authorize controller error code 2015-11-11 17:28:37 +03:00
Peter 2f90e32060 Only add operation if not nil 2015-11-11 17:28:08 +03:00
Roman Truba 910efb3092 Fixed ukraine lang, and extra check for progress block added 2015-11-11 17:24:57 +03:00
Roman Truba d8fcd04b79 Version set up to 1.3.5 2015-11-11 17:09:47 +03:00
Roman Truba fd227bffba Changed way of processing app language 2015-11-11 17:08:45 +03:00
Roman Truba 7968aa8c88 Fixed vk app logic 2015-11-03 17:04:47 +03:00
Roman Truba 31c922cb45 Version set to 1.3.3 2015-11-03 15:48:40 +03:00
Roman Truba d5e0bfc0d9 Added required frameworks for framework target 2015-11-03 15:46:50 +03:00
Roman Truba 7124872ce0 Changed vkSdkUserAuthorizationFailed method for #299 2015-11-03 15:44:44 +03:00
Roman Truba 1d335561aa Added safariservices framework to demo app 2015-11-03 15:41:47 +03:00
Roman Truba 799fb92434 Fixed #298 2015-11-03 14:39:42 +03:00
Roman Truba 5db3ad047a Removed dsym warnings by turning off Enable Modules 2015-11-02 19:59:28 +03:00
Roman Truba 2e79921ff5 Rebuild framework 2015-11-02 17:05:12 +03:00
Roman Truba 086cc76ab5 Added SafariServices framework as required framework for cocoapods 2015-11-02 16:59:51 +03:00
Roman Truba 5e9134c2b7 Update README.md 2015-11-01 01:26:47 +03:00
Roman Truba c70f0b8938 Update README.md 2015-11-01 00:38:53 +03:00
Roman Truba 5b4108fc9a Update README.md 2015-11-01 00:37:51 +03:00
Roman Truba bfcab6c90c Update README.md 2015-10-30 19:26:08 +03:00
Roman Truba 7fd17bf2b6 Update README.md
Added info about iOS 9
2015-10-30 19:25:01 +03:00
Roman Truba 0f54aaaab9 Moved to version 1.3.1 2015-10-30 18:22:39 +03:00
Roman Truba 845d5fa8ad Copy localUser when copying token 2015-10-30 18:21:34 +03:00
Roman Truba 8fbee54518 Missed framework files added 2015-10-30 18:12:00 +03:00
Roman Truba a28f621d2d Framework updated 2015-10-30 18:07:10 +03:00
Roman Truba dbe5b16ec5 Podspec version updated 2015-10-30 17:58:59 +03:00
Roman Truba 56c2080caf Version updated 2015-10-30 17:56:34 +03:00
Roman Truba c7d5b22772 Documentation update 2015-10-30 17:56:06 +03:00
Roman Truba 6510f75549 Moved captcha error delegate call to UI delegate 2015-10-30 17:17:49 +03:00
Roman Truba 2b8f62a89b license updated 2015-10-30 17:08:04 +03:00
Roman Truba f1fad4e522 Added method for understanding if share extension avilable 2015-10-30 17:05:03 +03:00
Roman Truba 86a786b3e9 Project automatically formatted 2015-10-30 16:41:12 +03:00
Roman Truba 96b51ada7b Fixed storyboard 2015-10-30 16:21:44 +03:00
Roman Truba 4242606ada Little refactoring 2015-10-30 16:21:34 +03:00
Roman Truba 6a583d59bd Fixed ios framework scheme 2015-10-29 23:09:08 +03:00
Roman Truba 45cb26bd16 Fixed token renew if not required 2015-10-29 21:59:10 +03:00
Roman Truba c03eb3ab5e Make wakeUpSession asyncronious 2015-10-29 21:43:22 +03:00
Roman Truba 64cdf28437 Save access token in keychain 2015-10-29 19:59:58 +03:00
Roman Truba 9ab7c34dde Improved library work. Rewrited authorization. Removed stupid http method field. Sdk delegate separated to uidelegate and access delegate 2015-10-29 19:18:59 +03:00
Roman Truba 381cee4b42 Authorization result helper class 2015-10-29 19:15:47 +03:00
Roman Truba 9c99880451 Renamed parse permission function 2015-10-29 19:14:59 +03:00
Roman Truba eb634e52df Improved VKAccessToken work 2015-10-29 19:14:21 +03:00
Roman Truba 032ea3a9fe Fixed issue with headers in nsstring category 2015-10-29 19:13:48 +03:00
Roman Truba 1e5a851a1a Check if parsing object is dictionary 2015-10-29 19:13:19 +03:00
Roman Truba f8e1b68f98 Improved error logging 2015-10-29 19:12:41 +03:00
Roman Truba 308189c40a Special helper methods for parsing 2015-10-29 19:12:14 +03:00
Roman Truba 022b239c71 Merge branch 'master' of git://github.com/chipp/vk-ios-sdk 2015-10-26 14:58:54 +03:00
Roman Truba 3dd4dcd483 Fixed #290 2015-10-26 14:40:13 +03:00
Roman Truba 4dcb08dffd Rebuild to remove dsym warnings 2015-10-26 14:11:38 +03:00
Vladimir Burdukov 60932765a2 Implement authorization in SFSafariViewController 2015-10-08 14:36:17 +03:00
Roman Truba 8f708ccf59 Update README.md 2015-10-07 21:55:53 +03:00
Roman Truba b77d1ee7da Version up 2015-09-14 13:37:59 +03:00
Roman Truba 48a4bfa0d3 Fixed #269 #274 and others 2015-09-14 13:37:12 +03:00
Roman Truba 251447cbd4 Changed readme and test application plist 2015-09-13 23:02:13 +03:00
Roman Truba 9953a56b04 Updated for iOS 9 2015-09-13 22:31:07 +03:00
Roman Truba 604787764c Some appearance ignore for #249 2015-08-25 14:03:08 +03:00
Roman Truba 708f7348dc Podspec issue fixed 2015-08-25 13:18:59 +03:00
Roman Truba ac8ace8a7f Framework updated 2015-08-24 20:35:54 +03:00
Roman Truba 72ea28254c Merge branch 'master' of git://github.com/Rusik/vk-ios-official-sdk 2015-08-24 20:34:16 +03:00
Roman Truba c75420d77c Merge branch 'master' of git://github.com/Sega-Zero/vk-ios-sdk 2015-08-24 20:33:53 +03:00
Roman Truba 2b48548b6c Version up 2015-08-24 20:32:23 +03:00
Roman Truba 7c6ad3cc93 Preprared for carthage. Fixed #245 2015-08-24 20:19:47 +03:00
Roman Truba b747adff10 Changed gitignore 2015-08-24 15:50:40 +03:00
Roman Truba 1426acc59f Fixed #253 2015-08-24 14:47:35 +03:00
Roman Truba 7014dc1806 Fixed #262 2015-08-24 14:42:16 +03:00
Roman Truba 554a865339 VKActivity slightly reworked 2015-08-13 16:08:45 +03:00
Ruslan Kavetsky 4f4dc93fd4 Add handleDidBecomeActive method for cases when user starts authorization process in safari or vk app but switch back to app without giving access 2015-08-11 14:13:58 +03:00
Ruslan Kavetsky 499857b128 Merge remote-tracking branch 'upstream/master' 2015-08-11 13:19:13 +03:00
Roman Truba a6fee0735b Some improvements with parse 2015-08-09 23:19:18 +03:00
Сергей Галездинов 660d96ead5 fix warning when deployment target is 8.0 and higher 2015-08-07 20:13:51 +03:00
Ruslan Kavetsky 40980751af Add prefix to DescriptionForObject function to avoid conflicts 2015-07-30 12:42:21 +03:00
Roman Truba f67045e283 Version up 2015-07-03 13:12:23 +03:00
Roman Truba 482e458301 Fixed #241 2015-07-03 13:11:43 +03:00
Roman Truba f5d5f80d55 Check block param for null 2015-07-02 12:57:14 +03:00
Peter 1f21bfe112 Version Up 2015-07-01 20:36:57 +03:00
Peter 23bfb38c3c Added errorText and json properties to VKError 2015-07-01 20:35:34 +03:00
Roman Truba 5a0be62e92 Version up 2015-06-26 19:41:26 +03:00
Roman Truba 2956d98872 Fixed #209 2015-06-26 19:37:11 +03:00
Roman Truba b1b9f3c5db Version up 2015-06-26 18:23:21 +03:00
Roman Truba d05cb3b4fb Fixed wrong json validation and problem in share dialog 2015-06-26 18:22:55 +03:00
Peter e90c9f3792 Merge branch 'master' of https://github.com/VKCOM/vk-ios-sdk 2015-06-26 16:53:25 +03:00
Roman Truba 3f7e6e24e3 Version up 2015-06-26 16:51:03 +03:00
Roman Truba 2db18d7517 Fixed #229 2015-06-26 16:46:26 +03:00
Peter 1fbcb692f2 Merge branch 'master' of https://github.com/VKCOM/vk-ios-sdk 2015-06-26 16:44:29 +03:00
Roman Truba 3169a048f1 Changed way of providing cancelation 2015-06-26 16:40:24 +03:00
Roman Truba 15012df337 Fixed #224 2015-06-26 16:10:17 +03:00
Peter 6cccb5530f Providing error if couldn't parse responseString 2015-06-26 16:09:46 +03:00
Peter 6e3b41297e Fixed hardcoded API_VERSION 2015-06-26 15:47:01 +03:00
Roman Truba ee9ff585b6 Returned project files 2015-06-26 15:44:08 +03:00
Roman Truba 1dc16b9187 Fixed #225 2015-06-26 15:31:26 +03:00
Roman Truba ce7f84605f Merge branch 'fix_access_token_serialization' of git://github.com/Shulepov/vk-ios-sdk 2015-06-26 15:20:14 +03:00
Roman Truba 40c16bc392 Merge branch 'master' of github.com:VKCOM/vk-ios-sdk 2015-06-26 15:19:42 +03:00
Roman Truba f6be4da938 Merge pull request #237 from chasok/apiObjectEnumeration
add properties of apiObject to enumeration of apiObject
2015-06-26 15:18:26 +03:00
Roman Truba 0e4a7c6517 Merge pull request #238 from chasok/apiObjectWithIgnoredFields
fix apiObject for enumeration with ignoredProperties
2015-06-26 15:18:03 +03:00
Alexandr Chernov 75d07fae81 add properties of apiObject to enumeration of apiObject 2015-06-20 23:06:00 +03:00
Alexandr Chernov b4b68c3f4a fix apiObject for enumeration with ignoredProperties 2015-06-20 22:50:52 +03:00
Mikhail Shulepov da09b3d94c Fix serialization of permissions when saving access token 2015-05-21 23:12:52 +03:00
Roman Truba 6a7f084db1 Ignore file changed 2015-05-06 13:11:12 +03:00
Roman Truba 7689c980eb Version updated, project updated 2015-04-27 16:33:25 +03:00
Roman Truba c98ccfb088 Fixed #206 2015-04-27 15:41:03 +03:00
Roman Truba b0d07d2c4f Fixed #213 2015-04-27 15:26:57 +03:00
Roman Truba 46a3f23244 Fixed #207 2015-04-27 14:42:03 +03:00
Roman Truba 648d591be4 Fixed #195 2015-04-27 14:20:04 +03:00
Roman Truba 8be52ac0dc Updated framework 2015-04-10 20:52:44 +03:00
Roman Truba 613479625b Merged #199 2015-04-10 20:51:39 +03:00
Roman Truba 16d9eeba52 Framework update 2015-04-10 20:45:16 +03:00
Roman Truba 3f3de5d657 Version up 2015-04-10 20:44:55 +03:00
Roman Truba 299f758988 Fixed #203 2015-04-10 20:42:41 +03:00
Roman Truba 07a0cb9c4e Fixed #204, #198, #199 2015-04-10 20:40:31 +03:00
Roman Truba 6629ee2427 Merge pull request #196 from mihroot/master
webView -> [urlString hasPrefix] Fix
2015-04-02 15:10:44 +03:00
Rishat Shamsutdinov 88a555c581 version bump 2015-04-02 11:29:54 +05:00
Rishat Shamsutdinov 65990a0952 fixes for authorization controller 2015-04-02 11:27:43 +05:00
mihroot 6c2c3ecbd6 webView -> [urlString hasPrefix] Fix 2015-04-01 05:07:56 +03:00
Roman Truba 1c23063a09 Version update 2015-03-30 14:31:24 +03:00
Roman Truba 7242be27ad Wrong logic in scheduler 2015-03-30 14:28:42 +03:00
Roman Truba 0bd538e271 Updated framework files 2015-03-24 20:31:16 +03:00
Roman Truba ba639f1d93 Updated example application 2015-03-24 20:30:36 +03:00
Roman Truba 36ebc1bb28 Changed building script, removed unnecessary target 2015-03-24 20:27:19 +03:00
Roman Truba b018fac4ac New initialization method. Deprecate unnecessary method. In case of error trying internal authorization 2015-03-24 19:47:50 +03:00
Roman Truba 632212ac6e Refactor and display in form for ipad 2015-03-24 19:46:30 +03:00
Roman Truba 16ecda8c93 Refactor 2015-03-24 19:45:56 +03:00
Roman Truba a0c446349e Version update 2015-03-23 19:28:16 +03:00
Roman Truba 66a963d816 Fixed example 2015-03-23 19:27:22 +03:00
Roman Truba 6bf4beb5fb Fixed safari authorize 2015-03-23 19:27:07 +03:00
Roman Truba 17fb34c52d Synchronous request cancelation 2015-03-23 18:51:23 +03:00
Roman Truba 8b809e2b45 Update framework 2015-03-23 16:21:18 +03:00
Roman Truba 0db68f1fc8 Fixed #194 2015-03-23 16:20:22 +03:00
Roman Truba bb1983c367 Update framework 2015-03-20 18:26:44 +03:00
Roman Truba 2d7ae8fd28 Precission fix 2015-03-20 18:23:29 +03:00
Roman Truba 1c12244c36 Version up 2015-03-20 18:21:36 +03:00
Roman Truba f53cd96e1f Library code reformat automatically 2015-03-20 18:20:14 +03:00
Roman Truba 02ddaca26a Remove log info 2015-03-20 17:34:37 +03:00
Roman Truba ff93fdb15f Remove log info 2015-03-20 17:33:35 +03:00
Roman Truba 54e8f1f3ac Removed log info 2015-03-20 17:33:03 +03:00
Roman Truba 01de02ef90 Update framework 2015-03-20 14:59:45 +03:00
Roman Truba ddbbb5e8f8 Change version to 1.1.1 2015-03-20 14:58:04 +03:00
Roman Truba f1fe8ec036 Fixed #191 2015-03-20 14:57:29 +03:00
Roman Truba 934521b0b1 Fixed #186 2015-03-20 14:20:54 +03:00
Roman Truba 34336287e9 Fixed #193. Added requests scheduler. 2015-03-20 14:18:28 +03:00
Roman Truba 7ba0790306 Framework update 2015-02-24 16:06:50 +03:00
Roman Truba 61622c5c08 Version update 2015-02-24 16:01:21 +03:00
Roman Truba 1869aeef0b Updated example 2015-02-24 15:57:33 +03:00
Roman Truba dda86d55a3 Updated captcha view 2015-02-24 15:57:17 +03:00
Roman Truba f5cfb8af40 Fixed ivar migration 2015-02-24 14:57:34 +03:00
Roman Truba 550ffa7a73 Visual improvement in share dialog 2015-02-24 14:57:08 +03:00
Roman Truba 096d54805d Fixed double call in case of cancel 2015-02-24 14:56:30 +03:00
Roman Truba 6bfcec15d0 Library refactored 2015-02-24 13:01:19 +03:00
Roman Truba 4f4c32c4aa Fixed #177 2015-02-24 12:47:42 +03:00
Roman Truba e963946e5a Fixed #182 2015-02-24 12:22:17 +03:00
Roman Truba 132bf2b9f8 Fixed non-retina text issue 2015-01-23 18:11:51 +03:00
Roman Truba c49e958539 Fixed #159 2015-01-15 18:30:39 +03:00
Roman Truba 02bede4ce3 Version update 2015-01-15 18:14:56 +03:00
Roman Truba c99ef3141a Merge with remote 2015-01-15 18:14:33 +03:00
Roman Truba 7af46cec6f Version update 2015-01-15 18:12:17 +03:00
Roman Truba c1e6b13a0d Version update 2015-01-15 18:12:02 +03:00
Roman Truba c823b12157 Fixed #160 2015-01-15 18:07:39 +03:00
Roman Truba 8785ce0d83 Fixed #159 2015-01-07 04:37:17 +03:00
Roman Truba 7634681c5e #159 2015-01-07 03:57:50 +03:00
Roman Truba 60ddbdeda3 New version 1.0.9.1 2014-12-25 13:06:13 +03:00
Roman Truba d7db6c5790 Updated library and example 2014-12-25 13:01:16 +03:00
Roman Truba 7d12e2aedc Merge branch 'master' of github.com:VKCOM/vk-ios-sdk 2014-12-25 13:00:48 +03:00
Roman Truba 72baad29f0 Refactored #157 2014-12-25 13:00:12 +03:00
Roman Truba a992a451fa Fixed #157 2014-12-25 12:58:46 +03:00
Roman Truba d052434aef Update README.md 2014-12-24 02:34:10 +03:00
Roman Truba 8d7b7c00dd Update README.md 2014-12-24 02:27:27 +03:00
Roman Truba 0f8625c9f5 Added armv7s arch 2014-12-18 14:48:34 +03:00
Roman Truba 761cfd5333 Built SDK framework 2014-12-18 14:34:52 +03:00
Roman Truba 4ce4d46ac3 Change sdk project structure 2014-12-18 13:40:04 +03:00
Roman Truba 1df201ec4a Update README.md 2014-12-18 12:44:01 +03:00
Roman Truba c7437f506c Fixed #154 2014-12-17 22:20:58 +03:00
Roman Truba 798dd66a52 Updated license in files 2014-12-17 14:47:56 +03:00
Roman Truba bbf21cca29 Update README.md 2014-12-17 13:58:39 +03:00
Roman Truba 2a13c966ed Updated pod version 2014-12-17 13:31:23 +03:00
Roman Truba b0fc58752b Must be fixed #116 2014-12-17 13:28:16 +03:00
Roman Truba 4ac40b0195 Updated resources 2014-12-17 12:57:02 +03:00
Roman Truba f0007fe9f1 Created VKActivity. Closed #27. Fixed #139. Fixed #138. Fixed #137. Fixed #152. 2014-12-17 12:52:28 +03:00
Roman Truba 16d6c928b5 New share dialog 2014-12-17 10:55:05 +03:00
Roman Truba 42e9f56724 Merge pull request #143 from ashitikov/master
ShareDialog crashes and completion handler
2014-12-02 09:53:06 +03:00
ashitikov 3f9d77efb7 Compile fix 2014-12-01 09:47:51 +03:00
ashitikov b7ac10b04a Fix sharing cancelling 2014-12-01 00:13:05 +04:00
ashitikov 42a7ee6d3d Fix transition crash 2014-11-30 21:58:25 +04:00
Vladimir Konev 88da70df12 Added support for results of share dialog presenting 2014-10-23 04:44:01 +04:00
Roman Truba 8dd5213a26 Update README.md 2014-10-16 15:15:49 +04:00
Roman Truba 14d81af35a Changed version 2014-09-26 18:28:54 +04:00
Roman Truba e80ec9f584 Updated validation controller layout 2014-09-26 18:28:17 +04:00
Roman Truba b6a9d679ff Changed version 2014-09-26 18:04:57 +04:00
Roman Truba 184e10566d By default using POST http method. Fixed #126 2014-09-26 18:04:21 +04:00
Roman Truba d0fe2c369c Changed version 2014-09-26 18:02:09 +04:00
Roman Truba c165fc50c0 Changed example image 2014-09-26 18:01:33 +04:00
Roman Truba e4ee82fe83 Changed captcha presentation form for iPad 2014-09-26 18:01:21 +04:00
Roman Truba c8d0516a35 Merge branch 'static_library_fix' of git://github.com/Vyazovoy/vk-ios-sdk 2014-09-26 17:50:10 +04:00
Andrew Vyazovoy 0bc1f2fa2a Project structure edited according this Apple recommendation:
https://developer.apple.com/library/ios/technotes/iOSStaticLibraries/Articles/creating.html#//apple_ref/doc/uid/TP40012554-CH2-SW1
"... If your library target has a “Copy Headers” build phase, you should delete it; copy headers build phases do not work correctly with static library targets when performing the “Archive” action in Xcode.

Next you will add a Copy Files build phase for exporting your headers. ..."
2014-09-24 12:19:39 +04:00
Andrew Vyazovoy 903348c2d1 VKGroup wrong used property warning fixed somehow. 2014-09-24 11:45:33 +04:00
Andrew Vyazovoy 19092daccc Ordered dictionary warning fixed. 2014-09-24 11:44:03 +04:00
Andrew Vyazovoy 648055b193 Xcode recommendations applied. 2014-09-23 22:20:28 +04:00
Andrew Vyazovoy e0b4b683ec All project minimum deployment target version up to 6.0 2014-09-23 22:18:14 +04:00
Roman Truba c258d63f99 New version 2014-08-18 14:24:48 +04:00
Roman Truba dc8049b36f Fixed #115 2014-08-18 14:23:44 +04:00
Roman Truba 22b710b2c7 Fix for cocoapods build 2014-08-11 12:27:17 +04:00
Roman Truba 5109551428 New version 2014-08-11 12:25:10 +04:00
Roman Truba eb46f0de75 Updated project file 2014-08-11 12:23:40 +04:00
Roman Truba 0de8d40ff6 New photo_sizes property for photos in task #110 2014-08-11 12:22:46 +04:00
Roman Truba cc84df4c1a Workaround with appearing bug on iPad 2014-08-11 11:55:30 +04:00
Roman Truba 3a87a08ff3 Fixed #111 2014-08-11 11:55:12 +04:00
Roman Truba 1efbcca1b7 Merge with main branch 2014-08-05 21:26:07 +04:00
Roman Truba ed588af630 Updated version 2014-08-05 21:24:13 +04:00
Roman Truba 21ff732a43 Fixed #107. Only 10 attempts will be used 2014-08-05 21:22:52 +04:00
Roman Truba 2579dff46f Updated example 2014-08-05 21:20:33 +04:00
Roman Truba d86e9dece0 Files ordering in project 2014-08-05 21:20:19 +04:00
Roman Truba 63f306cc5f New upload photo request for messaging 2014-08-05 21:19:42 +04:00
Roman Truba 3a51d576f5 Possibility to receive user email 2014-08-05 21:18:55 +04:00
Roman Truba 58229a7964 Fixed #106 2014-08-05 21:17:36 +04:00
Roman Truba a6048fde49 Patch from Max 2014-07-29 01:39:06 +08:00
Roman Truba 49f934e030 Merge 2014-07-22 18:54:37 +08:00
Roman Truba 04526e9b77 Update README.md 2014-07-22 18:49:39 +08:00
Roman Truba 2013f6a744 Update README.md 2014-07-22 18:49:14 +08:00
Roman Truba 14ee30a5bb Updated access to instance properties 2014-07-22 18:08:08 +08:00
Roman Truba 4feadef804 Update README.md 2014-07-18 15:58:55 +04:00
Roman Truba 0fd83f24c9 Update version to 1.0.8 2014-07-18 15:55:50 +04:00
Roman Truba 578e2db13a Updated example 2014-07-18 15:55:01 +04:00
Roman Truba 3b2da0f99f Removed unnecessary header 2014-07-18 15:52:40 +04:00
Roman Truba 61b8c5e5ed Share dialog. #3 2014-07-18 15:45:58 +04:00
Roman Truba e2275c7feb Added method names for VKRequest description 2014-07-17 16:47:34 +04:00
Roman Truba 56cb282909 Added flag to check request execution state 2014-07-17 16:47:00 +04:00
Roman Truba 796683ace3 Added missing header 2014-07-16 22:47:58 +04:00
Roman Truba 141a40d679 Fixed validation process 2014-07-16 22:47:38 +04:00
Roman Truba 3382e67e5c New icons 2014-07-16 22:47:11 +04:00
Roman Truba e5201fc33d Added request processing queue to prevent many threads creation 2014-07-16 22:46:36 +04:00
Roman Truba dd3c7dec43 Updated models. Fixed user exports field 2014-07-16 22:24:38 +04:00
Roman Truba 7816ef2320 Fixed token recreation during validation process 2014-07-16 20:43:45 +04:00
Roman Truba 4bf62c2afa Updated example headers 2014-07-16 19:53:26 +04:00
Roman Truba d3b5cd2a50 Returned descriptions for VKError 2014-07-16 19:51:26 +04:00
Roman Truba 7862f79061 Private ivars moved into private properties 2014-07-16 19:50:13 +04:00
Roman Truba f7d76b7fe9 Updated data model classes 2014-07-16 19:49:46 +04:00
Roman Truba 14109fcd87 Added missing header 2014-07-16 19:49:10 +04:00
Roman Truba 7a6418dc48 Updated integer types 2014-07-16 19:48:52 +04:00
Roman Truba 6f1d02e5dd VKUploadImage was moved to separate file. Added upload object with source image 2014-07-16 19:48:31 +04:00
Roman Truba 2677a0863b New methods for localized strings from VK bundle 2014-07-16 19:47:14 +04:00
Roman Truba ae5be4b386 Merge remote-tracking branch 'origin/master' 2014-07-11 13:49:44 +04:00
Roman Truba 2e0e2d0296 Documentation updates 2014-07-11 13:49:24 +04:00
Roman Truba c9507978b1 Merged with #92. Version inc. 2014-07-10 00:15:56 +04:00
Ruslan Kavetsky 8306592ead Add existing permissions to access token. Add method to VKSdk to work with permissions. Replace NSAssert with ZAssert. Add dispatch_once to VKSdkInstance creation. Web view in app now opened after previous fail (not moving to safari). Format code. 2014-07-09 22:55:47 +04:00
Roman Truba 3c96685d13 Updated version 2014-07-04 15:55:17 +04:00
Roman Truba 6e747ef15a Add iPad client bundle id 2014-07-04 15:54:28 +04:00
Roman Truba 4f417c51ee Fixed bug with webview 2014-07-01 15:14:59 +04:00
Roman Truba c01ddaea3e Updated podspec 2014-06-30 20:37:55 +04:00
Roman Truba 4271ade5d5 Updated authorization process (cause of wrong release application bundle) 2014-06-30 20:37:23 +04:00
Roman Truba 65d585df3c Version update 2014-06-30 18:42:03 +04:00
Roman Truba 05502afd18 Updated bundle id for release version 2014-06-30 18:36:42 +04:00
Roman Truba 9eb7e0f230 New version 1.0.6.13 2014-06-27 16:41:42 +04:00
Roman Truba 19cd8c4068 Merge pull request #89 from kajinka13/master
Fix Resource Bundle
2014-06-27 14:45:56 +04:00
WhiteTiger ef5eeaf5d4 Fix Resource Bundle
Fix Resource Bundle and change podspec
2014-06-27 12:28:37 +02:00
Roman Truba 86039fdcbc New version 1.0.6.12 2014-06-26 23:45:10 +04:00
Roman Truba 4ff6ae1ad9 Merge pull #87 2014-06-26 23:44:35 +04:00
Roman Truba 3ed4b18568 Improved #64 2014-06-26 23:40:21 +04:00
Alex Sherbakov 6f4d3a1951 Добавлен метод делегата vkSdkAuthorizationAllowFallbackToSafari
Опциональный метод vkSdkAuthorizationAllowFallbackToSafari протокола
VKSdkDelegate разрешает или запрещает переход на страницу авторизации в
Safari в том случае, если приложение ВКонтакте не установлено в
системе. При запрете перехода SDK использует webView.
2014-06-26 23:40:12 +06:00
Roman Truba e4949a7700 Merge remote-tracking branch 'origin/master' 2014-06-25 23:58:12 +04:00
Roman Truba 902deedfba Merge pull request #81 from zakhej/master
Add removeObserver: in VKCaptchaViewController
2014-06-18 14:31:15 +04:00
zakhej fb300f10f1 добавил отписку от уведомлений в VKCaptchaViewController 2014-06-18 14:27:01 +04:00
Roman Truba 9392070a9c Merge remote-tracking branch 'origin/master' 2014-06-14 21:41:08 +04:00
Roman Truba cba96d2d5d If passed nil as application 2014-06-14 21:40:57 +04:00
Roman Truba 68ac375e92 Friday 13 2014-06-13 21:24:29 +04:00
Roman Truba 28f0abea0d Removed trash in last commit 2014-06-13 21:22:46 +04:00
Roman Truba 51306eceff Fixed #77 2014-06-13 21:21:58 +04:00
Roman Truba c9969b732a SDK improvement #76 2014-06-07 14:29:28 +04:00
Roman Truba af25a5e865 Fix for cross app auth 2014-06-05 18:47:46 +04:00
Roman Truba 4abc59fc26 Add permission direct 2014-06-05 14:59:52 +04:00
Roman Truba 996673939d version update 2014-06-05 14:40:13 +04:00
Roman Truba 12caae4d20 Updated example 2014-06-05 14:33:31 +04:00
Roman Truba 7b7bdb12c1 Fixed bug with authorization. Again 2014-06-05 14:31:30 +04:00
Roman Truba c693a34d4f Updated authorization 2014-06-05 12:42:25 +04:00
Roman Truba 2899565be0 version update 2014-06-05 12:12:21 +04:00
Roman Truba 8140a46ef4 Fixed crash when hash not found 2014-06-05 12:11:49 +04:00
Roman Truba 9fd552cf6f Update LICENSE 2014-06-03 14:54:32 +04:00
Roman Truba 23a9d741d6 Version update 2014-06-03 14:51:40 +04:00
Roman Truba 0b02138ef6 Fixed #73 2014-06-03 14:50:23 +04:00
Roman Truba 41ac5de5b6 #72 2014-06-02 17:46:06 +04:00
Roman Truba 1830b024c1 Update version 2014-05-28 17:20:57 +04:00
Roman Truba 5322654319 Fix for #68. (Hope so) 2014-05-28 17:20:20 +04:00
Roman Truba 0ffd277cea Updated #67 (different types of semaphore type causes bug) 2014-05-28 14:58:25 +04:00
Roman Truba 8ef1ed173b Updated version 2014-05-28 14:54:50 +04:00
Roman Truba b99fa7c09e Fixed #67, updated #66 2014-05-28 14:54:19 +04:00
Roman Truba 3496ef2187 Improvement #64. First authorize through web view, if VK app is not available 2014-05-28 14:53:35 +04:00
Roman Truba 4b50a892f1 Podspec update 2014-05-27 18:15:52 +04:00
Roman Truba 813be1e299 Version update 2014-05-27 18:11:33 +04:00
Roman Truba edfc382798 Updated example 2014-05-27 18:08:46 +04:00
Roman Truba 4683a3c73e Improvement #66. Synchronous requests 2014-05-27 18:06:52 +04:00
Roman Truba 6f8d289808 Fix for missing VKLastSeen implementation 2014-05-27 18:04:44 +04:00
Roman Truba b35c2c4707 #64 improvement 2014-05-20 13:45:42 +04:00
Roman Truba 7765986de8 Убрал опечатку #62 2014-05-10 15:59:42 +04:00
Roman Truba fbe8729548 Update VKUser.h
Fixed #62
2014-05-10 15:44:02 +04:00
Roman Truba 8daeefc3ef Merge pull request #60 from zakhej/master
проверка accessToken на nil
2014-05-07 14:22:08 +04:00
zakhej 76c9b5baad проверка accessToken на nil 2014-05-07 13:28:15 +04:00
Roman Truba 72cf884d2f Update VKStartScreen.m
Removed scope messages (restricted in SDK)
2014-05-05 18:15:00 +04:00
Roman Truba a29dd91e4a Update VKSdk.h 2014-04-25 18:54:17 +04:00
Roman Truba e7788bd8ad Update VKSdk.h 2014-04-25 18:47:11 +04:00
Roman Truba 8433e0ca95 Update README.md 2014-04-18 18:41:42 +04:00
Roman Truba b2537cb412 Always add offline scope when authorizing 2014-04-11 23:09:03 +04:00
Roman Truba f84bc4b2d9 New version 1.0.6.5 2014-04-04 14:13:59 +04:00
Roman Truba 15d092bc10 Fixed #41 and refactored VKRequest 2014-04-04 14:09:06 +04:00
Roman Truba 872ad46ca1 Refix for #43 2014-04-04 13:57:32 +04:00
Roman Truba 6a91287443 Fixed #43 2014-04-04 13:55:33 +04:00
Roman Truba 1fddf9d7dc #38 2014-03-18 14:54:50 +04:00
Roman Truba 08f061e9b1 Updated user model. New models, updated copyright 2014-03-18 13:04:32 +04:00
Roman Truba 5a8b89e692 Fixed #36. Updated validation process 2014-03-17 18:05:13 +04:00
Roman Truba e42a9366c3 New version 1.0.6.4 2014-03-17 15:05:54 +04:00
Roman Truba fc20f611f3 Little issue in format 2014-03-17 13:02:01 +04:00
Roman Truba 8eacbd168d Documented VKRequestTiming and updated for error events 2014-03-17 12:18:08 +04:00
Roman Truba 935940c9bb Updated example 2014-03-17 12:12:44 +04:00
Roman Truba 5afe40912c Created debug instrument: VKRequestTiming 2014-03-17 12:12:33 +04:00
Roman Truba 6fbccde5cb Fixed #33 2014-03-17 12:12:07 +04:00
Roman Truba 10fd5085a5 Fixed #33 2014-03-17 11:30:55 +04:00
Roman Truba 5c819196df Update for other primitive types 2014-03-17 11:09:06 +04:00
Roman Truba 10b9c1f12a Merge remote-tracking branch 'origin/master' 2014-03-17 11:04:18 +04:00
Roman Truba 9533e896cd Refactor example 2014-03-17 11:04:08 +04:00
Roman Truba dc6ff6ff5d Removed log of loading string 2014-03-17 10:58:52 +04:00
Roman Truba 46105000d4 Removed log of request string 2014-03-17 10:58:12 +04:00
Dreddik cc3db38b83 Merge pull request #34 from laktyushin/master
Added url scheme validation in authorization url processing
2014-03-14 05:37:35 +01:00
Ilya Laktyushin 44b432196e Added url scheme validation in authorization url processing 2014-03-14 02:22:58 +04:00
Dreddik f5067819c5 Update README.md 2014-03-12 12:37:10 +01:00
Roman Truba 7920b4553b New version 1.0.6.3 2014-03-12 15:19:52 +04:00
Roman Truba 1ad4486dfb Updated example for #5 2014-03-12 15:17:19 +04:00
Roman Truba 097df0d6fe Fix in case of vkSdkRenewedToken is optional and may not respond 2014-03-12 15:16:51 +04:00
Roman Truba 319cf1e7f4 Fix warnings (lost precision) 2014-03-11 13:46:56 +04:00
Roman Truba 6859c26fcf Merge with #30. Add isLoggedIn method 2014-03-11 13:46:01 +04:00
Андрей Лазарев 3082e40f94 Update bug fix for #26 2014-03-11 15:07:31 +06:00
Roman Truba 9218d4dad7 New version 1.0.6.2 2014-03-11 12:36:37 +04:00
Roman Truba d6ebd21319 Merge branch 'master' of github.com:VKCOM/vk-ios-sdk
Merge with server
2014-03-11 12:34:36 +04:00
Roman Truba d3fb6f7740 Some magic 2014-03-11 12:34:27 +04:00
Roman Truba 60de8d2fea #28 and other 2014-03-11 12:30:07 +04:00
Roman Truba a9c7ded839 Added license 2014-03-07 14:02:21 +04:00
Roman Truba 46f287ee28 #26 2014-03-07 14:01:56 +04:00
Roman Truba 6dafef1428 Rename delegate methods 2014-03-04 18:56:46 +04:00
Dreddik 5e1cf94ed4 Merge pull request #24 from Sk0rpion/master
Add VKBatchRequest initialization with array
2014-02-24 16:45:02 +03:00
Alexander 34e35f7882 Add VKBatchRequest initialization with array 2014-02-24 16:57:05 +04:00
Dreddik d361fbd4d6 Merge pull request #23 from ealeksandrov/master
Update README.md
2014-02-20 15:19:19 +03:00
Evgeny Aleksandrov bdfcde143f Update README.md
Fix for `initializeWithDelegate:andAppId:` method name
2014-02-20 15:17:18 +03:00
Roman Truba c406f76c83 Changed podspec 2014-02-18 08:52:31 +07:00
Roman Truba e82fda12ed Changed project settings. Changed example. 2014-02-18 08:50:43 +07:00
Roman Truba 9b56229d04 Possible #19. Version increment. VKUser fix 2014-02-18 08:48:16 +07:00
Dreddik ad8326802d Update README.md 2014-02-01 00:20:33 +03:00
Roman Truba 82f2f8d541 Check if token exists 2014-02-01 01:18:40 +04:00
Roman Truba a89b3f80e7 New version 1.0.6. Improved parsing. SDK working with token itself 2014-01-31 23:50:09 +04:00
Roman Truba 6418fd3220 Merge remote-tracking branch 'origin/master' 2014-01-31 20:00:05 +04:00
Roman Truba 67205adc35 Updated example 2014-01-31 19:59:47 +04:00
Roman Truba d1f10e07c6 #11 define display type while authorizing in app 2014-01-31 19:59:21 +04:00
Roman Truba eef8665794 #12 save token in SDK 2014-01-31 19:46:50 +04:00
Roman Truba 834672abac Improved model parsing 2014-01-31 19:35:39 +04:00
Dreddik 6d207a5e61 Merge pull request #13 from K-Be/master
Fix for prevent possible names conflict
2014-01-28 22:22:44 -08:00
k-be 950e91f2ee removed user-depend link library 2014-01-29 12:51:15 +07:00
k-be d4c962d23e added AppCode files to ignore 2014-01-29 12:48:03 +07:00
k-be 1c9c73f569 renamed macros for naming agreements 2014-01-29 12:47:37 +07:00
k-be ce167cb752 adde AppCode files to ignore and xcshareddata 2014-01-29 12:41:23 +07:00
Dreddik eec1aa9914 Update README.md 2014-01-28 16:28:30 +03:00
Roman Truba 7053e3cfd5 Updated xcodeproj 2014-01-28 17:26:50 +04:00
Roman Truba b851eab336 Updated version 2014-01-28 14:11:44 +04:00
Roman Truba 69cf3dc756 Updated description 2014-01-28 14:09:59 +04:00
Roman Truba edbf54aa23 Updated examples 2014-01-28 14:03:48 +04:00
Roman Truba 9a972cd616 Rewrited errors for using NSError 2014-01-28 14:03:33 +04:00
Roman Truba be3166ae80 Smart parsing 2014-01-28 14:00:55 +04:00
Roman Truba e35a646085 Merge remote-tracking branch 'origin/master' 2014-01-28 13:03:28 +04:00
Roman Truba d3980f5a9f Changed podspec 2014-01-28 01:30:43 +04:00
Roman Truba 921c0c02a2 Removed unnecessary protocol 2014-01-28 01:27:03 +04:00
Roman Truba c2104e8457 Changed example 2014-01-28 01:24:42 +04:00
Roman Truba 6b3a9c523c New authorization method for using in app view controller. Changed documentation 2014-01-28 01:23:10 +04:00
Roman Truba f2f28dce25 Added isExpired property 2014-01-28 01:22:22 +04:00
Roman Truba 17df0f6f8e Fixed authorize controller for iOS 6.0 2014-01-28 01:15:35 +04:00
Roman Truba 5f5e0e4048 Added +forceLogout method for VKSdk. Changed display type to mobile 2014-01-28 01:02:09 +04:00
Dreddik c6333d24ed Update README.md 2014-01-22 12:12:51 +03:00
Dreddik cc304c498b Update README.md 2014-01-22 12:12:24 +03:00
Roman Truba b25b59263e Changed fields in VKUser 2014-01-20 13:18:22 +04:00
Roman Truba 1cf9c7f89a Updated vkphoto object. Rewrited example. 2014-01-15 13:34:19 +04:00
Roman Truba 20b43e35ba Merge remote-tracking branch 'origin/master' 2014-01-14 13:55:00 +04:00
Roman Truba 339f56e0c7 Uncommented getSubscriptions selector 2014-01-14 13:54:34 +04:00
Dreddik cab59e8bbe Update README.md 2014-01-12 10:28:02 +03:00
Roman Truba 6c6acfc81c Podspec renew 2014-01-10 19:01:33 +04:00
Roman Truba b4f4c1cc89 Examples: reformat and rewrite. 2014-01-10 19:00:31 +04:00
Dreddik f0c6855ef3 Merge pull request #1 from ealeksandrov/master
Project cleanup by ealeksandrov
2014-01-05 06:34:30 -08:00
Evgeny Aleksandrov 0959bae598 User data removed 2014-01-05 18:11:05 +04:00
Evgeny Aleksandrov da34e52a84 Unreferenced tests removed 2014-01-05 18:09:06 +04:00
Evgeny Aleksandrov f0b6f76e80 gitignore added 2014-01-05 18:08:12 +04:00
Evgeny Aleksandrov 5602a56f96 Signing identities and provision info removed 2014-01-05 18:03:37 +04:00
Dreddik 0a0c3964e5 Update README.md 2013-12-30 12:35:28 +03:00
Roman Truba debebbd03a Fixed photoupload (request was utilized before finished) 2013-12-27 16:31:13 +04:00
Roman Truba f2fea42ec4 Removed debug info. Fixed captcha controller 2013-12-27 16:08:55 +04:00
Roman Truba 58640fbcb5 Added license info. Fixed documentation field in VKAccessToken 2013-12-26 13:46:20 +04:00
Dreddik dfa553d146 Update README.md 2013-12-26 12:39:12 +03:00
Roman Truba 6841a67dd6 Merge branch 'master' of github.com:VKCOM/vk-ios-sdk 2013-12-26 12:59:17 +04:00
Roman Truba 68184663a6 Version change 2013-12-26 12:58:56 +04:00
Roman Truba 1bffc1598c Rewrited batch requests. New class VKOperation (base for operations). Fixed some memory leaks. Changes in example. Changed upload base class. 2013-12-26 12:57:27 +04:00
Dreddik d73b95ed32 Update README.md 2013-12-25 22:26:36 +03:00
Dreddik d57f318cd3 Update README.md 2013-12-25 22:20:07 +03:00
Dreddik 118ad17c82 Update README.md 2013-12-25 22:16:28 +03:00
Dreddik 0856422e3b Update README.md 2013-12-25 22:11:33 +03:00
Dreddik 15b876c3bc Update README.md 2013-12-25 00:45:46 +03:00
Dreddik f2d0435e0f Update README.md 2013-12-24 23:57:12 +03:00
Roman Truba 9f03c6d2f3 Removed precompiled header 2013-12-25 00:40:13 +04:00
Dreddik 0c41b3ab98 Update VK-ios-sdk.podspec 2013-12-24 23:27:19 +03:00
Roman Truba 93e3bdbfd2 Fixed cocoapods lint errors 2013-12-25 00:26:01 +04:00
Roman Truba d4cfe67a1c Fixed cocoa pods path. Fixed pods lint errors 2013-12-25 00:16:49 +04:00
Roman Truba 800dfe92cb Removed empty dir. Fixed cocoapods source_files 2013-12-25 00:06:39 +04:00
Roman Truba 58683b58c3 Fixed podspec project name 2013-12-24 21:06:27 +04:00
Roman Truba 2730131ddd Fixed podspec project name 2013-12-24 21:05:16 +04:00
Roman Truba b11c84d3fa New tag 1.0.2 2013-12-24 20:56:05 +04:00
Roman Truba 8532f46fdf Renamed podspec file 2013-12-24 20:54:24 +04:00
Roman Truba 8f8e200fa5 Renamed podspec file 2013-12-24 20:53:46 +04:00
Dreddik 81fda16510 Update VKSdk.podspec 2013-12-24 18:48:01 +03:00
Roman Truba 66b4f41577 Removed doxyfile 2013-12-24 19:43:17 +04:00
Roman Truba e25be5725b First public release 2013-12-24 19:37:55 +04:00
Dreddik f90a328556 Update README.md 2013-12-24 18:32:38 +03:00
Roman Truba 4ea7248e3e First public release 2013-12-24 19:32:01 +04:00
226 changed files with 15951 additions and 2 deletions

34
.gitignore vendored Normal file
View File

@ -0,0 +1,34 @@
#OS noise
profile
[Tt]humbs.db
*.DS_Store
*~
*.swp
*.out
*.bak*
*.lock
#Other CSM
.hg
.svn
CVS
#Xcode noise
*.log
*~.nib
*.moved-aside
**/*.xcuserdata/*
xcuserdata
#Project files
[Bb]uild/
DerivedData/
#CocoaPods
Pods
#AppCode
*/.idea/*
.idea/*
SDKBuildSteps.info

5
.travis.yml Normal file
View File

@ -0,0 +1,5 @@
language: objective-c
osx_image: xcode7.3
xcode_project: VK-ios-sdk.xcodeproj
xcode_scheme: VKSdk
xcode_sdk: iphonesimulator9.3

2
LICENSE Normal file → Executable file
View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2013 VK.com
Copyright (c) 2015 VK.com
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

345
README.md Normal file → Executable file
View File

@ -1,4 +1,347 @@
vk-ios-sdk
==========
Library for working with VK API, authorization through VK app, using VK functions
Library for working with VK API, authorizing through VK app, using VK API methods. Supported iOS from 6.0
Prepare for Using VK SDK
----------
To use VK SDK primarily you need to create a new Standalone VK application [here](https://vk.com/editapp?act=create). Choose a title and confirm the action via SMS and you will be redirected to the application settings page.
You will need your APP_ID to use the library. Fill in the App Bundle for iOS field.
Setup URL schema of Your Application
----------
To authorize via VK App you need to setup a url-schema for your application, which looks like vk+APP_ID (e.g. **vk1234567**).
[How to implement your own URL Scheme here](https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW10), Also there is [nice Twitter tutorial](https://dev.twitter.com/cards/mobile/url-schemes)
Configuring application for iOS 9
----------
iOS 9 changes the way of applications security and way of using unsecured connections. Basically, you don't have to change anything in transport security settings. But, if you're planing to use VK API with `nohttps` scope, you have to change security settings that way (in your `Info.plist` file):
```
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>vk.com</key>
<dict>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
```
We **don't** recommend using `nohttps` scope.
Also, for iOS 9 you have to add app schemas your app will use and check for `canOpenURL:`.
Add this to your `Info.plist`:
```
<key>LSApplicationQueriesSchemes</key>
<array>
<string>vk</string>
<string>vk-share</string>
<string>vkauthorize</string>
</array>
```
How to set up VK iOS SDK
==========
Installation with CocoaPods
----------
CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries like VK SDK in your projects. See the [Getting Started](http://cocoapods.org/) guide for more information.
`Podfile`
platform :ios, '6.0'
target 'YourProjectName' do
pod 'VK-ios-sdk'
end
Then import the project as module if your podfile contains `use_frameworks!` directive:
@import VK_ios_sdk;
Or import the main project header, if you're installing pods without `use_frameworks!` directive:
#import <VK-ios-sdk/VKSdk.h>
Installation with [Carthage](https://github.com/Carthage/Carthage)
----------
*iOS 8 and upper only*
Add this to you `Cartfile`:
```
github "VKCOM/vk-ios-sdk" >= 1.4
```
See building instructions for [Carthage here](https://github.com/Carthage/Carthage#if-youre-building-for-ios)
Then import the main header.
#import <VKSdkFramework/VKSdkFramework.h>
Installation with framework project
----------
If you're targeting iOS 8 and upper, you can use the SDK framework target. Add `VK-ios-sdk.xcodeproj` as sub-project to your project. Open your project in Xcode **->** Go to **General** tab **->** Find the **Embedded Binaries** section **->** Click **Add items** (plus sign) **->** And select `VKSdkFramework.framework` from the VK-ios-sdk project lastly import the main header:
#import <VKSdkFramework/VKSdkFramework.h>
Using SDK
==========
SDK Initialization
----------
1) Put this code to the application delegate method
```
//iOS 9 workflow
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
[VKSdk processOpenURL:url fromApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
return YES;
}
//iOS 8 and lower
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[VKSdk processOpenURL:url fromApplication:sourceApplication];
return YES;
}
```
Note: if you already have FaceBook SDK added and one of this methods returns `[FBSDKDelegate ...]` you can handle it
```
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
[[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
[VKSdk processOpenURL:url fromApplication:sourceApplication];
return YES;
}
```
2) Initialize VK SDK with your APP_ID for any delegate
```
VKSdk *sdkInstance = [VKSdk initializeWithAppId:YOUR_APP_ID];
```
Starting from version 1.3 there are two types of delegates available: common delegate and UI delegate. You can register as much common delegates, as you need, but an UI delegate may be only one. After the SDK initialization you should register delegates separately:
```
[sdkInstance registerDelegate:delegate];
[sdkInstance setUiDelegate:uiDelegate];
```
or
```
[[VKSdk initializeWithAppId:APP_ID] registerDelegate:delegate];
```
You will find full description of `VKSdkDelegate` and `VKSdkUIDelegate` protocols [here](http://cocoadocs.org/docsets/VK-ios-sdk) or [here](http://vkcom.github.io/vk-ios-sdk/index.html)
3) You need to check, if there is previous session available, so call asynchronous method `wakeUpSession:completeBlock:`
```
NSArray *SCOPE = @[@"friends", @"email"];
[VKSdk wakeUpSession:SCOPE completeBlock:^(VKAuthorizationState state, NSError *error) {
if (state == VKAuthorizationAuthorized) {
// Authorized and ready to go
} else if (error) {
// Some error happend, but you may try later
}
}];
```
You will find full list of available SCOPE permission [here](https://vk.com/dev/permissions)
Check out the VKAuthorizationState parameter. You can get several states:
* VKAuthorizationInitialized means the SDK is ready to work, and you can authorize user with `+authorize:` method. Probably, an old session has expired, and we wiped it out. *This is not an error.*
* VKAuthorizationAuthorized - means a previous session is okay, and you can continue working with user data.
* VKAuthorizationError - means some error happened when we tried to check the authorization. Probably, the internet connection has a bad quality. You have to try again later.
```
[VKSdk wakeUpSession:SCOPE completeBlock:^(VKAuthorizationState state, NSError *err) {
if (state == VKAuthorizationAuthorized) {
// authorized
} else {
// auth needed
}
}];
```
User Authorization
----------
If you don't have a session yet, you have to authorize user with a next method:
```
[VKSdk authorize:scope];
```
You have to conform to both `VKSdkDelegate` and `VKSdkUIDelegate` protocols to get appropriate methods called.
After the authorization, all common delegates will be called with a next method:
```
- (void)vkSdkAccessAuthorizationFinishedWithResult:(VKAuthorizationResult *)result;
```
`VKAuthorizationResult` contains some initial information: new access token object, basic user information, and error (if authorization failed).
[Complete documentation here](http://vkcom.github.io/vk-ios-sdk/index.html)
API Requests
==========
VK API Request syntax
----------
Below we have listed some examples for several request types.
1) Plain request
```
VKRequest *usersReq = [[VKApi users] get];
```
2) Request with parameters
```
VKRequest *audioReq = [[VKApi audio] get:@{VK_API_OWNER_ID : @"896232"}];
```
3) Request with predetermined maximum number of attempts
```
VKRequest *postReq = [[VKApi wall] post:@{VK_API_MESSAGE : @"Test"}];
postReq.attempts = 10;
//or infinite
//postReq.attempts = 0;
```
It will take 10 attempts until succeeds or an API error occurs
4) Request that calls any method of VK API
```
VKRequest *getWall = [VKRequest requestWithMethod:@"wall.get" andParameters:@{VK_API_OWNER_ID : @"-1"}];
```
5) Request that uploads a photo to a user's wall
```
VKRequest *request = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"my_photo"] parameters:[VKImageParameters pngImage] userId:0 groupId:0 ];
```
Request firing
----------
```
[audioReq executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Json result: %@", response.json);
} errorBlock:^(NSError * error) {
if (error.code != VK_API_ERROR) {
[error.vkError.request repeat];
} else {
NSLog(@"VK error: %@", error);
}
}];
```
Error Handling
----------
Every request can return `NSError` with domain equal to `VKSdkErrorDomain`. SDK can return networking error or internal SDK error (e.g. request was canceled). Category `NSError+VKError` provides `vkError` property that describes error event. Compare error code with the global constant `VK_API_ERROR`. If they are equal that means you process `vkError` property as API error. Otherwise you should handle an http error.
SDK can handle some errors (e.g., captcha error, validation error). Appropriate ui delegate method will be called for this purpose.
Below is an example of captcha error processing:
```
- (void)vkSdkNeedCaptchaEnter:(VKError *)captchaError
{
VKCaptchaViewController *vc = [VKCaptchaViewController captchaControllerWithError:captchaError];
[vc presentIn:self];
}
```
Batch Processing Requests
----------
SDK allows to execute several unrelated requests at the one call (aka Batch Request).
1) Prepare requests
```
VKRequest *request1 = [[VKApi audio] get];
request1.completeBlock = ^(VKResponse *) { ... };
VKRequest *request2 = [[VKApi users] get:@{VK_USER_IDS : @[@(1), @(6492), @(1708231)]}];
request2.completeBlock = ^(VKResponse *) { ... };
```
2) Merge requests into one
```
VKBatchRequest *batch = [[VKBatchRequest alloc] initWithRequests:request1, request2, nil];
```
3) Fire the obtained request
```
[batch executeWithResultBlock:^(NSArray *responses) {
NSLog(@"Responses: %@", responses);
} errorBlock:^(NSError \*error) {
NSLog(@"Error: %@", error);
}];
```
4) The result of each method returns to a corresponding completeBlock. Response array contains result of the requests in order they have been passed.
Working with Share dialog
==========
Share dialog allows you to create a user friendly dialog for sharing text and photos from your application directly to VK. See the Share dialog usage example:
```
VKShareDialogController *shareDialog = [VKShareDialogController new]; //1
shareDialog.text = @"This post created using #vksdk #ios"; //2
shareDialog.vkImages = @[@"-10889156_348122347",@"7840938_319411365",@"-60479154_333497085"]; //3
shareDialog.shareLink = [[VKShareLink alloc] initWithTitle:@"Super puper link, but nobody knows" link:[NSURL URLWithString:@"https://vk.com/dev/ios_sdk"]]; //4
[shareDialog setCompletionHandler:^(VKShareDialogControllerResult result) {
[self dismissViewControllerAnimated:YES completion:nil];
}]; //5
[self presentViewController:shareDialog animated:YES completion:nil]; //6
```
1) Create an instance of the dialog controller as usual
2) Attach some text information to a dialog. Notice that users can change this information
3) Attach images uploaded to VK earlier. If you want user to upload a new image use `uploadImages` property
4) Attach link at your pages
5) Set the dialog completion handler
6) Present the dialog view controller to your view controller
Working with share activity
==========
VK SDK provides a special class to work with `UIActivityViewController` - `VKActivity`.
Pay attention to the fact, that a VK App has it own Share extension since version 2.4. Since version 2.5 it will support special URL scheme to check if Share extension is available. You should call `[VKActivity vkShareExtensionEnabled]` method to remove `VKActivity` from activities list, if a VK share extension is available.
Check the example below to understand how it works:
```
NSArray *items = @[[UIImage imageNamed:@"apple"], @"Check out information about VK SDK" , [NSURL URLWithString:@"https://vk.com/dev/ios_sdk"]]; //1
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:items
applicationActivities:@[[VKActivity new]]]; //2
[activityViewController setValue:@"VK SDK" forKey:@"subject"]; //3
[activityViewController setCompletionHandler:nil]; //4
if (VK_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
UIPopoverPresentationController *popover = activityViewController.popoverPresentationController;
popover.sourceView = self.view;
popover.sourceRect = [tableView rectForRowAtIndexPath:indexPath];
} //5
[self presentViewController:activityViewController animated:YES completion:nil]; //6
```
Let's go through the example step-by-step
1) Prepare your share information - `UIImage`, `NSString` and `NSURL`. That kind of information may be shared through VK
2) Prepare `UIActivityViewController` with a new application `VKActivity`
3) Set additional properties for `activityViewController`
4) Set completion handler for `activityViewController`
5) Check if you're running iOS 8 or upper. If user is using iPad, you have to present the activity controller in a popover otherwise you'll get system error
6) Present the activity controller as usual

17
VK-ios-sdk.podspec Executable file
View File

@ -0,0 +1,17 @@
Pod::Spec.new do |s|
s.name = "VK-ios-sdk"
s.version = "1.4.4"
s.summary = "Library for working with VK."
s.homepage = "https://github.com/VKCOM/vk-ios-sdk"
s.license = 'MIT'
s.author = { "Roman Truba" => "dreddkr@gmail.com" }
s.platform = :ios, '6.0'
s.source = { :git => "https://github.com/VKCOM/vk-ios-sdk.git", :tag => s.version.to_s }
s.source_files = 'library/source/**/*.{h,m}'
s.public_header_files = 'library/source/**/*.h'
s.resource_bundles = {
'VKSdkResources' => ['library/Resources/SdkAssetCatalog.xcassets','library/Resources/*.lproj']
}
s.frameworks = 'Foundation','UIKit','SafariServices','CoreGraphics','Security'
s.requires_arc = true
end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:sdk.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>C8933561-83EC-4A85-B929-CB503A995C4D</string>
<key>IDESourceControlProjectName</key>
<string>VK-ios-sdk</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>library/VK-ios-sdk.xcodeproj</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlWCCName</key>
<string>vk-ios-sdk</string>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>BD9FB851-AE91-4CA6-ADE0-B5714551D043</string>
<key>IDESourceControlProjectName</key>
<string>VKSdk</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>VKSdk.xcodeproj</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlWCCName</key>
<string>vk-ios-sdk-pub</string>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F34670301B8B7C5A003EF74B"
BuildableName = "VKSdkFramework.framework"
BlueprintName = "VKSdkFramework"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C58CCC1D213B2C005E94B5"
BuildableName = "VKSdkTests.xctest"
BlueprintName = "VKSdkTests"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F34670301B8B7C5A003EF74B"
BuildableName = "VKSdkFramework.framework"
BlueprintName = "VKSdkFramework"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F34670301B8B7C5A003EF74B"
BuildableName = "VKSdkFramework.framework"
BlueprintName = "VKSdkFramework"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F34670301B8B7C5A003EF74B"
BuildableName = "VKSdkFramework.framework"
BlueprintName = "VKSdkFramework"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C7542C182133CC00964716"
BuildableName = "libVKSdk.a"
BlueprintName = "VKSdk"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C58CCC1D213B2C005E94B5"
BuildableName = "VKSdkTests.xctest"
BlueprintName = "VKSdkTests"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C7542C182133CC00964716"
BuildableName = "libVKSdk.a"
BlueprintName = "VKSdk"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C7542C182133CC00964716"
BuildableName = "libVKSdk.a"
BlueprintName = "VKSdk"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C7542C182133CC00964716"
BuildableName = "libVKSdk.a"
BlueprintName = "VKSdk"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3C58CCC1D213B2C005E94B5"
BuildableName = "VKSdkTests.xctest"
BlueprintName = "VKSdkTests"
ReferencedContainer = "container:VK-ios-sdk.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F3EEFF651827B1DD000BB525"
BuildableName = "VKSDKTestApplication.app"
BlueprintName = "VKSDKTestApplication"
ReferencedContainer = "container:example/VKSDKTestApplication.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:example/VKSDKTestApplication.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>D2B31607-2F25-4041-8719-7694C0CEFCA7</string>
<key>IDESourceControlProjectName</key>
<string>VK-ios-sdk</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>VK-ios-sdk.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlWCCName</key>
<string>vk-ios-sdk</string>
</dict>
</array>
</dict>
</plist>

BIN
VKSdkResources.bundle/BlueBtn.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
VKSdkResources.bundle/Info.plist Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

24
VKSdkTests/Info.plist Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

128
VKSdkTests/VKSdkTests.m Normal file
View File

@ -0,0 +1,128 @@
//
// VKSdkTests.m
// VKSdkTests
//
// Created by Roman Truba on 27.06.16.
// Copyright © 2016 VK. All rights reserved.
//
#import <XCTest/XCTest.h>
#import "VKUser.h"
#import "VKUtil.h"
#import "VKSdk.h"
@interface VKSdkTests : XCTestCase
@end
@implementation VKSdkTests
- (void)setUp {
[super setUp];
self.continueAfterFailure = NO;
[VKSdk initializeWithAppId:@"3974615" apiVersion:@"5.50"];
NSURL *URL = [NSURL URLWithString:@"https://api.vk.com"];
[NSURLRequest.class performSelector:NSSelectorFromString(@"setAllowsAnyHTTPSCertificate:forHost:")
withObject:NSNull.null // Just need to pass non-nil here to appear as a BOOL YES, using the NSNull.null singleton is pretty safe
withObject:[URL host]];
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
static NSString *const ALL_USER_FIELDS = @"id,first_name,last_name,sex,bdate,city,country,photo_50,photo_100,photo_200_orig,photo_200,photo_400_orig,photo_max,photo_max_orig,online,online_mobile,lists,domain,has_mobile,contacts,connections,site,education,universities,schools,can_post,can_see_all_posts,can_see_audio,can_write_private_message,status,last_seen,relation,relatives,counters";
- (void)testApi {
VKRequest *request = [VKRequest requestWithMethod:@"users.get" parameters:@{VK_API_USER_ID : @1, VK_API_FIELDS : ALL_USER_FIELDS} modelClass:[VKUsersArray class]];
[request setPreferredLang:@"ru"];
XCTestExpectation *expectation = [self expectationWithDescription:[NSString stringWithFormat:@"Api call: %@", request.methodName]];
[request executeWithResultBlock:^(VKResponse<VKUsersArray*> *response) {
XCTAssertNotNil(response.parsedModel);
XCTAssertTrue([response.parsedModel isKindOfClass:[VKUsersArray class]]);
NSError *error = nil;
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:[response.responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error];
XCTAssertNil(error);
[self validateUsers:response.parsedModel withJsonData:jsonObject];
[expectation fulfill];
} errorBlock:^(NSError *error) {
XCTAssertNil(error);
}];
[self waitForExpectationsWithTimeout:5.f handler:^(NSError * _Nullable error) {
NSLog(@"Request timed out %@", error);
}];
}
- (void)testUserParse {
NSString *PaulDurov = @"{\"response\":[{\"id\":1,\"first_name\":\"Павел\",\"last_name\":\"Дуров\",\"sex\":2,\"domain\":\"durov\",\"bdate\":\"10.10.1984\",\"city\":{\"id\":2,\"title\":\"Санкт-Петербург\"},\"country\":{\"id\":1,\"title\":\"Россия\"},\"photo_50\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c543\\/FfB--bOEVOY.jpg\",\"photo_100\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c542\\/fcMCbfjDsv0.jpg\",\"photo_200\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c541\\/TaUV7CG7RHg.jpg\",\"photo_max\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c541\\/TaUV7CG7RHg.jpg\",\"photo_200_orig\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c535\\/Aolq7Qohi2o.jpg\",\"photo_400_orig\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c536\\/dcqdvDEUs4E.jpg\",\"photo_max_orig\":\"https:\\/\\/pp.vk.me\\/c629231\\/v629231001\\/c536\\/dcqdvDEUs4E.jpg\",\"has_mobile\":1,\"online\":0,\"can_post\":0,\"can_see_all_posts\":0,\"can_see_audio\":0,\"can_write_private_message\":0,\"twitter\":\"durov\",\"instagram\":\"durov\",\"site\":\"http:\\/\\/telegram.org\",\"status\":\"\",\"last_seen\":{\"time\":1398447188,\"platform\":7},\"common_count\":2,\"counters\":{\"albums\":2,\"videos\":14,\"audios\":0,\"notes\":6,\"photos\":226,\"friends\":721,\"online_friends\":126,\"mutual_friends\":2,\"followers\":6062370,\"subscriptions\":1,\"pages\":42},\"university\":1,\"university_name\":\"СПбГУ\",\"faculty\":0,\"faculty_name\":\"\",\"graduation\":2006,\"relation\":0,\"universities\":[{\"id\":1,\"country\":1,\"city\":2,\"name\":\"СПбГУ\",\"graduation\":2006}],\"schools\":[{\"id\":\"1035386\",\"country\":88,\"city\":16,\"name\":\"Sc.Elem. Coppino - Falletti di Barolo\",\"year_from\":1990,\"year_to\":1992,\"class\":\"\"},{\"id\":\"1\",\"country\":1,\"city\":2,\"name\":\"Академическая гимназия (АГ) СПбГУ\",\"year_from\":1996,\"year_to\":2001,\"year_graduated\":2001,\"class\":\"о\",\"type\":1,\"type_str\":\"Гимназия\"}],\"relatives\":[]}]}";
NSError *error = nil;
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:[PaulDurov dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error];
XCTAssertNil(error);
__block VKUsersArray *users = [[VKUsersArray alloc] initWithDictionary:jsonObject];
XCTAssert(users.count == 1);
XCTAssert(users.items.count == 1);
[self validateUsers:users withJsonData:jsonObject];
}
- (void)validateUsers:(VKUsersArray*)users withJsonData:(NSDictionary*)jsonData {
VKUser *user = users.items.firstObject;
NSArray *jsonResponse = VK_ENSURE_ARRAY(jsonData[@"response"]);
XCTAssertNotNil(jsonResponse);
NSDictionary *jsonUser = VK_ENSURE_DICT(jsonResponse.firstObject);
for (NSString *key in jsonUser) {
id userValue = [user valueForKey:key];
XCTAssertNotNil(userValue);
NSDictionary *dictValue = VK_ENSURE_DICT(jsonUser[key]);
if (dictValue) {
NSLog(@"%@ %@", key, [userValue class]);
XCTAssert([userValue isKindOfClass:[VKApiObject class]] == YES);
}
}
XCTAssertNotNil(user);
XCTAssertEqualObjects(user.first_name, @"Павел");
XCTAssertEqualObjects(user.last_name, @"Дуров");
XCTAssertNotNil(VK_ENSURE(user.country, [VKCountry class]));
XCTAssertEqualObjects(user.country.id, @(1));
XCTAssertEqualObjects(user.country.title, @"Россия");
// Universities
XCTAssertNotNil(VK_ENSURE(user.universities, [VKUniversities class]));
XCTAssertEqual(user.universities.count, 1);
VKUniversity *university = user.universities.firstObject;
XCTAssertNotNil(university);
XCTAssertEqualObjects(university.name, @"СПбГУ");
// Schools
XCTAssertNotNil(VK_ENSURE(user.schools, [VKSchools class]));
XCTAssertEqual(user.schools.count, 2);
for (VKSchool *school in user.schools) {
XCTAssertNotNil(VK_ENSURE(school, [VKSchool class]));
XCTAssertNotNil(school.id);
XCTAssertNotNil(school.name);
XCTAssertNotNil(school.name);
}
}
@end

View File

@ -0,0 +1,495 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
F34DED0C1D2173D6005495E5 /* VKSdkFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F34DED091D2173C9005495E5 /* VKSdkFramework.framework */; };
F34DED0D1D2173D6005495E5 /* VKSdkFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F34DED091D2173C9005495E5 /* VKSdkFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
F36114C21976DC770085898F /* apple.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C11976DC770085898F /* apple.png */; };
F3769E671BE8D48800AEC4AF /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3769E661BE8D48800AEC4AF /* SafariServices.framework */; };
F3B7EEAB184353CF00104B90 /* ApiCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F3B7EEAA184353CF00104B90 /* ApiCallViewController.m */; };
F3D38E6F183CD29700D05079 /* VKStartScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = F3D38E6E183CD29700D05079 /* VKStartScreen.m */; };
F3DC2446183B811E00E3A93D /* Storyboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F3DC2445183B811E00E3A93D /* Storyboard.storyboard */; };
F3EEFF6A1827B1DD000BB525 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFF691827B1DD000BB525 /* Foundation.framework */; };
F3EEFF6C1827B1DD000BB525 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFF6B1827B1DD000BB525 /* CoreGraphics.framework */; };
F3EEFF6E1827B1DD000BB525 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFF6D1827B1DD000BB525 /* UIKit.framework */; };
F3EEFF741827B1DD000BB525 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F3EEFF721827B1DD000BB525 /* InfoPlist.strings */; };
F3EEFF761827B1DD000BB525 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F3EEFF751827B1DD000BB525 /* main.m */; };
F3EEFF7A1827B1DD000BB525 /* VKAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F3EEFF791827B1DD000BB525 /* VKAppDelegate.m */; };
F3EEFF7C1827B1DD000BB525 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F3EEFF7B1827B1DD000BB525 /* Images.xcassets */; };
F3EEFFC01827E990000BB525 /* TestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F3EEFFBE1827E990000BB525 /* TestViewController.m */; };
F3EEFFCE1827F9AF000BB525 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFFCD1827F9AF000BB525 /* MobileCoreServices.framework */; settings = {ATTRIBUTES = (Required, ); }; };
F3EEFFD01827F9B5000BB525 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFFCF1827F9B5000BB525 /* SystemConfiguration.framework */; settings = {ATTRIBUTES = (Required, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
F34DED041D2173C9005495E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = F3C7542D182133CC00964716;
remoteInfo = VKSdk;
};
F34DED061D2173C9005495E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = F3BACC401865905B003158DA;
remoteInfo = VKSdkResources;
};
F34DED081D2173C9005495E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = F34670311B8B7C5A003EF74B;
remoteInfo = VKSdkFramework;
};
F34DED0A1D2173C9005495E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = F3C58CCD1D213B2C005E94B5;
remoteInfo = VKSdkTests;
};
F34DED0E1D2173D6005495E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = F34670301B8B7C5A003EF74B;
remoteInfo = VKSdkFramework;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
F34DED101D2173D6005495E5 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
F34DED0D1D2173D6005495E5 /* VKSdkFramework.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "VK-ios-sdk.xcodeproj"; path = "../VK-ios-sdk.xcodeproj"; sourceTree = "<group>"; };
F36114AA197687050085898F /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F36114C11976DC770085898F /* apple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = apple.png; sourceTree = "<group>"; };
F3769E661BE8D48800AEC4AF /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; };
F3B7EEA9184353CF00104B90 /* ApiCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApiCallViewController.h; sourceTree = "<group>"; };
F3B7EEAA184353CF00104B90 /* ApiCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ApiCallViewController.m; sourceTree = "<group>"; };
F3BACC301865902D003158DA /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
F3D38E6D183CD29700D05079 /* VKStartScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKStartScreen.h; sourceTree = "<group>"; };
F3D38E6E183CD29700D05079 /* VKStartScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKStartScreen.m; sourceTree = "<group>"; };
F3DC2445183B811E00E3A93D /* Storyboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Storyboard.storyboard; sourceTree = "<group>"; };
F3EEFF661827B1DD000BB525 /* VKSDKTestApplication.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VKSDKTestApplication.app; sourceTree = BUILT_PRODUCTS_DIR; };
F3EEFF691827B1DD000BB525 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
F3EEFF6B1827B1DD000BB525 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
F3EEFF6D1827B1DD000BB525 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
F3EEFF711827B1DD000BB525 /* VKSDKTestApplication-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "VKSDKTestApplication-Info.plist"; sourceTree = "<group>"; };
F3EEFF731827B1DD000BB525 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F3EEFF751827B1DD000BB525 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
F3EEFF771827B1DD000BB525 /* VKSDKTestApplication-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "VKSDKTestApplication-Prefix.pch"; sourceTree = "<group>"; };
F3EEFF781827B1DD000BB525 /* VKAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VKAppDelegate.h; sourceTree = "<group>"; };
F3EEFF791827B1DD000BB525 /* VKAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VKAppDelegate.m; sourceTree = "<group>"; };
F3EEFF7B1827B1DD000BB525 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
F3EEFFBD1827E990000BB525 /* TestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController.h; sourceTree = "<group>"; };
F3EEFFBE1827E990000BB525 /* TestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController.m; sourceTree = "<group>"; };
F3EEFFCD1827F9AF000BB525 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
F3EEFFCF1827F9B5000BB525 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
F3EEFF631827B1DD000BB525 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F3769E671BE8D48800AEC4AF /* SafariServices.framework in Frameworks */,
F3EEFFD01827F9B5000BB525 /* SystemConfiguration.framework in Frameworks */,
F3EEFFCE1827F9AF000BB525 /* MobileCoreServices.framework in Frameworks */,
F3EEFF6C1827B1DD000BB525 /* CoreGraphics.framework in Frameworks */,
F3EEFF6E1827B1DD000BB525 /* UIKit.framework in Frameworks */,
F3EEFF6A1827B1DD000BB525 /* Foundation.framework in Frameworks */,
F34DED0C1D2173D6005495E5 /* VKSdkFramework.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
F34DECFE1D2173C9005495E5 /* Products */ = {
isa = PBXGroup;
children = (
F34DED051D2173C9005495E5 /* libVKSdk.a */,
F34DED071D2173C9005495E5 /* VKSdkResources.bundle */,
F34DED091D2173C9005495E5 /* VKSdkFramework.framework */,
F34DED0B1D2173C9005495E5 /* VKSdkTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
F3EEFF5D1827B1DD000BB525 = {
isa = PBXGroup;
children = (
F3EEFF6F1827B1DD000BB525 /* VKSDKTestApplication */,
F3EEFF681827B1DD000BB525 /* Frameworks */,
F3EEFF671827B1DD000BB525 /* Products */,
F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */,
);
sourceTree = "<group>";
};
F3EEFF671827B1DD000BB525 /* Products */ = {
isa = PBXGroup;
children = (
F3EEFF661827B1DD000BB525 /* VKSDKTestApplication.app */,
);
name = Products;
sourceTree = "<group>";
};
F3EEFF681827B1DD000BB525 /* Frameworks */ = {
isa = PBXGroup;
children = (
F3769E661BE8D48800AEC4AF /* SafariServices.framework */,
F3EEFFCF1827F9B5000BB525 /* SystemConfiguration.framework */,
F3EEFFCD1827F9AF000BB525 /* MobileCoreServices.framework */,
F3EEFF691827B1DD000BB525 /* Foundation.framework */,
F3EEFF6B1827B1DD000BB525 /* CoreGraphics.framework */,
F3EEFF6D1827B1DD000BB525 /* UIKit.framework */,
F3BACC301865902D003158DA /* CoreFoundation.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
F3EEFF6F1827B1DD000BB525 /* VKSDKTestApplication */ = {
isa = PBXGroup;
children = (
F3EEFF781827B1DD000BB525 /* VKAppDelegate.h */,
F3EEFF791827B1DD000BB525 /* VKAppDelegate.m */,
F3EEFF7B1827B1DD000BB525 /* Images.xcassets */,
F3EEFF701827B1DD000BB525 /* Supporting Files */,
F3DC2445183B811E00E3A93D /* Storyboard.storyboard */,
F3D38E6D183CD29700D05079 /* VKStartScreen.h */,
F3D38E6E183CD29700D05079 /* VKStartScreen.m */,
F3EEFFBD1827E990000BB525 /* TestViewController.h */,
F3EEFFBE1827E990000BB525 /* TestViewController.m */,
F3B7EEA9184353CF00104B90 /* ApiCallViewController.h */,
F3B7EEAA184353CF00104B90 /* ApiCallViewController.m */,
);
path = VKSDKTestApplication;
sourceTree = "<group>";
};
F3EEFF701827B1DD000BB525 /* Supporting Files */ = {
isa = PBXGroup;
children = (
F36114C11976DC770085898F /* apple.png */,
F3EEFF711827B1DD000BB525 /* VKSDKTestApplication-Info.plist */,
F3EEFF721827B1DD000BB525 /* InfoPlist.strings */,
F3EEFF751827B1DD000BB525 /* main.m */,
F3EEFF771827B1DD000BB525 /* VKSDKTestApplication-Prefix.pch */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
F3EEFF651827B1DD000BB525 /* VKSDKTestApplication */ = {
isa = PBXNativeTarget;
buildConfigurationList = F3EEFF921827B1DE000BB525 /* Build configuration list for PBXNativeTarget "VKSDKTestApplication" */;
buildPhases = (
F3EEFF621827B1DD000BB525 /* Sources */,
F3EEFF631827B1DD000BB525 /* Frameworks */,
F3EEFF641827B1DD000BB525 /* Resources */,
F34DED101D2173D6005495E5 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
F34DED0F1D2173D6005495E5 /* PBXTargetDependency */,
);
name = VKSDKTestApplication;
productName = VKSDKTestApplication;
productReference = F3EEFF661827B1DD000BB525 /* VKSDKTestApplication.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
F3EEFF5E1827B1DD000BB525 /* Project object */ = {
isa = PBXProject;
attributes = {
CLASSPREFIX = VK;
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = VK;
TargetAttributes = {
F3EEFF651827B1DD000BB525 = {
DevelopmentTeam = R26JY69RPL;
};
};
};
buildConfigurationList = F3EEFF611827B1DD000BB525 /* Build configuration list for PBXProject "VKSDKTestApplication" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
ru,
);
mainGroup = F3EEFF5D1827B1DD000BB525;
productRefGroup = F3EEFF671827B1DD000BB525 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = F34DECFE1D2173C9005495E5 /* Products */;
ProjectRef = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
},
);
projectRoot = "";
targets = (
F3EEFF651827B1DD000BB525 /* VKSDKTestApplication */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
F34DED051D2173C9005495E5 /* libVKSdk.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libVKSdk.a;
remoteRef = F34DED041D2173C9005495E5 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
F34DED071D2173C9005495E5 /* VKSdkResources.bundle */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = VKSdkResources.bundle;
remoteRef = F34DED061D2173C9005495E5 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
F34DED091D2173C9005495E5 /* VKSdkFramework.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = VKSdkFramework.framework;
remoteRef = F34DED081D2173C9005495E5 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
F34DED0B1D2173C9005495E5 /* VKSdkTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = VKSdkTests.xctest;
remoteRef = F34DED0A1D2173C9005495E5 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
F3EEFF641827B1DD000BB525 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F3DC2446183B811E00E3A93D /* Storyboard.storyboard in Resources */,
F3EEFF741827B1DD000BB525 /* InfoPlist.strings in Resources */,
F3EEFF7C1827B1DD000BB525 /* Images.xcassets in Resources */,
F36114C21976DC770085898F /* apple.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
F3EEFF621827B1DD000BB525 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F3EEFFC01827E990000BB525 /* TestViewController.m in Sources */,
F3EEFF761827B1DD000BB525 /* main.m in Sources */,
F3D38E6F183CD29700D05079 /* VKStartScreen.m in Sources */,
F3EEFF7A1827B1DD000BB525 /* VKAppDelegate.m in Sources */,
F3B7EEAB184353CF00104B90 /* ApiCallViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
F34DED0F1D2173D6005495E5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = VKSdkFramework;
targetProxy = F34DED0E1D2173D6005495E5 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
F3EEFF721827B1DD000BB525 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
F3EEFF731827B1DD000BB525 /* en */,
F36114AA197687050085898F /* ru */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
F3EEFF901827B1DE000BB525 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
F3EEFF911827B1DE000BB525 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
F3EEFF931827B1DE000BB525 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/VKSDKTestApplication",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "VKSDKTestApplication/VKSDKTestApplication-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"VKDEBUG=1",
);
INFOPLIST_FILE = "VKSDKTestApplication/VKSDKTestApplication-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(inherited)";
OTHER_LDFLAGS = "-all_load";
PRODUCT_BUNDLE_IDENTIFIER = "com.vk.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "include/**";
WRAPPER_EXTENSION = app;
};
name = Debug;
};
F3EEFF941827B1DE000BB525 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/VKSDKTestApplication",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "VKSDKTestApplication/VKSDKTestApplication-Prefix.pch";
INFOPLIST_FILE = "VKSDKTestApplication/VKSDKTestApplication-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(inherited)";
OTHER_LDFLAGS = "-all_load";
PRODUCT_BUNDLE_IDENTIFIER = "com.vk.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "include/**";
WRAPPER_EXTENSION = app;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
F3EEFF611827B1DD000BB525 /* Build configuration list for PBXProject "VKSDKTestApplication" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F3EEFF901827B1DE000BB525 /* Debug */,
F3EEFF911827B1DE000BB525 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F3EEFF921827B1DE000BB525 /* Build configuration list for PBXNativeTarget "VKSDKTestApplication" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F3EEFF931827B1DE000BB525 /* Debug */,
F3EEFF941827B1DE000BB525 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = F3EEFF5E1827B1DD000BB525 /* Project object */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:VKSDKTestApplication.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>105ED895-2076-4EF7-A570-4A1AD0537B81</string>
<key>IDESourceControlProjectName</key>
<string>project</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>example/VKSDKTestApplication.xcodeproj/project.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>github.com:VKCOM/vk-ios-sdk.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>C8F50BCDCFDC63763FD6355FD91D619C6B03C252</string>
<key>IDESourceControlWCCName</key>
<string>vk-ios-sdk-pub</string>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,29 @@
//
// ApiCallViewController.h
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
@interface ApiCallViewController : UIViewController
@property(nonatomic, strong) IBOutlet UILabel *methodName;
@property(nonatomic, strong) IBOutlet UITextView *callResult;
@property(nonatomic, strong) VKRequest *callingRequest;
@end

View File

@ -0,0 +1,52 @@
//
// ApiCallViewController.m
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "ApiCallViewController.h"
@interface ApiCallViewController ()
@end
@implementation ApiCallViewController
- (void)dealloc {
[self.callingRequest cancel];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.methodName.text = self.callingRequest.methodName;
self.callingRequest.debugTiming = YES;
self.callingRequest.requestTimeout = 10;
__weak __typeof(self) welf = self;
[self.callingRequest executeWithResultBlock:^(VKResponse *response) {
welf.callResult.text = [NSString stringWithFormat:@"Result: %@", response];
welf.callingRequest = nil;
NSLog(@"%@", response.request.requestTiming);
} errorBlock:^(NSError *error) {
welf.callResult.text = [NSString stringWithFormat:@"Error: %@", error];
welf.callingRequest = nil;
}];
}
@end

View File

@ -0,0 +1,38 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,142 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "736h",
"scale" : "3x"
},
{
"orientation" : "landscape",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "736h",
"scale" : "3x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "667h",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="AtZ-CU-6AO">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="B70-cf-cno">
<objects>
<navigationController definesPresentationContext="YES" id="AtZ-CU-6AO" sceneMemberID="viewController">
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<size key="freeformSize" width="320" height="568"/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="EeE-AC-dZ1">
<autoresizingMask key="autoresizingMask"/>
<animations/>
</navigationBar>
<connections>
<segue destination="EGh-wy-2rb" kind="relationship" relationship="rootViewController" id="mdg-bc-MNW"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="NjP-rd-Mhc" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-4" y="77.999999999999986"/>
</scene>
<!--Test View Controller-->
<scene sceneID="Ek1-ok-6s4">
<objects>
<tableViewController storyboardIdentifier="START" useStoryboardIdentifierAsRestorationIdentifier="YES" id="H8u-X9-tSm" customClass="TestViewController" sceneMemberID="viewController">
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="EM5-LE-xOw">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<prototypes>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="TestRow" id="bmL-Ks-VJ7">
<rect key="frame" x="0.0" y="86" width="320" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="bmL-Ks-VJ7" id="tGf-qJ-E3s">
<rect key="frame" x="0.0" y="0.0" width="287" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="1" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Test" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8u9-CN-pfg">
<rect key="frame" x="20" y="11" width="280" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
</tableViewCellContentView>
<animations/>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="H8u-X9-tSm" id="d6q-Ne-Tee"/>
<outlet property="delegate" destination="H8u-X9-tSm" id="LGW-cO-Abj"/>
</connections>
</tableView>
<navigationItem key="navigationItem" id="h35-e0-6fi"/>
<connections>
<segue destination="DpQ-o8-S5p" kind="push" identifier="API_CALL" id="vXO-94-7OA"/>
</connections>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="lB3-O5-drk" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="855" y="77.999999999999986"/>
</scene>
<!--Api Call View Controller-->
<scene sceneID="9VO-Sj-V0I">
<objects>
<viewController id="DpQ-o8-S5p" customClass="ApiCallViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="4Ps-EX-de8">
<rect key="frame" x="0.0" y="64" width="320" height="504"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" text="Method result" id="Ee9-oV-ShF">
<rect key="frame" x="20" y="49" width="280" height="437"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Method name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0qQ-dv-rf7">
<rect key="frame" x="20" y="20" width="280" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<extendedEdge key="edgesForExtendedLayout"/>
<navigationItem key="navigationItem" id="mwC-jL-1ue"/>
<connections>
<outlet property="callResult" destination="Ee9-oV-ShF" id="yKd-ql-C4V"/>
<outlet property="methodName" destination="0qQ-dv-rf7" id="iU0-av-Twu"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="VXV-0V-ane" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1298" y="77.999999999999986"/>
</scene>
<!--Start Screen-->
<scene sceneID="82c-Z7-iEU">
<objects>
<viewController id="EGh-wy-2rb" customClass="VKStartScreen" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="IZm-d8-V7a">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="YWF-ld-CDZ">
<rect key="frame" x="0.0" y="269" width="320" height="30"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
<animations/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<state key="normal" title="Get new access token"/>
<connections>
<action selector="authorize:" destination="EGh-wy-2rb" eventType="touchUpInside" id="wgy-u4-m5V"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="vca-Tg-iuf">
<rect key="frame" x="0.0" y="320" width="320" height="30"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
<animations/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<state key="normal" title="Share dialog"/>
<connections>
<action selector="openShareDialog:" destination="EGh-wy-2rb" eventType="touchUpInside" id="cQu-uq-Sdy"/>
</connections>
</button>
</subviews>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<navigationItem key="navigationItem" id="gAF-tH-eqo"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
<connections>
<segue destination="H8u-X9-tSm" kind="push" identifier="START_WORK" id="7UU-b0-KyZ"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="hFe-TK-5Ep" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="424" y="77.999999999999986"/>
</scene>
</scenes>
</document>

View File

@ -0,0 +1,30 @@
//
// TestViewController.h
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
@interface TestViewController : UITableViewController {
@private
VKRequest *callingRequest;
}
@property(nonatomic, strong) IBOutlet UILabel *tokenLabel;
@end

View File

@ -0,0 +1,258 @@
//
// TestViewController.m
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "TestViewController.h"
#import "ApiCallViewController.h"
@implementation TestViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.view.backgroundColor = [UIColor whiteColor];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStyleDone target:self action:@selector(logout:)];
self.tableView.tableFooterView = [UIView new];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)getUser:(id)sender {
VKRequest *request = [[VKApi users] get];
[request executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Result: %@", response);
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
- (IBAction)getSubscriptions:(id)sender {
VKRequest *request = [[VKApi users] getSubscriptions:@{VK_API_EXTENDED : @(1), VK_API_COUNT : @(100)}];
request.secure = NO;
[request executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Result: %@", response);
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
static NSArray *labels = nil;
static NSString *const USERS_GET = @"users.get";
static NSString *const FRIENDS_GET = @"friends.get";
static NSString *const FRIENDS_GET_FULL = @"friends.get with fields";
static NSString *const USERS_SUBSCRIPTIONS = @"Pavel Durov subscribers";
static NSString *const UPLOAD_PHOTO = @"Upload photo to wall";
static NSString *const UPLOAD_PHOTO_ALBUM = @"Upload photo to album";
static NSString *const UPLOAD_PHOTOS = @"Upload several photos to wall";
static NSString *const TEST_CAPTCHA = @"Test captcha";
static NSString *const CALL_UNKNOWN_METHOD = @"Call unknown method";
static NSString *const TEST_VALIDATION = @"Test validation";
static NSString *const MAKE_SYNCHRONOUS = @"Make synchronous request";
static NSString *const SHARE_DIALOG = @"Test share dialog";
static NSString *const TEST_ACTIVITY = @"Test VKActivity";
static NSString *const TEST_APPREQUEST = @"Test app request";
//Fields
static NSString *const ALL_USER_FIELDS = @"id,first_name,last_name,sex,bdate,city,country,photo_50,photo_100,photo_200_orig,photo_200,photo_400_orig,photo_max,photo_max_orig,online,online_mobile,lists,domain,has_mobile,contacts,connections,site,education,universities,schools,can_post,can_see_all_posts,can_see_audio,can_write_private_message,status,last_seen,common_count,relation,relatives,counters";
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (!labels)
labels = @[USERS_GET, USERS_SUBSCRIPTIONS, FRIENDS_GET, FRIENDS_GET_FULL, UPLOAD_PHOTO, UPLOAD_PHOTO_ALBUM, UPLOAD_PHOTOS, TEST_CAPTCHA, CALL_UNKNOWN_METHOD, TEST_VALIDATION, MAKE_SYNCHRONOUS, SHARE_DIALOG, TEST_ACTIVITY, TEST_APPREQUEST];
return labels.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TestRow"];
UILabel *label = (UILabel *) [cell viewWithTag:1];
label.text = labels[indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *label = labels[indexPath.row];
if ([label isEqualToString:USERS_GET]) {
// [self callMethod:[[VKApi users] get:@{ VK_API_FIELDS : ALL_USER_FIELDS }]];
[self callMethod:[[VKApi users] get:@{VK_API_FIELDS : @"first_name, last_name, uid, photo_100", VK_API_USER_IDS : @[@(1), @(2), @(3)]}]];
}
else if ([label isEqualToString:USERS_SUBSCRIPTIONS]) {
[self callMethod:[VKRequest requestWithMethod:@"users.getFollowers" parameters:@{VK_API_USER_ID : @"1", VK_API_COUNT : @(1000), VK_API_FIELDS : ALL_USER_FIELDS} modelClass:[VKUsersArray class]]];
}
else if ([label isEqualToString:UPLOAD_PHOTO]) {
[self uploadPhoto];
}
else if ([label isEqualToString:UPLOAD_PHOTOS]) {
[self uploadPhotos];
}
else if ([label isEqualToString:TEST_CAPTCHA]) {
[self testCaptcha];
}
else if ([label isEqualToString:UPLOAD_PHOTO_ALBUM]) {
[self uploadInAlbum];
}
else if ([label isEqualToString:FRIENDS_GET]) {
[self callMethod:[[VKApi friends] get]];
}
else if ([label isEqualToString:FRIENDS_GET_FULL]) {
VKRequest *friendsRequest = [[VKApi friends] get:@{VK_API_FIELDS : ALL_USER_FIELDS}];
[self callMethod:friendsRequest];
}
else if ([label isEqualToString:CALL_UNKNOWN_METHOD]) {
[self callMethod:[VKRequest requestWithMethod:@"I.am.Lord.Voldemort" parameters:nil]];
}
else if ([label isEqualToString:TEST_VALIDATION]) {
[self callMethod:[VKRequest requestWithMethod:@"account.testValidation" parameters:nil]];
}
else if ([label isEqualToString:MAKE_SYNCHRONOUS]) {
VKUsersArray *users = [self loadUsers];
NSLog(@"users %@", users);
}
else if ([label isEqualToString:SHARE_DIALOG]) {
VKShareDialogController *shareDialog = [VKShareDialogController new];
shareDialog.text = @"This post made with #vksdk #ios";
shareDialog.vkImages = @[@"-10889156_348122347", @"7840938_319411365", @"-60479154_333497085"];
shareDialog.shareLink = [[VKShareLink alloc] initWithTitle:@"Super puper link, but nobody knows" link:[NSURL URLWithString:@"https://vk.com/dev/ios_sdk"]];
[shareDialog setCompletionHandler:^(VKShareDialogController *dialog, VKShareDialogControllerResult result) {
[self dismissViewControllerAnimated:YES completion:nil];
}];
[self presentViewController:shareDialog animated:YES completion:nil];
}
else if ([label isEqualToString:TEST_ACTIVITY]) {
NSArray *items = @[[UIImage imageNamed:@"apple"], @"This post made with #vksdk activity #ios", [NSURL URLWithString:@"https://vk.com/dev/ios_sdk"]];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:items
applicationActivities:@[[VKActivity new]]];
[activityViewController setValue:@"VK SDK" forKey:@"subject"];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
[activityViewController setCompletionWithItemsHandler:nil];
#else
[activityViewController setCompletionHandler:nil];
#endif
if ([VKUtil isOperatingSystemAtLeastIOS8]) {
UIPopoverPresentationController *popover = activityViewController.popoverPresentationController;
popover.sourceView = self.view;
popover.sourceRect = [tableView rectForRowAtIndexPath:indexPath];
}
[self presentViewController:activityViewController animated:YES completion:nil];
}
else if ([label isEqualToString:TEST_APPREQUEST]) {
[self callMethod:[VKRequest requestWithMethod:@"apps.sendRequest" parameters:@{@"user_id" : @45898586, @"text" : @"Yo ho ho", @"type" : @"request", @"name" : @"I need more gold", @"key" : @"more_gold"}]];
}
}
- (VKUsersArray *)loadUsers {
__block VKUsersArray *users;
VKRequest *request = [[VKApi friends] get:@{@"user_id" : @1}];
request.waitUntilDone = YES;
[request executeWithResultBlock:^(VKResponse *response) {
users = response.parsedModel;
} errorBlock:nil];
return users;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"API_CALL"]) {
ApiCallViewController *vc = [segue destinationViewController];
vc.callingRequest = self->callingRequest;
self->callingRequest = nil;
}
}
- (void)callMethod:(VKRequest *)method {
self->callingRequest = method;
[self performSegueWithIdentifier:@"API_CALL" sender:self];
}
- (void)testCaptcha {
VKRequest *request = [[VKApiCaptcha new] force];
[request executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Result: %@", response);
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
- (void)uploadPhoto {
VKRequest *request = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"apple"] parameters:[VKImageParameters pngImage] userId:0 groupId:60479154];
[request executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Photo: %@", response.json);
VKPhoto *photoInfo = [(VKPhotoArray *) response.parsedModel objectAtIndex:0];
NSString *photoAttachment = [NSString stringWithFormat:@"photo%@_%@", photoInfo.owner_id, photoInfo.id];
VKRequest *post = [[VKApi wall] post:@{VK_API_ATTACHMENTS : photoAttachment, VK_API_OWNER_ID : @"-60479154"}];
[post executeWithResultBlock:^(VKResponse *postResponse) {
NSLog(@"Result: %@", postResponse);
NSNumber *postId = postResponse.json[@"post_id"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://vk.com/wall-60479154_%@", postId]]];
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
- (void)uploadPhotos {
VKRequest *request1 = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"apple"] parameters:[VKImageParameters pngImage] userId:0 groupId:60479154];
VKRequest *request2 = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"apple"] parameters:[VKImageParameters pngImage] userId:0 groupId:60479154];
VKRequest *request3 = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"apple"] parameters:[VKImageParameters pngImage] userId:0 groupId:60479154];
VKRequest *request4 = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"apple"] parameters:[VKImageParameters pngImage] userId:0 groupId:60479154];
VKBatchRequest *batch = [[VKBatchRequest alloc] initWithRequests:request1, request2, request3, request4, nil];
[batch executeWithResultBlock:^(NSArray *responses) {
NSLog(@"Photos: %@", responses);
NSMutableArray *photosAttachments = [NSMutableArray new];
for (VKResponse *resp in responses) {
VKPhoto *photoInfo = [(VKPhotoArray *) resp.parsedModel objectAtIndex:0];
[photosAttachments addObject:[NSString stringWithFormat:@"photo%@_%@", photoInfo.owner_id, photoInfo.id]];
}
VKRequest *post = [[VKApi wall] post:@{VK_API_ATTACHMENTS : [photosAttachments componentsJoinedByString:@","], VK_API_OWNER_ID : @"-60479154"}];
[post executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Result: %@", response);
NSNumber *postId = response.json[@"post_id"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://vk.com/wall-60479154_%@", postId]]];
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
- (void)uploadInAlbum {
VKRequest *request = [VKApi uploadAlbumPhotoRequest:[UIImage imageNamed:@"apple"] parameters:[VKImageParameters pngImage] albumId:181808365 groupId:60479154];
[request executeWithResultBlock:^(VKResponse *response) {
NSLog(@"Result: %@", response);
VKPhoto *photo = [(VKPhotoArray *) response.parsedModel objectAtIndex:0];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://vk.com/photo-60479154_%@", photo.id]]];
} errorBlock:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
}
- (void)logout:(id)sender {
[VKSdk forceLogout];
[self.navigationController popToRootViewControllerAnimated:YES];
}
@end

View File

@ -0,0 +1,29 @@
//
// VKAppDelegate.h
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
#import "TestViewController.h"
@interface VKAppDelegate : UIResponder <UIApplicationDelegate>
@property(strong, nonatomic) UIWindow *window;
@end

View File

@ -0,0 +1,37 @@
//
// VKAppDelegate.m
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "VKAppDelegate.h"
@implementation VKAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
[VKSdk processOpenURL:url fromApplication:sourceApplication];
return YES;
}
@end

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>VK SDK Test</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>vk3974615</string>
<key>CFBundleURLSchemes</key>
<array>
<string>vk3974615</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>vkauthorize</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>Storyboard</string>
<key>UIMainStoryboardFile</key>
<string>Storyboard</string>
<key>UIMainStoryboardFile~ipad</key>
<string>Storyboard</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,19 @@
//
// Prefix header
//
// The contents of this file are implicitly included at the beginning of every source file.
//
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@import VKSdkFramework;
// OR
// #import <VKSdkFramework/VKSdkFramework.h>
#endif

View File

@ -0,0 +1,27 @@
//
// VKStartScreen.h
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
@interface VKStartScreen : UIViewController <VKSdkDelegate>
@end

View File

@ -0,0 +1,99 @@
//
// VKStartScreen.m
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "VKStartScreen.h"
static NSString *const TOKEN_KEY = @"my_application_access_token";
static NSString *const NEXT_CONTROLLER_SEGUE_ID = @"START_WORK";
static NSArray *SCOPE = nil;
@interface VKStartScreen () <UIAlertViewDelegate, VKSdkUIDelegate>
@end
@implementation VKStartScreen
- (void)viewDidLoad {
SCOPE = @[VK_PER_FRIENDS, VK_PER_WALL, VK_PER_AUDIO, VK_PER_PHOTOS, VK_PER_NOHTTPS, VK_PER_EMAIL, VK_PER_MESSAGES];
[super viewDidLoad];
[[VKSdk initializeWithAppId:@"3974615"] registerDelegate:self];
[[VKSdk instance] setUiDelegate:self];
[VKSdk wakeUpSession:SCOPE completeBlock:^(VKAuthorizationState state, NSError *error) {
if (state == VKAuthorizationAuthorized) {
[self startWorking];
} else if (error) {
[[[UIAlertView alloc] initWithTitle:nil message:[error description] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil] show];
}
}];
}
- (void)startWorking {
[self performSegueWithIdentifier:NEXT_CONTROLLER_SEGUE_ID sender:self];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)authorize:(id)sender {
[VKSdk authorize:SCOPE];
}
- (IBAction)openShareDialog:(id)sender {
VKShareDialogController *shareDialog = [VKShareDialogController new];
shareDialog.text = @"This post created created created created and made and post and delivered using #vksdk #ios";
shareDialog.uploadImages = @[ [VKUploadImage uploadImageWithImage:[UIImage imageNamed:@"apple"] andParams:[VKImageParameters jpegImageWithQuality:1.0] ] ];
[shareDialog setCompletionHandler:^(VKShareDialogController *dialog, VKShareDialogControllerResult result) {
[self dismissViewControllerAnimated:YES completion:nil];
}];
[self presentViewController:shareDialog animated:YES completion:nil];
}
- (void)vkSdkNeedCaptchaEnter:(VKError *)captchaError {
VKCaptchaViewController *vc = [VKCaptchaViewController captchaControllerWithError:captchaError];
[vc presentIn:self.navigationController.topViewController];
}
- (void)vkSdkTokenHasExpired:(VKAccessToken *)expiredToken {
[self authorize:nil];
}
- (void)vkSdkAccessAuthorizationFinishedWithResult:(VKAuthorizationResult *)result {
if (result.token) {
[self startWorking];
} else if (result.error) {
[[[UIAlertView alloc] initWithTitle:nil message:[NSString stringWithFormat:@"Access denied\n%@", result.error] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil] show];
}
}
- (void)vkSdkUserAuthorizationFailed {
[[[UIAlertView alloc] initWithTitle:nil message:@"Access denied" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil] show];
[self.navigationController popToRootViewControllerAnimated:YES];
}
- (void)vkSdkShouldPresentViewController:(UIViewController *)controller {
[self.navigationController.topViewController presentViewController:controller animated:YES completion:nil];
}
@end

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

View File

@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@ -0,0 +1,29 @@
//
// main.m
//
// Copyright (c) 2014 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "VKAppDelegate.h"
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([VKAppDelegate class]));
}
}

View File

@ -0,0 +1,2 @@
/* Localized versions of Info.plist keys */

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>

View File

@ -0,0 +1,61 @@
//
// VKSdkFramework.h
//
// Copyright (c) 2015 VK.com
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
//! Project version number for VKSdkFramework.
FOUNDATION_EXPORT double VKSdkFrameworkVersionNumber;
//! Project version string for VKSdkFramework.
FOUNDATION_EXPORT const unsigned char VKSdkFrameworkVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <VKSdkFramework/PublicHeader.h>
#import <VKSdkFramework/VKSdk.h>
#import <VKSdkFramework/VKAccessToken.h>
#import <VKSdkFramework/VKPermissions.h>
#import <VKSdkFramework/VKUtil.h>
#import <VKSdkFramework/VKApi.h>
#import <VKSdkFramework/VKApiConst.h>
#import <VKSdkFramework/VKSdkVersion.h>
#import <VKSdkFramework/VKCaptchaViewController.h>
#import <VKSdkFramework/VKRequest.h>
#import <VKSdkFramework/VKBatchRequest.h>
#import <VKSdkFramework/NSError+VKError.h>
#import <VKSdkFramework/VKApiModels.h>
#import <VKSdkFramework/VKUploadImage.h>
#import <VKSdkFramework/VKShareDialogController.h>
#import <VKSdkFramework/VKActivity.h>
#import <VKSdkFramework/OrderedDictionary.h>
#import <VKSdkFramework/VKAuthorizeController.h>
#import <VKSdkFramework/VKBundle.h>
#import <VKSdkFramework/VKCaptchaView.h>
#import <VKSdkFramework/VKUploadMessagesPhotoRequest.h>
#import <VKSdkFramework/VKUploadPhotoBase.h>
#import <VKSdkFramework/VKUploadPhotoRequest.h>
#import <VKSdkFramework/VKUploadWallPhotoRequest.h>
#import <VKSdkFramework/VKHTTPClient.h>
#import <VKSdkFramework/VKHTTPOperation.h>
#import <VKSdkFramework/VKJSONOperation.h>
#import <VKSdkFramework/VKRequestsScheduler.h>
#import <VKSdkFramework/VKSharedTransitioningObject.h>
#import <VKSdkFramework/NSString+MD5.h>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<string>iPhoneOS</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFPlugInDynamicRegisterFunction</key>
<string></string>
<key>CFPlugInDynamicRegistration</key>
<string>NO</string>
<key>CFPlugInFactories</key>
<dict>
<key>00000000-0000-0000-0000-000000000000</key>
<string>MyFactoryFunction</string>
</dict>
<key>CFPlugInTypes</key>
<dict>
<key>00000000-0000-0000-0000-000000000000</key>
<array>
<string>00000000-0000-0000-0000-000000000000</string>
</array>
</dict>
<key>CFPlugInUnloadFunction</key>
<string></string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2015 VK.com. All rights reserved.</string>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "BlueBtn.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "BlueBtn@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "BlueBtn@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "BlueBtn_pressed.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "BlueBtn_pressed@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "BlueBtn_pressed@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "Disclosure.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "Disclosure@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "Disclosure@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_deleteattach.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_deleteattach@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_deletephoto.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_deletephoto@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,33 @@
{
"images" : [
{
"idiom" : "iphone",
"filename" : "ic_vk_activity_logo.png",
"scale" : "1x"
},
{
"idiom" : "iphone",
"filename" : "ic_vk_activity_logo@2x.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"filename" : "ic_vk_activity_logo@3x.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"filename" : "ic_vk_activity_logo~ipad.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"filename" : "ic_vk_activity_logo@2x~ipad.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,33 @@
{
"images" : [
{
"idiom" : "iphone",
"filename" : "ic_vk_ios7_activity_logo.png",
"scale" : "1x"
},
{
"idiom" : "iphone",
"filename" : "ic_vk_ios7_activity_logo@2x.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"filename" : "ic_vk_ios7_activity_logo@3x.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"filename" : "ic_vk_ios7_activity_logo~ipad.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"filename" : "ic_vk_ios7_activity_logo@2x~ipad.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Some files were not shown because too many files have changed in this diff Show More