Compare commits

..

138 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
276 changed files with 3951 additions and 4942 deletions

2
.gitignore vendored
View File

@ -30,3 +30,5 @@ 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) 2014 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

328
README.md Normal file → Executable file
View File

@ -1,28 +1,24 @@
vk-ios-sdk
==========
Library for working with VK API, authorization through VK app, using VK functions. Supported iOS from 6.0
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 VK application [here](https://vk.com/editapp?act=create) by choosing the Standalone application type. Choose a title and confirm the action via SMS and you will be redirected to the application settings page.
You will require your Application ID (referenced as API_ID in the documentation). Fill in the App Bundle for iOS field.
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
Setup URL schema of Your Application
----------
To use authorization via VK App you need to setup a 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**).
<b>Xcode 5 and above:</b>
Open your application settings then select the Info tab. In the URL Types section click the plus sign. Enter vk+APP_ID (e.g. **vk1234567**) to the Identifier and URL Schemes fields.
<b>Xcode 4:</b>
Open your Info.plist then add a new row URL Types. Set the URL identifier to vk+APP_ID
[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):
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>
@ -41,185 +37,256 @@ iOS 9 changes the way of applications security and way of using unsecured connec
</dict>
```
We're don't recommend you to use "nohttps" scope.
We **don't** recommend using `nohttps` scope.
Also, for iOS 9 you have to enumerate app schemas which you app using (and checking for canOpenURL:) to have ability to open that apps. For VK SDK you should change your Info.plist in that way:
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>
```
Adding VK iOS SDK to your iOS application
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.
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
`Podfile`
platform :ios, '6.0'
pod "VK-ios-sdk"
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 <VKSdk.h>
#import <VKSdkFramework/VKSdkFramework.h>
Installation with source code
Installation with framework project
----------
Add `VKSdk.framework` and `VKSdkResources.bundle` files into your project. In the Application settings open **Build phases**, then the **Link Binary with Libraries** section, add `VKSdk.framework` there. Add `VKSdkResources.bundle` into **Copy bundle resources** section. Import the main header:
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>
#import <VKSdk.h>
Using SDK
==========
Pre-requirements
----------
**Please read this section carefully if you don't want your app to be rejected!**
If your application is using VK SDK to provide the basic application functions, your app may be rejected by default (reason 10.6, see this issue #64), because the SDK is trying to authorize user through the Mobile Safari.
If you making such application, implement `-(BOOL)vkSdkIsBasicAuthorization {return YES;}` delegate method for tell SDK authorize with UIWebView first.
SDK Initialization
----------
1) Put this code to the application delegate method `application:openURL:sourceApplication:annotation:`
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;
}
```
2) Initialize SDK with your APP_ID for any delegate.
Note: if you already have FaceBook SDK added and one of this methods returns `[FBSDKDelegate ...]` you can handle it
```
[VKSdk initializeWithDelegate:delegate andAppId:YOUR_APP_ID];
if ([VKSdk wakeUpSession])
{
//Start working
-(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
}
```
See full description of `VKSdkDelegate` protocol here: http://vkcom.github.io/vk-ios-sdk/Protocols/VKSdkDelegate.html
}];
```
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
----------
There are several methods for 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.
[VKSdk authorize:scope];
[VKSdk authorize:scope revokeAccess:YES];
[VKSdk authorize:scope revokeAccess:YES forceOAuth:YES];
After the authorization, all common delegates will be called with a next method:
```
- (void)vkSdkAccessAuthorizationFinishedWithResult:(VKAuthorizationResult *)result;
```
Generally, `[VKSdk authorize:scope revokeAccess:YES]` is enough for your needs.
When succeeded, the following method of delegate will be called:
-(void) vkSdkReceivedNewToken:(VKAccessToken*) newToken;
In case of error (e.g., user canceled authorization):
-(void) vkSdkUserDeniedAccess:(VKError*) authorizationError;
To get the User ID after authorization use method of `VKAccessToken` class
[[VKSdk getAccessToken] userId] //Return NSString - authorized user id
`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
==========
Requests Syntax
VK API Request syntax
----------
Below we have listed the examples for several request types.
1) Plain request.
Below we have listed some examples for several request types.
VKRequest * audioReq = [[VKApi users] get];
1) Plain request
```
VKRequest *usersReq = [[VKApi users] get];
```
2) Request with parameters.
2) Request with parameters
```
VKRequest *audioReq = [[VKApi audio] get:@{VK_API_OWNER_ID : @"896232"}];
```
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
3) Http (not https) request (only if scope `VK_PER_NOHTTPS` has been passed)
4) Request that calls any method of VK API
```
VKRequest *getWall = [VKRequest requestWithMethod:@"wall.get" andParameters:@{VK_API_OWNER_ID : @"-1"}];
```
VKRequest * audioReq = [[VKApi audio] get:@{VK_API_OWNER_ID : @"896232"}];
audioReq.secure = NO;
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 ];
```
4) 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.
5) Request that calls a method of VK API (keep in mind scope value).
VKRequest * getWall = [VKRequest requestWithMethod:@"wall.get" andParameters:@{VK_API_OWNER_ID : @"-1"} andHttpMethod:@"GET"];
6) Request for uploading photos on user wall.
VKRequest * request = [VKApi uploadWallPhotoRequest:[UIImage imageNamed:@"my_photo"] parameters:[VKImageParameters pngImage] userId:0 groupId:0 ];
Requests Sending
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);
}
}];
```
[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 equal that means you process vkError property as API error. Otherwise you should handle an http error.
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.
Some errors (e.g., captcha error, validation error) can be proccessed by the SDK. Appropriate delegate methods will be called for this purpose.
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];
}
```
- (void)vkSdkNeedCaptchaEnter:(VKError *)captchaError
{
VKCaptchaViewController *vc = [VKCaptchaViewController captchaControllerWithError:captchaError];
[vc presentIn:self];
}
```
Batch Processing Requests
----------
SDK gives a feature to execute several unrelated requests at the one call.
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 *request1 = [[VKApi audio] get];
request1.completeBlock = ^(VKResponse *) { ... };
VKRequest * request2 = [[VKApi users] get:@{VK_USER_IDS : @[@(1), @(6492), @(1708231)]}];
request2.completeBlock = ^(VKResponse*) { ... };
VKRequest *request2 = [[VKApi users] get:@{VK_USER_IDS : @[@(1), @(6492), @(1708231)]}];
request2.completeBlock = ^(VKResponse *) { ... };
```
2) Combine created requests into one.
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.
VKBatchRequest * batch = [[VKBatchRequest alloc] initWithRequests:request1, request2, nil];
3) Load 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. The responses array contains responses 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
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
@ -228,22 +295,27 @@ shareDialog.shareLink = [[VKShareLink alloc] initWithTitle:@"Super puper link
}]; //5
[self presentViewController:shareDialog animated:YES completion:nil]; //6
```
1) create an instance of the dialog controller as usual.
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.
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 the `uploadImages` property.
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
4) Attach link at your pages
5) set the dialog completion handler
5) Set the dialog completion handler
6) Present the dialog view controller to your view controller
6) present the dialog viewcontroller in your view controller
Working with share activity
==========
VK SDK provides a special class for working with `UIActivityViewController` - `VKActivity`. See example below for understand how it works:
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
@ -260,16 +332,16 @@ if (VK_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
[self presentViewController:activityViewController animated:YES completion:nil]; //6
```
Lets see steps of the example:
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 throught VK.
1) Prepare your share information - `UIImage`, `NSString` and `NSURL`. That kind of information may be shared through VK
2) Prepare `UIActivityViewController` with new application `VKActivity`.
2) Prepare `UIActivityViewController` with a new application `VKActivity`
3) Set additional properties for `activityViewController`.
3) Set additional properties for `activityViewController`
4) Set completion handler for `activityViewController`
5) Check if you're running above iOS 8. If user working with iPad, you must present the activity controller in popover, otherwise you'll get system error.
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.
6) Present the activity controller as usual

8
VK-ios-sdk.podspec Normal file → Executable file
View File

@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "VK-ios-sdk"
s.version = "1.2.2"
s.version = "1.4.4"
s.summary = "Library for working with VK."
s.homepage = "https://github.com/VKCOM/vk-ios-sdk"
s.license = 'MIT'
@ -9,7 +9,9 @@ Pod::Spec.new do |s|
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.resources = "VKSdkResources.bundle"
s.frameworks = 'Foundation','UIKit'
s.resource_bundles = {
'VKSdkResources' => ['library/Resources/SdkAssetCatalog.xcassets','library/Resources/*.lproj']
}
s.frameworks = 'Foundation','UIKit','SafariServices','CoreGraphics','Security'
s.requires_arc = true
end

527
VK-ios-sdk.xcodeproj/project.pbxproj Normal file → Executable file
View File

@ -6,22 +6,6 @@
objectVersion = 46;
objects = {
/* Begin PBXAggregateTarget section */
F37145F61A42EB2900EEBD6D /* Framework */ = {
isa = PBXAggregateTarget;
buildConfigurationList = F37145F71A42EB2900EEBD6D /* Build configuration list for PBXAggregateTarget "Framework" */;
buildPhases = (
F37145FC1A42EB4700EEBD6D /* MultiPlatform Build */,
);
dependencies = (
F340187C1AC1D36C006CCEE0 /* PBXTargetDependency */,
F37146011A42F06E00EEBD6D /* PBXTargetDependency */,
);
name = Framework;
productName = Framework;
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
132CF7FE19D2B3360084884D /* VKAccessToken.h in Copy Files */ = {isa = PBXBuildFile; fileRef = F3C7549918226ABB00964716 /* VKAccessToken.h */; };
132CF7FF19D2B3360084884D /* VKBatchRequest.h in Copy Files */ = {isa = PBXBuildFile; fileRef = F3D38E7D183F7B4800D05079 /* VKBatchRequest.h */; };
@ -47,7 +31,6 @@
1ACA6509BAA3CEB2D5C3BA1D /* VKCaptchaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA608862B093D6D0F46BC4 /* VKCaptchaViewController.m */; };
1ACA656AD2A705875E2C86DC /* VKApiBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA628E1013456A0CB8D71E /* VKApiBase.m */; };
1ACA65FFFA2849D789FFDB88 /* VKApiGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA62BE07D3E456A04ACE24 /* VKApiGroups.m */; };
1ACA66450BE336D6F5AD4683 /* NSData+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA628625B4301841232A88 /* NSData+MD5.m */; };
1ACA664E3EC08CC26D0E2340 /* VKUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6F8866BE96889BB9DA68 /* VKUtil.m */; };
1ACA66EB5F29CF88789B1D5F /* VKApiWall.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6D5C2E0E59A23C3D3B4C /* VKApiWall.m */; };
1ACA68336BEF00F13DEDA870 /* VKUploadMessagesPhotoRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA60EB8A19FBF44B2A0769 /* VKUploadMessagesPhotoRequest.m */; };
@ -77,58 +60,26 @@
1ACA6F1A8CF8466F058EE7BC /* VKGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6C700C815D16F08DD4CD /* VKGroup.m */; };
1ACA6F8C335233B3D05A0F49 /* VKActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6F9E65F7742733AB46DF /* VKActivity.m */; };
1ACA6FE428FEE2FCF7316DBB /* VKShareDialogController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6536B0B95A5ADF4F4D7A /* VKShareDialogController.m */; };
8F99D6351C42C6010006DB03 /* VKApiDocs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F99D6331C42C6010006DB03 /* VKApiDocs.h */; settings = {ATTRIBUTES = (Public, ); }; };
8F99D6361C42C6010006DB03 /* VKApiDocs.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F99D6341C42C6010006DB03 /* VKApiDocs.m */; };
8F99D6371C42C6010006DB03 /* VKApiDocs.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F99D6341C42C6010006DB03 /* VKApiDocs.m */; };
8F99D63A1C42C61A0006DB03 /* VKDocs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F99D6381C42C61A0006DB03 /* VKDocs.h */; settings = {ATTRIBUTES = (Public, ); }; };
8F99D63B1C42C61A0006DB03 /* VKDocs.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F99D6391C42C61A0006DB03 /* VKDocs.m */; };
8F99D63C1C42C61A0006DB03 /* VKDocs.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F99D6391C42C61A0006DB03 /* VKDocs.m */; };
F3007C5D1AEE50B5007CCA9D /* VKApiConst.m in Sources */ = {isa = PBXBuildFile; fileRef = F3007C5C1AEE50B5007CCA9D /* VKApiConst.m */; };
F3062B801A4185FF006B57F9 /* ic_vk_ios7_activity_logo~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B7F1A4185FD006B57F9 /* ic_vk_ios7_activity_logo~ipad.png */; };
F3062B851A418A0E006B57F9 /* ic_vk_ios7_activity_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B811A418A0E006B57F9 /* ic_vk_ios7_activity_logo.png */; };
F3062B861A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B821A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x.png */; };
F3062B871A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B831A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x~ipad.png */; };
F3062B881A418A0E006B57F9 /* ic_vk_ios7_activity_logo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B841A418A0E006B57F9 /* ic_vk_ios7_activity_logo@3x.png */; };
F32ADDCD1A417CE9009A9FD6 /* ic_vk_activity_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDC81A417C4C009A9FD6 /* ic_vk_activity_logo.png */; };
F32ADDCE1A417CE9009A9FD6 /* ic_vk_activity_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDC91A417C4C009A9FD6 /* ic_vk_activity_logo@2x.png */; };
F32ADDCF1A417CE9009A9FD6 /* ic_vk_activity_logo@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDCA1A417C4C009A9FD6 /* ic_vk_activity_logo@2x~ipad.png */; };
F32ADDD01A417CE9009A9FD6 /* ic_vk_activity_logo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDCB1A417C4C009A9FD6 /* ic_vk_activity_logo@3x.png */; };
F32ADDD11A417CE9009A9FD6 /* ic_vk_activity_logo~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDCC1A417C4C009A9FD6 /* ic_vk_activity_logo~ipad.png */; };
F3050D211C49123C0092FE76 /* VKDocs.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 8F99D6381C42C61A0006DB03 /* VKDocs.h */; };
F3050D221C4912420092FE76 /* VKApiDocs.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 8F99D6331C42C6010006DB03 /* VKApiDocs.h */; };
F34074F61D214AAC00F65798 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3769E701BE8E41C00AEC4AF /* SafariServices.framework */; };
F3454FD01ABB1D1A00B15E85 /* VKRequestsScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = F3454FCF1ABB1D1A00B15E85 /* VKRequestsScheduler.m */; };
F34670201B8B6BF3003EF74B /* VKSdk.h in Copy Files */ = {isa = PBXBuildFile; fileRef = F34670171B8B50E0003EF74B /* VKSdk.h */; };
F34670361B8B7C5A003EF74B /* VKSdkFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = F34670351B8B7C5A003EF74B /* VKSdkFramework.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346704A1B8B7C6B003EF74B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFFA81827BB18000BB525 /* UIKit.framework */; };
F346704B1B8B7C70003EF74B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3C75430182133CC00964716 /* Foundation.framework */; };
F346704C1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B811A418A0E006B57F9 /* ic_vk_ios7_activity_logo.png */; };
F346704D1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B821A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x.png */; };
F346704E1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B831A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x~ipad.png */; };
F346704F1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B841A418A0E006B57F9 /* ic_vk_ios7_activity_logo@3x.png */; };
F34670501B8B7C8E003EF74B /* ic_vk_ios7_activity_logo~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F3062B7F1A4185FD006B57F9 /* ic_vk_ios7_activity_logo~ipad.png */; };
F34670511B8B7C8E003EF74B /* ic_vk_activity_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDC81A417C4C009A9FD6 /* ic_vk_activity_logo.png */; };
F34670521B8B7C8E003EF74B /* ic_vk_activity_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDC91A417C4C009A9FD6 /* ic_vk_activity_logo@2x.png */; };
F34670531B8B7C8E003EF74B /* ic_vk_activity_logo@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDCA1A417C4C009A9FD6 /* ic_vk_activity_logo@2x~ipad.png */; };
F34670541B8B7C8E003EF74B /* ic_vk_activity_logo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDCB1A417C4C009A9FD6 /* ic_vk_activity_logo@3x.png */; };
F34670551B8B7C8E003EF74B /* ic_vk_activity_logo~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = F32ADDCC1A417C4C009A9FD6 /* ic_vk_activity_logo~ipad.png */; };
F34670561B8B7C8E003EF74B /* Disclosure.png in Resources */ = {isa = PBXBuildFile; fileRef = F3A1D1F01A40436A00EFEC74 /* Disclosure.png */; };
F34670571B8B7C8E003EF74B /* Disclosure@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3A1D1F11A40436A00EFEC74 /* Disclosure@2x.png */; };
F34670581B8B7C8E003EF74B /* Disclosure@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3A1D1F21A40436A00EFEC74 /* Disclosure@3x.png */; };
F34670591B8B7C8E003EF74B /* BlueBtn_pressed.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00AF1A3A019A00167AEB /* BlueBtn_pressed.png */; };
F346705A1B8B7C8E003EF74B /* BlueBtn_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B01A3A019A00167AEB /* BlueBtn_pressed@2x.png */; };
F346705B1B8B7C8E003EF74B /* BlueBtn_pressed@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B11A3A019A00167AEB /* BlueBtn_pressed@3x.png */; };
F346705C1B8B7C8E003EF74B /* BlueBtn.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B21A3A019A00167AEB /* BlueBtn.png */; };
F346705D1B8B7C8E003EF74B /* BlueBtn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B31A3A019A00167AEB /* BlueBtn@2x.png */; };
F346705E1B8B7C8E003EF74B /* BlueBtn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B41A3A019A00167AEB /* BlueBtn@3x.png */; };
F346705F1B8B7C8E003EF74B /* ic_deleteattach.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C31977DC2D0085898F /* ic_deleteattach.png */; };
F34670601B8B7C8E003EF74B /* ic_deleteattach@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C41977DC2D0085898F /* ic_deleteattach@2x.png */; };
F34670611B8B7C8E003EF74B /* ic_deletephoto.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C51977DC2D0085898F /* ic_deletephoto.png */; };
F34670621B8B7C8E003EF74B /* ic_deletephoto@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C61977DC2D0085898F /* ic_deletephoto@2x.png */; };
F34670631B8B7C8E003EF74B /* ic_vk_logo_nb.png in Resources */ = {isa = PBXBuildFile; fileRef = F3BACC5F186883E8003158DA /* ic_vk_logo_nb.png */; };
F34670641B8B7C8E003EF74B /* ic_vk_logo_nb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3BACC60186883E8003158DA /* ic_vk_logo_nb@2x.png */; };
F34670651B8B7C8E003EF74B /* ic_vk_logo_nb@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B51A3A019A00167AEB /* ic_vk_logo_nb@3x.png */; };
F34670661B8B7C8E003EF74B /* img_newpostattachlink.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114CF1978060F0085898F /* img_newpostattachlink.png */; };
F34670671B8B7C8E003EF74B /* img_newpostattachlink@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114D01978060F0085898F /* img_newpostattachlink@2x.png */; };
F34670681B8B7C8E003EF74B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F36114A4197684870085898F /* Localizable.strings */; };
F34670691B8B7C8E003EF74B /* vk_settings.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114AF19768FD70085898F /* vk_settings.png */; };
F346706A1B8B7C8E003EF74B /* vk_settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114B019768FD70085898F /* vk_settings@2x.png */; };
F34670D51B8B7CC7003EF74B /* VKImageParameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA64A77C64725DC48444F7 /* VKImageParameters.m */; };
F34670D61B8B7CCA003EF74B /* VKUploadImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6FA4664723004E33ADE4 /* VKUploadImage.m */; };
F34670D71B8B7CD2003EF74B /* VKUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6F8866BE96889BB9DA68 /* VKUtil.m */; };
F34670D81B8B7CD2003EF74B /* NSString+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6108D9F4E0C7644BAC52 /* NSString+MD5.m */; };
F34670D91B8B7CD2003EF74B /* NSData+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA628625B4301841232A88 /* NSData+MD5.m */; };
F34670DA1B8B7CD2003EF74B /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA69BCB967C1A6450F9935 /* OrderedDictionary.m */; };
F34670DB1B8B7CD9003EF74B /* VKActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6F9E65F7742733AB46DF /* VKActivity.m */; };
F34670DC1B8B7CD9003EF74B /* VKAuthorizeController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA602BF516D3FC45609A2B /* VKAuthorizeController.m */; };
@ -171,17 +122,17 @@
F34671011B8B7D07003EF74B /* VKError.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6A6A44F31EF577C52D25 /* VKError.m */; };
F34671021B8B7D07003EF74B /* VKHTTPClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6B563F483A0A35070645 /* VKHTTPClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671031B8B7D07003EF74B /* VKHTTPClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA684708A969AF04E34B85 /* VKHTTPClient.m */; };
F34671041B8B7D07003EF74B /* VKHTTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6E01EE850C5782604D41 /* VKHTTPOperation.h */; };
F34671041B8B7D07003EF74B /* VKHTTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6E01EE850C5782604D41 /* VKHTTPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671051B8B7D07003EF74B /* VKHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6FEB2DD3739A1AFB8403 /* VKHTTPOperation.m */; };
F34671061B8B7D07003EF74B /* VKJSONOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DA65AF1B3DA34600E64A30 /* VKJSONOperation.h */; };
F34671061B8B7D07003EF74B /* VKJSONOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3DA65AF1B3DA34600E64A30 /* VKJSONOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671071B8B7D07003EF74B /* VKJSONOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F3DA65B01B3DA34600E64A30 /* VKJSONOperation.m */; };
F34671081B8B7D07003EF74B /* VKObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6B275906BC58E311AF45 /* VKObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671091B8B7D07003EF74B /* VKObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6062CBB5C51999B6F516 /* VKObject.m */; };
F346710A1B8B7D07003EF74B /* VKOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA61B2E964393FB2431C30 /* VKOperation.h */; };
F346710A1B8B7D07003EF74B /* VKOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA61B2E964393FB2431C30 /* VKOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346710B1B8B7D07003EF74B /* VKOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6FE235BA094D8E3A0189 /* VKOperation.m */; };
F346710C1B8B7D07003EF74B /* VKRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA69C5C9C5019C00FA4FE9 /* VKRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346710D1B8B7D07003EF74B /* VKRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA6422AA73710CE582104B /* VKRequest.m */; };
F346710E1B8B7D07003EF74B /* VKRequestsScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = F3454FCE1ABB1D1A00B15E85 /* VKRequestsScheduler.h */; };
F346710E1B8B7D07003EF74B /* VKRequestsScheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = F3454FCE1ABB1D1A00B15E85 /* VKRequestsScheduler.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346710F1B8B7D07003EF74B /* VKRequestsScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = F3454FCF1ABB1D1A00B15E85 /* VKRequestsScheduler.m */; };
F34671101B8B7D07003EF74B /* VKResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6B2CF4703D6489516BCE /* VKResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671111B8B7D07003EF74B /* VKResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ACA624D02724AC703780337 /* VKResponse.m */; };
@ -223,22 +174,21 @@
F34671351B8B7D07003EF74B /* VKCaptchaView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA61750D18E769710C23D2 /* VKCaptchaView.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671361B8B7D07003EF74B /* VKCaptchaViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA60549B5805BC010388F6 /* VKCaptchaViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671371B8B7D07003EF74B /* VKShareDialogController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA636E76F65CA58F05D4C9 /* VKShareDialogController.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671381B8B7D07003EF74B /* VKSharedTransitioningObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6A7961FA6DBB3C1530F9 /* VKSharedTransitioningObject.h */; };
F34671381B8B7D07003EF74B /* VKSharedTransitioningObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6A7961FA6DBB3C1530F9 /* VKSharedTransitioningObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34671391B8B7D07003EF74B /* VKUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA671427725230741603BC /* VKUtil.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346713A1B8B7D07003EF74B /* NSData+MD5.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA60466E2608234660028D /* NSData+MD5.h */; };
F346713B1B8B7D07003EF74B /* OrderedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6CCE31EAF497A4030D24 /* OrderedDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346713C1B8B7D07003EF74B /* NSString+MD5.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6E07E9640D2B9D9B4831 /* NSString+MD5.h */; };
F346713C1B8B7D07003EF74B /* NSString+MD5.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA6E07E9640D2B9D9B4831 /* NSString+MD5.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346713D1B8B7D07003EF74B /* VKUploadImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA68CDC5C08713A61C5AD1 /* VKUploadImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
F346713E1B8B7D07003EF74B /* VKImageParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACA62D0E659DB7778EF2633 /* VKImageParameters.h */; settings = {ATTRIBUTES = (Public, ); }; };
F34DECF61D2171E3005495E5 /* SdkAssetCatalog.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F34DECF11D2171A1005495E5 /* SdkAssetCatalog.xcassets */; };
F34DECF71D217260005495E5 /* SdkAssetCatalog.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F34DECF11D2171A1005495E5 /* SdkAssetCatalog.xcassets */; };
F36114A9197685810085898F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F36114A4197684870085898F /* Localizable.strings */; };
F36114B319768FDD0085898F /* vk_settings.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114AF19768FD70085898F /* vk_settings.png */; };
F36114B419768FDD0085898F /* vk_settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114B019768FD70085898F /* vk_settings@2x.png */; };
F36114C71977DC2D0085898F /* ic_deleteattach.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C31977DC2D0085898F /* ic_deleteattach.png */; };
F36114C81977DC2D0085898F /* ic_deleteattach@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C41977DC2D0085898F /* ic_deleteattach@2x.png */; };
F36114C91977DC2D0085898F /* ic_deletephoto.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C51977DC2D0085898F /* ic_deletephoto.png */; };
F36114CA1977DC2D0085898F /* ic_deletephoto@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114C61977DC2D0085898F /* ic_deletephoto@2x.png */; };
F36114D11978060F0085898F /* img_newpostattachlink.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114CF1978060F0085898F /* img_newpostattachlink.png */; };
F36114D21978060F0085898F /* img_newpostattachlink@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F36114D01978060F0085898F /* img_newpostattachlink@2x.png */; };
F3769D411BDFDC6F00AEC4AF /* VKAuthorizationResult.h in Headers */ = {isa = PBXBuildFile; fileRef = F3769D3F1BDFDC6F00AEC4AF /* VKAuthorizationResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
F3769D421BDFDC6F00AEC4AF /* VKAuthorizationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = F3769D401BDFDC6F00AEC4AF /* VKAuthorizationResult.m */; };
F3769D431BDFDC6F00AEC4AF /* VKAuthorizationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = F3769D401BDFDC6F00AEC4AF /* VKAuthorizationResult.m */; };
F3769D441BDFDD3C00AEC4AF /* VKAuthorizationResult.h in Copy Files */ = {isa = PBXBuildFile; fileRef = F3769D3F1BDFDC6F00AEC4AF /* VKAuthorizationResult.h */; };
F3769E6F1BE8E41800AEC4AF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3769E6E1BE8E41800AEC4AF /* CoreGraphics.framework */; };
F3769E711BE8E41C00AEC4AF /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3769E701BE8E41C00AEC4AF /* SafariServices.framework */; };
F3909FE51A9C7B24006540A6 /* NSError+VKError.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 1ACA6A36848AD5D36847B463 /* NSError+VKError.h */; };
F3909FE61A9C7B24006540A6 /* VKRequest.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 1ACA69C5C9C5019C00FA4FE9 /* VKRequest.h */; };
F3909FE71A9C7B24006540A6 /* VKError.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 1ACA6DAE30C094CEFFDC106A /* VKError.h */; };
@ -279,32 +229,18 @@
F390A00A1A9C7B25006540A6 /* VKUtil.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 1ACA671427725230741603BC /* VKUtil.h */; };
F390A00B1A9C7B25006540A6 /* VKUploadImage.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 1ACA68CDC5C08713A61C5AD1 /* VKUploadImage.h */; };
F390A00C1A9C7B25006540A6 /* VKImageParameters.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 1ACA62D0E659DB7778EF2633 /* VKImageParameters.h */; };
F39A00B61A3A019A00167AEB /* BlueBtn_pressed.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00AF1A3A019A00167AEB /* BlueBtn_pressed.png */; };
F39A00B71A3A019A00167AEB /* BlueBtn_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B01A3A019A00167AEB /* BlueBtn_pressed@2x.png */; };
F39A00B81A3A019A00167AEB /* BlueBtn_pressed@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B11A3A019A00167AEB /* BlueBtn_pressed@3x.png */; };
F39A00B91A3A019A00167AEB /* BlueBtn.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B21A3A019A00167AEB /* BlueBtn.png */; };
F39A00BA1A3A019A00167AEB /* BlueBtn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B31A3A019A00167AEB /* BlueBtn@2x.png */; };
F39A00BB1A3A019A00167AEB /* BlueBtn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B41A3A019A00167AEB /* BlueBtn@3x.png */; };
F39A00BC1A3A019A00167AEB /* ic_vk_logo_nb@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F39A00B51A3A019A00167AEB /* ic_vk_logo_nb@3x.png */; };
F3A1D1F31A40436A00EFEC74 /* Disclosure.png in Resources */ = {isa = PBXBuildFile; fileRef = F3A1D1F01A40436A00EFEC74 /* Disclosure.png */; };
F3A1D1F41A40436A00EFEC74 /* Disclosure@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3A1D1F11A40436A00EFEC74 /* Disclosure@2x.png */; };
F3A1D1F51A40436A00EFEC74 /* Disclosure@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3A1D1F21A40436A00EFEC74 /* Disclosure@3x.png */; };
F3BACC481865905B003158DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F3BACC461865905B003158DA /* InfoPlist.strings */; };
F3BACC61186883E8003158DA /* ic_vk_logo_nb.png in Resources */ = {isa = PBXBuildFile; fileRef = F3BACC5F186883E8003158DA /* ic_vk_logo_nb.png */; };
F3BACC62186883E8003158DA /* ic_vk_logo_nb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F3BACC60186883E8003158DA /* ic_vk_logo_nb@2x.png */; };
F3C58CD01D213B2C005E94B5 /* VKSdkTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F3C58CCF1D213B2C005E94B5 /* VKSdkTests.m */; };
F3C68F151C0C7E6600E1EB5E /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3769E701BE8E41C00AEC4AF /* SafariServices.framework */; };
F3C68F171C0C855C00E1EB5E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3C68F161C0C855C00E1EB5E /* Security.framework */; };
F3C68F181C0C857F00E1EB5E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3769E6E1BE8E41800AEC4AF /* CoreGraphics.framework */; };
F3C68F191C0C858300E1EB5E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3C68F161C0C855C00E1EB5E /* Security.framework */; };
F3C75431182133CC00964716 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3C75430182133CC00964716 /* Foundation.framework */; };
F3DA65B11B3DA34600E64A30 /* VKJSONOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F3DA65B01B3DA34600E64A30 /* VKJSONOperation.m */; };
F3DD81301D21966F001E7E63 /* VKSdkFramework.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F34670311B8B7C5A003EF74B /* VKSdkFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
F3EEFFA91827BB18000BB525 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3EEFFA81827BB18000BB525 /* UIKit.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
F340187B1AC1D36C006CCEE0 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F3C75425182133CB00964716 /* Project object */;
proxyType = 1;
remoteGlobalIDString = F3C7542C182133CC00964716;
remoteInfo = VKSdk;
};
F34670261B8B7A59003EF74B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F3C75425182133CB00964716 /* Project object */;
@ -312,12 +248,12 @@
remoteGlobalIDString = F3BACC3F1865905B003158DA;
remoteInfo = VKSdkResources;
};
F37146001A42F06E00EEBD6D /* PBXContainerItemProxy */ = {
F3DD81311D2198C8001E7E63 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = F3C75425182133CB00964716 /* Project object */;
proxyType = 1;
remoteGlobalIDString = F3BACC3F1865905B003158DA;
remoteInfo = VKSdkResources;
remoteGlobalIDString = F3C7542C182133CC00964716;
remoteInfo = VKSdk;
};
/* End PBXContainerItemProxy section */
@ -328,6 +264,9 @@
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
F3050D221C4912420092FE76 /* VKApiDocs.h in Copy Files */,
F3050D211C49123C0092FE76 /* VKDocs.h in Copy Files */,
F3769D441BDFDD3C00AEC4AF /* VKAuthorizationResult.h in Copy Files */,
F34670201B8B6BF3003EF74B /* VKSdk.h in Copy Files */,
F3909FE51A9C7B24006540A6 /* NSError+VKError.h in Copy Files */,
F3909FE61A9C7B24006540A6 /* VKRequest.h in Copy Files */,
@ -378,12 +317,21 @@
name = "Copy Files";
runOnlyForDeploymentPostprocessing = 0;
};
F3DD812F1D219660001E7E63 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
F3DD81301D21966F001E7E63 /* VKSdkFramework.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1ACA602BF516D3FC45609A2B /* VKAuthorizeController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKAuthorizeController.m; sourceTree = "<group>"; };
1ACA6041B183FB7781AC6F07 /* VKUploadMessagesPhotoRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKUploadMessagesPhotoRequest.h; sourceTree = "<group>"; };
1ACA60466E2608234660028D /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = "<group>"; };
1ACA60549B5805BC010388F6 /* VKCaptchaViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKCaptchaViewController.h; sourceTree = "<group>"; };
1ACA6062CBB5C51999B6F516 /* VKObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKObject.m; sourceTree = "<group>"; };
1ACA608862B093D6D0F46BC4 /* VKCaptchaViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKCaptchaViewController.m; sourceTree = "<group>"; };
@ -399,7 +347,6 @@
1ACA61B2E964393FB2431C30 /* VKOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKOperation.h; sourceTree = "<group>"; };
1ACA61F606614B473B1F8535 /* VKUploadWallPhotoRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKUploadWallPhotoRequest.m; sourceTree = "<group>"; };
1ACA624D02724AC703780337 /* VKResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKResponse.m; sourceTree = "<group>"; };
1ACA628625B4301841232A88 /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = "<group>"; };
1ACA628E1013456A0CB8D71E /* VKApiBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKApiBase.m; sourceTree = "<group>"; };
1ACA62BE07D3E456A04ACE24 /* VKApiGroups.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKApiGroups.m; sourceTree = "<group>"; };
1ACA62D0E659DB7778EF2633 /* VKImageParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKImageParameters.h; sourceTree = "<group>"; };
@ -471,51 +418,33 @@
1ACA6FA4664723004E33ADE4 /* VKUploadImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKUploadImage.m; sourceTree = "<group>"; };
1ACA6FE235BA094D8E3A0189 /* VKOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKOperation.m; sourceTree = "<group>"; };
1ACA6FEB2DD3739A1AFB8403 /* VKHTTPOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKHTTPOperation.m; sourceTree = "<group>"; };
8F99D6331C42C6010006DB03 /* VKApiDocs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VKApiDocs.h; path = library/Source/API/methods/VKApiDocs.h; sourceTree = SOURCE_ROOT; };
8F99D6341C42C6010006DB03 /* VKApiDocs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VKApiDocs.m; path = library/Source/API/methods/VKApiDocs.m; sourceTree = SOURCE_ROOT; };
8F99D6381C42C61A0006DB03 /* VKDocs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKDocs.h; sourceTree = "<group>"; };
8F99D6391C42C61A0006DB03 /* VKDocs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKDocs.m; sourceTree = "<group>"; };
F3007C5C1AEE50B5007CCA9D /* VKApiConst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKApiConst.m; sourceTree = "<group>"; };
F3062B7F1A4185FD006B57F9 /* ic_vk_ios7_activity_logo~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_ios7_activity_logo~ipad.png"; sourceTree = "<group>"; };
F3062B811A418A0E006B57F9 /* ic_vk_ios7_activity_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_vk_ios7_activity_logo.png; sourceTree = "<group>"; };
F3062B821A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_ios7_activity_logo@2x.png"; sourceTree = "<group>"; };
F3062B831A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_ios7_activity_logo@2x~ipad.png"; sourceTree = "<group>"; };
F3062B841A418A0E006B57F9 /* ic_vk_ios7_activity_logo@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_ios7_activity_logo@3x.png"; sourceTree = "<group>"; };
F32ADDC81A417C4C009A9FD6 /* ic_vk_activity_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_vk_activity_logo.png; sourceTree = "<group>"; };
F32ADDC91A417C4C009A9FD6 /* ic_vk_activity_logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_activity_logo@2x.png"; sourceTree = "<group>"; };
F32ADDCA1A417C4C009A9FD6 /* ic_vk_activity_logo@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_activity_logo@2x~ipad.png"; sourceTree = "<group>"; };
F32ADDCB1A417C4C009A9FD6 /* ic_vk_activity_logo@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_activity_logo@3x.png"; sourceTree = "<group>"; };
F32ADDCC1A417C4C009A9FD6 /* ic_vk_activity_logo~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_activity_logo~ipad.png"; sourceTree = "<group>"; };
F3454FCE1ABB1D1A00B15E85 /* VKRequestsScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKRequestsScheduler.h; sourceTree = "<group>"; };
F3454FCF1ABB1D1A00B15E85 /* VKRequestsScheduler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKRequestsScheduler.m; sourceTree = "<group>"; };
F34670171B8B50E0003EF74B /* VKSdk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKSdk.h; sourceTree = "<group>"; };
F34670311B8B7C5A003EF74B /* VKSdkFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VKSdkFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; };
F34670341B8B7C5A003EF74B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F34670351B8B7C5A003EF74B /* VKSdkFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VKSdkFramework.h; sourceTree = "<group>"; };
F34DECF11D2171A1005495E5 /* SdkAssetCatalog.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = SdkAssetCatalog.xcassets; sourceTree = "<group>"; };
F34DECF81D217291005495E5 /* Resources-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Resources-Info.plist"; sourceTree = "<group>"; };
F36114A5197684870085898F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
F36114A8197684A00085898F /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
F36114AF19768FD70085898F /* vk_settings.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vk_settings.png; sourceTree = "<group>"; };
F36114B019768FD70085898F /* vk_settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vk_settings@2x.png"; sourceTree = "<group>"; };
F36114BF1976CEB80085898F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
F36114C31977DC2D0085898F /* ic_deleteattach.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_deleteattach.png; sourceTree = "<group>"; };
F36114C41977DC2D0085898F /* ic_deleteattach@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_deleteattach@2x.png"; sourceTree = "<group>"; };
F36114C51977DC2D0085898F /* ic_deletephoto.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_deletephoto.png; sourceTree = "<group>"; };
F36114C61977DC2D0085898F /* ic_deletephoto@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_deletephoto@2x.png"; sourceTree = "<group>"; };
F36114CF1978060F0085898F /* img_newpostattachlink.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_newpostattachlink.png; sourceTree = "<group>"; };
F36114D01978060F0085898F /* img_newpostattachlink@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "img_newpostattachlink@2x.png"; sourceTree = "<group>"; };
F39A00AF1A3A019A00167AEB /* BlueBtn_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BlueBtn_pressed.png; sourceTree = "<group>"; };
F39A00B01A3A019A00167AEB /* BlueBtn_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BlueBtn_pressed@2x.png"; sourceTree = "<group>"; };
F39A00B11A3A019A00167AEB /* BlueBtn_pressed@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BlueBtn_pressed@3x.png"; sourceTree = "<group>"; };
F39A00B21A3A019A00167AEB /* BlueBtn.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BlueBtn.png; sourceTree = "<group>"; };
F39A00B31A3A019A00167AEB /* BlueBtn@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BlueBtn@2x.png"; sourceTree = "<group>"; };
F39A00B41A3A019A00167AEB /* BlueBtn@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BlueBtn@3x.png"; sourceTree = "<group>"; };
F39A00B51A3A019A00167AEB /* ic_vk_logo_nb@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_logo_nb@3x.png"; sourceTree = "<group>"; };
F3A1D1F01A40436A00EFEC74 /* Disclosure.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Disclosure.png; sourceTree = "<group>"; };
F3A1D1F11A40436A00EFEC74 /* Disclosure@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Disclosure@2x.png"; sourceTree = "<group>"; };
F3A1D1F21A40436A00EFEC74 /* Disclosure@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Disclosure@3x.png"; sourceTree = "<group>"; };
F3769D3F1BDFDC6F00AEC4AF /* VKAuthorizationResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKAuthorizationResult.h; sourceTree = "<group>"; };
F3769D401BDFDC6F00AEC4AF /* VKAuthorizationResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKAuthorizationResult.m; sourceTree = "<group>"; };
F3769E6E1BE8E41800AEC4AF /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
F3769E701BE8E41C00AEC4AF /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; };
F3BACC401865905B003158DA /* VKSdkResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VKSdkResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
F3BACC451865905B003158DA /* Resources-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Resources-Info.plist"; sourceTree = "<group>"; };
F3BACC471865905B003158DA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F3BACC5618659493003158DA /* VKBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VKBundle.h; sourceTree = "<group>"; };
F3BACC5718659493003158DA /* VKBundle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VKBundle.m; sourceTree = "<group>"; };
F3BACC5F186883E8003158DA /* ic_vk_logo_nb.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ic_vk_logo_nb.png; sourceTree = "<group>"; };
F3BACC60186883E8003158DA /* ic_vk_logo_nb@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ic_vk_logo_nb@2x.png"; sourceTree = "<group>"; };
F3C58CCD1D213B2C005E94B5 /* VKSdkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VKSdkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
F3C58CCF1D213B2C005E94B5 /* VKSdkTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VKSdkTests.m; sourceTree = "<group>"; };
F3C58CD11D213B2C005E94B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F3C68F161C0C855C00E1EB5E /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
F3C7542D182133CC00964716 /* libVKSdk.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libVKSdk.a; sourceTree = BUILT_PRODUCTS_DIR; };
F3C75430182133CC00964716 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
F3C75437182133CC00964716 /* VKSdk.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VKSdk.m; sourceTree = "<group>"; };
@ -536,6 +465,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F3C68F171C0C855C00E1EB5E /* Security.framework in Frameworks */,
F3769E711BE8E41C00AEC4AF /* SafariServices.framework in Frameworks */,
F3769E6F1BE8E41800AEC4AF /* CoreGraphics.framework in Frameworks */,
F346704B1B8B7C70003EF74B /* Foundation.framework in Frameworks */,
F346704A1B8B7C6B003EF74B /* UIKit.framework in Frameworks */,
);
@ -548,10 +480,21 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
F3C58CCA1D213B2C005E94B5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F34074F61D214AAC00F65798 /* SafariServices.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F3C7542A182133CC00964716 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F3C68F191C0C858300E1EB5E /* Security.framework in Frameworks */,
F3C68F181C0C857F00E1EB5E /* CoreGraphics.framework in Frameworks */,
F3C68F151C0C7E6600E1EB5E /* SafariServices.framework in Frameworks */,
F3EEFFA91827BB18000BB525 /* UIKit.framework in Frameworks */,
F3C75431182133CC00964716 /* Foundation.framework in Frameworks */,
);
@ -608,6 +551,8 @@
1ACA64B4219AB5F2A104F4E3 /* models */ = {
isa = PBXGroup;
children = (
8F99D6381C42C61A0006DB03 /* VKDocs.h */,
8F99D6391C42C61A0006DB03 /* VKDocs.m */,
1ACA6BF00807A26E3B00BD65 /* VKUser.h */,
1ACA664E5CDF97EB2648B660 /* VKUser.m */,
1ACA60E2C646C4C6615170CD /* VKAudio.h */,
@ -678,6 +623,8 @@
1ACA6BC82C49B5869CE0CCC6 /* methods */ = {
isa = PBXGroup;
children = (
8F99D6331C42C6010006DB03 /* VKApiDocs.h */,
8F99D6341C42C6010006DB03 /* VKApiDocs.m */,
1ACA64C1D90338B2A13D2392 /* VKApiBase.h */,
1ACA628E1013456A0CB8D71E /* VKApiBase.m */,
1ACA68234EC488521F154B60 /* VKApiCaptcha.h */,
@ -702,14 +649,12 @@
1ACA6F81E7D41D5219AB4B25 /* Utils */ = {
isa = PBXGroup;
children = (
1ACA6F8866BE96889BB9DA68 /* VKUtil.m */,
1ACA671427725230741603BC /* VKUtil.h */,
1ACA6108D9F4E0C7644BAC52 /* NSString+MD5.m */,
1ACA628625B4301841232A88 /* NSData+MD5.m */,
1ACA69BCB967C1A6450F9935 /* OrderedDictionary.m */,
1ACA60466E2608234660028D /* NSData+MD5.h */,
1ACA6CCE31EAF497A4030D24 /* OrderedDictionary.h */,
1ACA6E07E9640D2B9D9B4831 /* NSString+MD5.h */,
1ACA6108D9F4E0C7644BAC52 /* NSString+MD5.m */,
1ACA6CCE31EAF497A4030D24 /* OrderedDictionary.h */,
1ACA69BCB967C1A6450F9935 /* OrderedDictionary.m */,
1ACA671427725230741603BC /* VKUtil.h */,
1ACA6F8866BE96889BB9DA68 /* VKUtil.m */,
);
path = Utils;
sourceTree = "<group>";
@ -735,50 +680,21 @@
F3BACC431865905B003158DA /* Resources */ = {
isa = PBXGroup;
children = (
F3062B811A418A0E006B57F9 /* ic_vk_ios7_activity_logo.png */,
F3062B821A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x.png */,
F3062B831A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x~ipad.png */,
F3062B841A418A0E006B57F9 /* ic_vk_ios7_activity_logo@3x.png */,
F3062B7F1A4185FD006B57F9 /* ic_vk_ios7_activity_logo~ipad.png */,
F32ADDC81A417C4C009A9FD6 /* ic_vk_activity_logo.png */,
F32ADDC91A417C4C009A9FD6 /* ic_vk_activity_logo@2x.png */,
F32ADDCA1A417C4C009A9FD6 /* ic_vk_activity_logo@2x~ipad.png */,
F32ADDCB1A417C4C009A9FD6 /* ic_vk_activity_logo@3x.png */,
F32ADDCC1A417C4C009A9FD6 /* ic_vk_activity_logo~ipad.png */,
F3A1D1F01A40436A00EFEC74 /* Disclosure.png */,
F3A1D1F11A40436A00EFEC74 /* Disclosure@2x.png */,
F3A1D1F21A40436A00EFEC74 /* Disclosure@3x.png */,
F39A00AF1A3A019A00167AEB /* BlueBtn_pressed.png */,
F39A00B01A3A019A00167AEB /* BlueBtn_pressed@2x.png */,
F39A00B11A3A019A00167AEB /* BlueBtn_pressed@3x.png */,
F39A00B21A3A019A00167AEB /* BlueBtn.png */,
F39A00B31A3A019A00167AEB /* BlueBtn@2x.png */,
F39A00B41A3A019A00167AEB /* BlueBtn@3x.png */,
F36114C31977DC2D0085898F /* ic_deleteattach.png */,
F36114C41977DC2D0085898F /* ic_deleteattach@2x.png */,
F36114C51977DC2D0085898F /* ic_deletephoto.png */,
F36114C61977DC2D0085898F /* ic_deletephoto@2x.png */,
F3BACC5F186883E8003158DA /* ic_vk_logo_nb.png */,
F3BACC60186883E8003158DA /* ic_vk_logo_nb@2x.png */,
F39A00B51A3A019A00167AEB /* ic_vk_logo_nb@3x.png */,
F36114CF1978060F0085898F /* img_newpostattachlink.png */,
F36114D01978060F0085898F /* img_newpostattachlink@2x.png */,
F34DECF81D217291005495E5 /* Resources-Info.plist */,
F34DECF11D2171A1005495E5 /* SdkAssetCatalog.xcassets */,
F36114A4197684870085898F /* Localizable.strings */,
F3BACC441865905B003158DA /* Supporting Files */,
F36114AF19768FD70085898F /* vk_settings.png */,
F36114B019768FD70085898F /* vk_settings@2x.png */,
);
name = Resources;
path = library/Resources;
sourceTree = "<group>";
};
F3BACC441865905B003158DA /* Supporting Files */ = {
F3C58CCE1D213B2C005E94B5 /* VKSdkTests */ = {
isa = PBXGroup;
children = (
F3BACC451865905B003158DA /* Resources-Info.plist */,
F3BACC461865905B003158DA /* InfoPlist.strings */,
F3C58CCF1D213B2C005E94B5 /* VKSdkTests.m */,
F3C58CD11D213B2C005E94B5 /* Info.plist */,
);
name = "Supporting Files";
path = VKSdkTests;
sourceTree = "<group>";
};
F3C75424182133CB00964716 = {
@ -787,6 +703,7 @@
F3C75432182133CC00964716 /* VKSdk */,
F3BACC431865905B003158DA /* Resources */,
F34670321B8B7C5A003EF74B /* DynamicFramework */,
F3C58CCE1D213B2C005E94B5 /* VKSdkTests */,
F3C7542F182133CC00964716 /* Frameworks */,
F3C7542E182133CC00964716 /* Products */,
);
@ -798,6 +715,7 @@
F3C7542D182133CC00964716 /* libVKSdk.a */,
F3BACC401865905B003158DA /* VKSdkResources.bundle */,
F34670311B8B7C5A003EF74B /* VKSdkFramework.framework */,
F3C58CCD1D213B2C005E94B5 /* VKSdkTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@ -805,6 +723,9 @@
F3C7542F182133CC00964716 /* Frameworks */ = {
isa = PBXGroup;
children = (
F3C68F161C0C855C00E1EB5E /* Security.framework */,
F3769E701BE8E41C00AEC4AF /* SafariServices.framework */,
F3769E6E1BE8E41800AEC4AF /* CoreGraphics.framework */,
F36114BF1976CEB80085898F /* QuartzCore.framework */,
F3EEFFA81827BB18000BB525 /* UIKit.framework */,
F3C75430182133CC00964716 /* Foundation.framework */,
@ -832,14 +753,16 @@
isa = PBXGroup;
children = (
F3C7549918226ABB00964716 /* VKAccessToken.h */,
F3D38E7D183F7B4800D05079 /* VKBatchRequest.h */,
F3BACC5618659493003158DA /* VKBundle.h */,
F3EEFFA41827B726000BB525 /* VKPermissions.h */,
F3EEFFBC1827C582000BB525 /* VKSdkVersion.h */,
F3C7549A18226ABB00964716 /* VKAccessToken.m */,
F3769D3F1BDFDC6F00AEC4AF /* VKAuthorizationResult.h */,
F3769D401BDFDC6F00AEC4AF /* VKAuthorizationResult.m */,
F3D38E7D183F7B4800D05079 /* VKBatchRequest.h */,
F3D38E7E183F7B4800D05079 /* VKBatchRequest.m */,
F3BACC5618659493003158DA /* VKBundle.h */,
F3BACC5718659493003158DA /* VKBundle.m */,
F3EEFFA41827B726000BB525 /* VKPermissions.h */,
F3EEFFA61827B7F1000BB525 /* VKPermissions.m */,
F3EEFFBC1827C582000BB525 /* VKSdkVersion.h */,
);
name = SDK;
sourceTree = "<group>";
@ -869,6 +792,7 @@
F34671171B8B7D07003EF74B /* VKGroup.h in Headers */,
F34671341B8B7D07003EF74B /* VKAuthorizeController.h in Headers */,
F346711B1B8B7D07003EF74B /* VKPhoto.h in Headers */,
8F99D63A1C42C61A0006DB03 /* VKDocs.h in Headers */,
F34671151B8B7D07003EF74B /* VKAudio.h in Headers */,
F34671351B8B7D07003EF74B /* VKCaptchaView.h in Headers */,
F346712F1B8B7D07003EF74B /* VKUploadWallPhotoRequest.h in Headers */,
@ -889,6 +813,7 @@
F34671101B8B7D07003EF74B /* VKResponse.h in Headers */,
F346713E1B8B7D07003EF74B /* VKImageParameters.h in Headers */,
F34670E41B8B7CE4003EF74B /* VKApiCaptcha.h in Headers */,
F3769D411BDFDC6F00AEC4AF /* VKAuthorizationResult.h in Headers */,
F34671271B8B7D07003EF74B /* VKUniversity.h in Headers */,
F34671371B8B7D07003EF74B /* VKShareDialogController.h in Headers */,
F34670F51B8B7D07003EF74B /* VKAccessToken.h in Headers */,
@ -900,10 +825,10 @@
F34671191B8B7D07003EF74B /* VKLikes.h in Headers */,
F34671021B8B7D07003EF74B /* VKHTTPClient.h in Headers */,
F346713C1B8B7D07003EF74B /* NSString+MD5.h in Headers */,
F346713A1B8B7D07003EF74B /* NSData+MD5.h in Headers */,
F34671041B8B7D07003EF74B /* VKHTTPOperation.h in Headers */,
F346710E1B8B7D07003EF74B /* VKRequestsScheduler.h in Headers */,
F346710A1B8B7D07003EF74B /* VKOperation.h in Headers */,
8F99D6351C42C6010006DB03 /* VKApiDocs.h in Headers */,
F34671381B8B7D07003EF74B /* VKSharedTransitioningObject.h in Headers */,
F34671061B8B7D07003EF74B /* VKJSONOperation.h in Headers */,
);
@ -947,6 +872,25 @@
productReference = F3BACC401865905B003158DA /* VKSdkResources.bundle */;
productType = "com.apple.product-type.bundle";
};
F3C58CCC1D213B2C005E94B5 /* VKSdkTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = F3C58CD41D213B2C005E94B5 /* Build configuration list for PBXNativeTarget "VKSdkTests" */;
buildPhases = (
F3DD812F1D219660001E7E63 /* CopyFiles */,
F3C58CC91D213B2C005E94B5 /* Sources */,
F3C58CCA1D213B2C005E94B5 /* Frameworks */,
F3C58CCB1D213B2C005E94B5 /* Resources */,
);
buildRules = (
);
dependencies = (
F3DD81321D2198C8001E7E63 /* PBXTargetDependency */,
);
name = VKSdkTests;
productName = VKSdkTests;
productReference = F3C58CCD1D213B2C005E94B5 /* VKSdkTests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
F3C7542C182133CC00964716 /* VKSdk */ = {
isa = PBXNativeTarget;
buildConfigurationList = F3C75450182133CC00964716 /* Build configuration list for PBXNativeTarget "VKSdk" */;
@ -979,8 +923,11 @@
F34670301B8B7C5A003EF74B = {
CreatedOnToolsVersion = 6.4;
};
F37145F61A42EB2900EEBD6D = {
CreatedOnToolsVersion = 6.1.1;
F3C58CCC1D213B2C005E94B5 = {
CreatedOnToolsVersion = 8.0;
DevelopmentTeam = R26JY69RPL;
DevelopmentTeamName = VKontakte;
ProvisioningStyle = Automatic;
};
};
};
@ -1000,8 +947,8 @@
targets = (
F3C7542C182133CC00964716 /* VKSdk */,
F3BACC3F1865905B003158DA /* VKSdkResources */,
F37145F61A42EB2900EEBD6D /* Framework */,
F34670301B8B7C5A003EF74B /* VKSdkFramework */,
F3C58CCC1D213B2C005E94B5 /* VKSdkTests */,
);
};
/* End PBXProject section */
@ -1011,37 +958,8 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F346704C1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo.png in Resources */,
F346704D1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo@2x.png in Resources */,
F346704E1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo@2x~ipad.png in Resources */,
F346704F1B8B7C8E003EF74B /* ic_vk_ios7_activity_logo@3x.png in Resources */,
F34670501B8B7C8E003EF74B /* ic_vk_ios7_activity_logo~ipad.png in Resources */,
F34670511B8B7C8E003EF74B /* ic_vk_activity_logo.png in Resources */,
F34670521B8B7C8E003EF74B /* ic_vk_activity_logo@2x.png in Resources */,
F34670531B8B7C8E003EF74B /* ic_vk_activity_logo@2x~ipad.png in Resources */,
F34670541B8B7C8E003EF74B /* ic_vk_activity_logo@3x.png in Resources */,
F34670551B8B7C8E003EF74B /* ic_vk_activity_logo~ipad.png in Resources */,
F34670561B8B7C8E003EF74B /* Disclosure.png in Resources */,
F34670571B8B7C8E003EF74B /* Disclosure@2x.png in Resources */,
F34670581B8B7C8E003EF74B /* Disclosure@3x.png in Resources */,
F34670591B8B7C8E003EF74B /* BlueBtn_pressed.png in Resources */,
F346705A1B8B7C8E003EF74B /* BlueBtn_pressed@2x.png in Resources */,
F346705B1B8B7C8E003EF74B /* BlueBtn_pressed@3x.png in Resources */,
F346705C1B8B7C8E003EF74B /* BlueBtn.png in Resources */,
F346705D1B8B7C8E003EF74B /* BlueBtn@2x.png in Resources */,
F346705E1B8B7C8E003EF74B /* BlueBtn@3x.png in Resources */,
F346705F1B8B7C8E003EF74B /* ic_deleteattach.png in Resources */,
F34670601B8B7C8E003EF74B /* ic_deleteattach@2x.png in Resources */,
F34670611B8B7C8E003EF74B /* ic_deletephoto.png in Resources */,
F34670621B8B7C8E003EF74B /* ic_deletephoto@2x.png in Resources */,
F34670631B8B7C8E003EF74B /* ic_vk_logo_nb.png in Resources */,
F34670641B8B7C8E003EF74B /* ic_vk_logo_nb@2x.png in Resources */,
F34670651B8B7C8E003EF74B /* ic_vk_logo_nb@3x.png in Resources */,
F34670661B8B7C8E003EF74B /* img_newpostattachlink.png in Resources */,
F34670671B8B7C8E003EF74B /* img_newpostattachlink@2x.png in Resources */,
F34670681B8B7C8E003EF74B /* Localizable.strings in Resources */,
F34670691B8B7C8E003EF74B /* vk_settings.png in Resources */,
F346706A1B8B7C8E003EF74B /* vk_settings@2x.png in Resources */,
F34DECF61D2171E3005495E5 /* SdkAssetCatalog.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1049,38 +967,15 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F36114D21978060F0085898F /* img_newpostattachlink@2x.png in Resources */,
F39A00BB1A3A019A00167AEB /* BlueBtn@3x.png in Resources */,
F36114B319768FDD0085898F /* vk_settings.png in Resources */,
F36114CA1977DC2D0085898F /* ic_deletephoto@2x.png in Resources */,
F3062B851A418A0E006B57F9 /* ic_vk_ios7_activity_logo.png in Resources */,
F3A1D1F51A40436A00EFEC74 /* Disclosure@3x.png in Resources */,
F3062B881A418A0E006B57F9 /* ic_vk_ios7_activity_logo@3x.png in Resources */,
F3A1D1F41A40436A00EFEC74 /* Disclosure@2x.png in Resources */,
F39A00BA1A3A019A00167AEB /* BlueBtn@2x.png in Resources */,
F3062B801A4185FF006B57F9 /* ic_vk_ios7_activity_logo~ipad.png in Resources */,
F3062B861A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x.png in Resources */,
F32ADDCE1A417CE9009A9FD6 /* ic_vk_activity_logo@2x.png in Resources */,
F39A00BC1A3A019A00167AEB /* ic_vk_logo_nb@3x.png in Resources */,
F36114B419768FDD0085898F /* vk_settings@2x.png in Resources */,
F32ADDD01A417CE9009A9FD6 /* ic_vk_activity_logo@3x.png in Resources */,
F3A1D1F31A40436A00EFEC74 /* Disclosure.png in Resources */,
F34DECF71D217260005495E5 /* SdkAssetCatalog.xcassets in Resources */,
F36114A9197685810085898F /* Localizable.strings in Resources */,
F39A00B61A3A019A00167AEB /* BlueBtn_pressed.png in Resources */,
F3BACC62186883E8003158DA /* ic_vk_logo_nb@2x.png in Resources */,
F32ADDCF1A417CE9009A9FD6 /* ic_vk_activity_logo@2x~ipad.png in Resources */,
F3BACC481865905B003158DA /* InfoPlist.strings in Resources */,
F36114C71977DC2D0085898F /* ic_deleteattach.png in Resources */,
F36114D11978060F0085898F /* img_newpostattachlink.png in Resources */,
F39A00B91A3A019A00167AEB /* BlueBtn.png in Resources */,
F32ADDCD1A417CE9009A9FD6 /* ic_vk_activity_logo.png in Resources */,
F3BACC61186883E8003158DA /* ic_vk_logo_nb.png in Resources */,
F39A00B71A3A019A00167AEB /* BlueBtn_pressed@2x.png in Resources */,
F36114C91977DC2D0085898F /* ic_deletephoto.png in Resources */,
F39A00B81A3A019A00167AEB /* BlueBtn_pressed@3x.png in Resources */,
F36114C81977DC2D0085898F /* ic_deleteattach@2x.png in Resources */,
F32ADDD11A417CE9009A9FD6 /* ic_vk_activity_logo~ipad.png in Resources */,
F3062B871A418A0E006B57F9 /* ic_vk_ios7_activity_logo@2x~ipad.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F3C58CCB1D213B2C005E94B5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1101,21 +996,6 @@
shellPath = /bin/sh;
shellScript = "set -e\n\nif [ ${DEPLOYMENT_LOCATION} == \"YES\" ]; then\n echo \"Deploying, exit\"\n exit 0\nfi\n\nexport FRAMEWORK_LOCN=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework\"\n\n# Create the path to the real Headers die\nmkdir -p \"${FRAMEWORK_LOCN}/Versions/A/Headers\"\n\n# Create the required symlinks\n/bin/ln -sfh A \"${FRAMEWORK_LOCN}/Versions/Current\"\n/bin/ln -sfh Versions/Current/Headers \"${FRAMEWORK_LOCN}/Headers\"\n/bin/ln -sfh \"Versions/Current/${PRODUCT_NAME}\" \\\n\"${FRAMEWORK_LOCN}/${PRODUCT_NAME}\"\n\n# Copy the public headers into the framework\n/bin/cp -a \"${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/\" \\\n\"${FRAMEWORK_LOCN}/Versions/A/Headers\"\n\necho \"Framework built successfully\"";
};
F37145FC1A42EB4700EEBD6D /* MultiPlatform Build */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "MultiPlatform Build";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\n# If we're already inside this script then die\nif [ -n \"$RW_MULTIPLATFORM_BUILD_IN_PROGRESS\" ]; then\nexit 0\nfi\nexport RW_MULTIPLATFORM_BUILD_IN_PROGRESS=1\n\nRW_FRAMEWORK_NAME=\"VKSdk\"\nRW_INPUT_STATIC_LIB=\"libVKSdk.a\"\nRW_FRAMEWORK_LOCATION=\"${BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework\"\nRW_BUNDLE_NAME=\"VKSdkResources\"\n\nfunction build_static_library {\n # Will rebuild the static library as specified\n # build_static_library sdk\n xcrun xcodebuild -project \"${PROJECT_FILE_PATH}\" \\\n -target \"${TARGET_NAME}\" \\\n -configuration \"${CONFIGURATION}\" \\\n -sdk \"${1}\" \\\n ONLY_ACTIVE_ARCH=NO \\\n BUILD_DIR=\"${BUILD_DIR}\" \\\n OBJROOT=\"${OBJROOT}\" \\\n BUILD_ROOT=\"${BUILD_ROOT}\" \\\n SYMROOT=\"${SYMROOT}\" $ACTION\n}\n\nfunction make_fat_library {\n # Will smash 2 static libs together\n # make_fat_library in1 in2 out\n xcrun lipo -create \"${1}\" \"${2}\" -output \"${3}\"\n}\n\n# 1 - Extract the platform (iphoneos/iphonesimulator) from the SDK name\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]; then\nRW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\necho \"Could not find platform name from SDK_NAME: $SDK_NAME\"\nexit 1\nfi\n\n# 2 - Extract the version from the SDK\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]; then\nRW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\necho \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\nexit 1\nfi\n\n# 3 - Determine the other platform\nif [ \"$RW_SDK_PLATFORM\" == \"iphoneos\" ]; then\nRW_OTHER_PLATFORM=iphonesimulator\nelse\nRW_OTHER_PLATFORM=iphoneos\nfi\n\n# 4 - Find the build directory\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$RW_SDK_PLATFORM$ ]]; then\nRW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${RW_OTHER_PLATFORM}\"\nelse\necho \"Could not find other platform build directory.\"\nexit 1\nfi\n\n# Build the other platform.\nbuild_static_library \"${RW_OTHER_PLATFORM}${RW_SDK_VERSION}\"\n\n# If we're currently building for iphonesimulator, then need to rebuild\n# to ensure that we get both i386 and x86_64\nif [ \"$RW_SDK_PLATFORM\" == \"iphonesimulator\" ]; then\nbuild_static_library \"${SDK_NAME}\"\nfi\n\n# Join the 2 static libs into 1 and push into the .framework\nmake_fat_library \"${BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}\" \\\n\"${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}\" \\\n\"${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}\"\n\ncp -a \"${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}\" \\\n\"${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework/Versions/A/${RW_FRAMEWORK_NAME}\"\n\n# Copy the framework to the user's desktop\nditto \"${RW_FRAMEWORK_LOCATION}\" \"${SRCROOT}/${RW_FRAMEWORK_NAME}.framework\"\n\nditto \"${BUILT_PRODUCTS_DIR}/${RW_BUNDLE_NAME}.bundle\" \"${SRCROOT}/${RW_BUNDLE_NAME}.bundle\"";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@ -1123,6 +1003,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8F99D63C1C42C61A0006DB03 /* VKDocs.m in Sources */,
F34671051B8B7D07003EF74B /* VKHTTPOperation.m in Sources */,
F34670E01B8B7CD9003EF74B /* VKSharedTransitioningObject.m in Sources */,
F34670D51B8B7CC7003EF74B /* VKImageParameters.m in Sources */,
@ -1135,6 +1016,7 @@
F34670DB1B8B7CD9003EF74B /* VKActivity.m in Sources */,
F34671241B8B7D07003EF74B /* VKApiObject.m in Sources */,
F34671031B8B7D07003EF74B /* VKHTTPClient.m in Sources */,
F3769D431BDFDC6F00AEC4AF /* VKAuthorizationResult.m in Sources */,
F34670E11B8B7CDE003EF74B /* VKApi.m in Sources */,
F34670DC1B8B7CD9003EF74B /* VKAuthorizeController.m in Sources */,
F34671321B8B7D07003EF74B /* VKUploadMessagesPhotoRequest.m in Sources */,
@ -1146,6 +1028,7 @@
F34671281B8B7D07003EF74B /* VKUniversity.m in Sources */,
F34670F21B8B7CE4003EF74B /* VKApiWall.m in Sources */,
F34670FC1B8B7D07003EF74B /* VKBundle.m in Sources */,
8F99D6371C42C6010006DB03 /* VKApiDocs.m in Sources */,
F34671261B8B7D07003EF74B /* VKPhotoSize.m in Sources */,
F346712E1B8B7D07003EF74B /* VKUploadPhotoRequest.m in Sources */,
F34670FA1B8B7D07003EF74B /* VKAccessToken.m in Sources */,
@ -1172,7 +1055,6 @@
F346710F1B8B7D07003EF74B /* VKRequestsScheduler.m in Sources */,
F34670F41B8B7D07003EF74B /* VKSdk.m in Sources */,
F34671091B8B7D07003EF74B /* VKObject.m in Sources */,
F34670D91B8B7CD2003EF74B /* NSData+MD5.m in Sources */,
F346712A1B8B7D07003EF74B /* VKApiObjectArray.m in Sources */,
F34670E51B8B7CE4003EF74B /* VKApiCaptcha.m in Sources */,
);
@ -1185,10 +1067,19 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
F3C58CC91D213B2C005E94B5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F3C58CD01D213B2C005E94B5 /* VKSdkTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F3C75429182133CC00964716 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8F99D63B1C42C61A0006DB03 /* VKDocs.m in Sources */,
F3DA65B11B3DA34600E64A30 /* VKJSONOperation.m in Sources */,
183C475B18B2F1ED00F978DB /* VKBundle.m in Sources */,
183C475A18B2F1ED00F978DB /* VKBatchRequest.m in Sources */,
@ -1201,6 +1092,7 @@
1ACA6227186398789D76C4ED /* VKHTTPClient.m in Sources */,
1ACA61E9A3EB0BD49B9EFAB8 /* VKError.m in Sources */,
1ACA6DF69C81F31A23FFAD31 /* VKResponse.m in Sources */,
F3769D421BDFDC6F00AEC4AF /* VKAuthorizationResult.m in Sources */,
1ACA6AD5392AA08C69341D2B /* VKOperation.m in Sources */,
1ACA6E680DE6950E435D84D6 /* VKObject.m in Sources */,
1ACA696D77203A8BB76E975F /* VKApi.m in Sources */,
@ -1211,7 +1103,7 @@
1ACA6F8C335233B3D05A0F49 /* VKActivity.m in Sources */,
1ACA664E3EC08CC26D0E2340 /* VKUtil.m in Sources */,
1ACA60B9FC0180221C536C9A /* NSString+MD5.m in Sources */,
1ACA66450BE336D6F5AD4683 /* NSData+MD5.m in Sources */,
8F99D6361C42C6010006DB03 /* VKApiDocs.m in Sources */,
1ACA6C11956AB22CAA341CB1 /* OrderedDictionary.m in Sources */,
1ACA656AD2A705875E2C86DC /* VKApiBase.m in Sources */,
1ACA66EB5F29CF88789B1D5F /* VKApiWall.m in Sources */,
@ -1247,20 +1139,15 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
F340187C1AC1D36C006CCEE0 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F3C7542C182133CC00964716 /* VKSdk */;
targetProxy = F340187B1AC1D36C006CCEE0 /* PBXContainerItemProxy */;
};
F34670271B8B7A59003EF74B /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F3BACC3F1865905B003158DA /* VKSdkResources */;
targetProxy = F34670261B8B7A59003EF74B /* PBXContainerItemProxy */;
};
F37146011A42F06E00EEBD6D /* PBXTargetDependency */ = {
F3DD81321D2198C8001E7E63 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F3BACC3F1865905B003158DA /* VKSdkResources */;
targetProxy = F37146001A42F06E00EEBD6D /* PBXContainerItemProxy */;
target = F3C7542C182133CC00964716 /* VKSdk */;
targetProxy = F3DD81311D2198C8001E7E63 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@ -1274,20 +1161,13 @@
name = Localizable.strings;
sourceTree = "<group>";
};
F3BACC461865905B003158DA /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
F3BACC471865905B003158DA /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
F34670441B8B7C5A003EF74B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = NO;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
@ -1320,6 +1200,7 @@
F34670451B8B7C5A003EF74B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = NO;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
@ -1346,30 +1227,14 @@
};
name = Release;
};
F37145F81A42EB2900EEBD6D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ONLY_ACTIVE_ARCH = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
VALID_ARCHS = "arm64 armv7 armv7s x86_64 i386";
};
name = Debug;
};
F37145F91A42EB2900EEBD6D /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ONLY_ACTIVE_ARCH = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
VALID_ARCHS = "arm64 armv7 armv7s x86_64 i386";
};
name = Release;
};
F3BACC4B1865905B003158DA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = NO;
COMBINE_HIDPI_IMAGES = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "SDK resources/SDK resources-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@ -1389,10 +1254,11 @@
F3BACC4C1865905B003158DA /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = NO;
COMBINE_HIDPI_IMAGES = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "SDK resources/SDK resources-Prefix.pch";
INFOPLIST_FILE = "library/Resources/Resources-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
@ -1405,6 +1271,51 @@
};
name = Release;
};
F3C58CD21D213B2C005E94B5 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
INFOPLIST_FILE = VKSdkTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = ru.truba.VKSdkTests;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
};
name = Debug;
};
F3C58CD31D213B2C005E94B5 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
INFOPLIST_FILE = VKSdkTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = ru.truba.VKSdkTests;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
};
name = Release;
};
F3C7544E182133CC00964716 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -1478,14 +1389,16 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = YES;
CLANG_ENABLE_MODULES = NO;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = NO;
DSTROOT = /tmp/sdk.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
INSTALL_PATH = /;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
OTHER_LDFLAGS = "-ObjC";
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
PRIVATE_HEADERS_FOLDER_PATH = "$(PUBLIC_HEADERS_FOLDER_PATH)/Private";
PRODUCT_NAME = "$(TARGET_NAME)";
PUBLIC_HEADERS_FOLDER_PATH = "include/$(TARGET_NAME)";
@ -1499,13 +1412,15 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = YES;
CLANG_ENABLE_MODULES = NO;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = NO;
DSTROOT = /tmp/sdk.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
INSTALL_PATH = /;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
OTHER_LDFLAGS = "-ObjC";
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
PRIVATE_HEADERS_FOLDER_PATH = "$(PUBLIC_HEADERS_FOLDER_PATH)/Private";
PRODUCT_NAME = "$(TARGET_NAME)";
PUBLIC_HEADERS_FOLDER_PATH = "include/$(TARGET_NAME)";
@ -1527,15 +1442,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F37145F71A42EB2900EEBD6D /* Build configuration list for PBXAggregateTarget "Framework" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F37145F81A42EB2900EEBD6D /* Debug */,
F37145F91A42EB2900EEBD6D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F3BACC4A1865905B003158DA /* Build configuration list for PBXNativeTarget "VKSdkResources" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@ -1545,6 +1451,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F3C58CD41D213B2C005E94B5 /* Build configuration list for PBXNativeTarget "VKSdkTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F3C58CD21D213B2C005E94B5 /* Debug */,
F3C58CD31D213B2C005E94B5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F3C75428182133CB00964716 /* Build configuration list for PBXProject "VK-ios-sdk" */ = {
isa = XCConfigurationList;
buildConfigurations = (

0
VK-ios-sdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata generated Normal file → Executable file
View File

View File

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@ -28,7 +28,26 @@
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>

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>

3
VK-ios-sdk.xcworkspace/contents.xcworkspacedata generated Normal file → Executable file
View File

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:VK-ios-sdk.xcodeproj">
</FileRef>
<FileRef
location = "group:example/VKSDKTestApplication.xcodeproj">
</FileRef>

View File

View File

@ -1 +0,0 @@
Versions/Current/Headers

View File

@ -1 +0,0 @@
Versions/Current/VKSdk

View File

@ -1,51 +0,0 @@
//
// NSError+VKError.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 <Foundation/Foundation.h>
#import "VKError.h"
extern NSString *const VKSdkErrorDomain;
extern NSString *const VkErrorDescriptionKey;
/**
* Category with implementation of VK error
*/
@interface NSError (VKError)
/// Returns vk error associated with that NSError
@property(nonatomic, readonly) VKError *vkError;
/**
Create new NSError with VKError
@param vkError Source error
@return New error with VKSdkErrorDomain domain
*/
+ (NSError *)errorWithVkError:(VKError *)vkError;
/**
Copies user info from this NSError into new error, with adding VKError
@param vkError Source error
@return New error with this error domain, code and user info
*/
- (NSError *)copyWithVkError:(VKError *)vkError;
@end

View File

@ -1,104 +0,0 @@
//
// VKAccessToken.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.
//
// --------------------------------------------------------------------------------
//
// Modified by Ruslan Kavetsky
#import <Foundation/Foundation.h>
#import "VKObject.h"
/**
Presents VK API access token that used for loading API methods and other stuff.
*/
@interface VKAccessToken : VKObject
/// String token for use in request parameters
@property(nonatomic, readonly) NSString *accessToken;
/// Time when token expires
@property(nonatomic, strong) NSString *expiresIn;
/// Current user id for this token
@property(nonatomic, strong) NSString *userId;
/// User secret to sign requests (if nohttps used)
@property(nonatomic, strong) NSString *secret;
/// If user sets "Always use HTTPS" setting in his profile, it will be true
@property(nonatomic, assign) BOOL httpsRequired;
/// Indicates time of token creation
@property(nonatomic, assign) NSTimeInterval created;
/// Return YES if token has expired
@property(nonatomic, assign) BOOL isExpired;
// Permisiions assosiated with token
@property(nonatomic, strong) NSArray *permissions;
// User email (if passed)
@property(nonatomic, readwrite, copy) NSString *email;
/**
Retrieve token from key-value query string
@param urlString string that contains URL-query part with token. E.g. access_token=ffffff&expires_in=0...
@return parsed token
*/
+ (instancetype)tokenFromUrlString:(NSString *)urlString;
/**
Create token with existing properties
@param accessToken token string
@param secret secret
@param userId user id
@return new token
*/
+ (instancetype)tokenWithToken:(NSString *)accessToken secret:(NSString *)secret userId:(NSString *)userId;
/**
Retrieve token from file. Token must be saved into file with saveTokenToFile method
@param filePath path to file with saved token
@return parsed token
*/
+ (instancetype)tokenFromFile:(NSString *)filePath;
/**
Retrieve token from user defaults. Token must be saved to defaults with saveTokenToDefaults method
@param defaultsKey path to file with saved token
@return parsed token
*/
+ (instancetype)tokenFromDefaults:(NSString *)defaultsKey;
/**
Save token into specified file
@param filePath path to file with saved token
*/
- (void)saveTokenToFile:(NSString *)filePath;
/**
Save token into user defaults by specified key
@param defaultsKey key for defaults
*/
- (void)saveTokenToDefaults:(NSString *)defaultsKey;
@end

View File

@ -1,115 +0,0 @@
//
// VKApi.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 <Foundation/Foundation.h>
#import "VKRequest.h"
#import "VKApiUsers.h"
#import "VKApiFriends.h"
#import "VKApiPhotos.h"
#import "VKApiWall.h"
#import "VKApiConst.h"
#import "VKApiCaptcha.h"
#import "VKApiGroups.h"
#import "VKImageParameters.h"
#import "VKApiModels.h"
/**
Provides access for API parts.
*/
@interface VKApi : NSObject
/**
https://vk.com/dev/users
Returns object for preparing requests to users part of API
*/
+ (VKApiUsers *)users;
/**
https://vk.com/dev/wall
Returns object for preparing requests to wall part of API
*/
+ (VKApiWall *)wall;
/**
https://vk.com/dev/photos
Returns object for preparing requests to photos part of API
*/
+ (VKApiPhotos *)photos;
/**
https://vk.com/dev/friends
Returns object for preparing requests to friends part of API
*/
+ (VKApiFriends *)friends;
/**
https://vk.com/dev/friends
Returns object for preparing requests to groups part of API
*/
+ (VKApiGroups *)groups;
/**
Create new request with parameters. See documentation for methods here https://vk.com/dev/methods
@param method API-method name, e.g. audio.get
@param parameters method parameters
@param httpMethod HTTP method for execution, e.g. GET, POST
@return Complete request class for execute or configure method
*/
+ (VKRequest *)requestWithMethod:(NSString *)method
andParameters:(NSDictionary *)parameters
andHttpMethod:(NSString *)httpMethod;
/**
Uploads photo for wall post
@param image image used for saving to post
@param parameters parameters for image to be uploaded
@param userId ID of user on which wall image should be posted (or nil)
@param groupId ID of group (without minus sign) on which wall image should be posted (or nil)
*/
+ (VKRequest *)uploadWallPhotoRequest:(UIImage *)image
parameters:(VKImageParameters *)parameters
userId:(NSInteger)userId
groupId:(NSInteger)groupId;
/**
Uploads photo in user or group album
@param image image used for saving to post
@param parameters parameters for image to be uploaded
@param albumId target album ID. Required
@param groupId target group ID (positive). May be nil
*/
+ (VKRequest *)uploadAlbumPhotoRequest:(UIImage *)image
parameters:(VKImageParameters *)parameters
albumId:(NSInteger)albumId
groupId:(NSInteger)groupId;
/**
Uploads photo for messaging
@param image image used for saving to post
@param parameters parameters for image to be uploaded
@param albumId target album ID. Required
@param groupId target group ID (positive). May be nil
*/
+ (VKRequest *)uploadMessagePhotoRequest:(UIImage *)image
parameters:(VKImageParameters *)parameters;
@end

View File

@ -1,73 +0,0 @@
//
// VKApiBase.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 <Foundation/Foundation.h>
#import "VKRequest.h"
#import "VKApiConst.h"
#import "VKObject.h"
/**
* Basic class for all API-requests builders (parts)
*/
@interface VKApiBase : VKObject {
@private
NSString *_methodGroup; ///< Selected methods group
}
/**
Return group name for current methods builder
@return name of methods group, e.g. users, wall, etc.
*/
- (NSString *)getMethodGroup;
/**
Builds request and return it for configure and loading
@param methodName Selected method name
@param methodParameters Selected method parameters
@return request to configure and load
*/
- (VKRequest *)prepareRequestWithMethodName:(NSString *)methodName
andParameters:(NSDictionary *)methodParameters;
/**
Builds request and return it for configure and loading
@param methodName Selected method name
@param methodParameters Selected method parameters
@param httpMethod HTTP method for loading request. E.g. GET or POST
@return request to configure and load
*/
- (VKRequest *)prepareRequestWithMethodName:(NSString *)methodName
andParameters:(NSDictionary *)methodParameters
andHttpMethod:(NSString *)httpMethod;
/**
Builds request and return it for configure and loading
@param methodName Selected method name
@param methodParameters Selected method parameters
@param httpMethod HTTP method for loading request. E.g. GET or POST
@param modelClass Class of model, based on VKApiObject, for model parsing
@return request to configure and load
*/
- (VKRequest *)prepareRequestWithMethodName:(NSString *)methodName
andParameters:(NSDictionary *)methodParameters
andHttpMethod:(NSString *)httpMethod
andClassOfModel:(Class)modelClass;
@end

View File

@ -1,34 +0,0 @@
//
// VKApiCaptcha.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 "VKApiBase.h"
/**
Methods for captcha work. Currently, it is 1 method for forcing captcha response
*/
@interface VKApiCaptcha : VKApiBase
/**
Returns error for captcha debugging
@return Request to load
*/
- (VKRequest *)force;
@end

View File

@ -1,116 +0,0 @@
//
// VKApiConst.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.
typedef NSString *VKDisplayType;
extern VKDisplayType const VK_DISPLAY_IOS;
extern VKDisplayType const VK_DISPLAY_MOBILE;
//Commons
extern NSString *const VK_ORIGINAL_CLIENT_BUNDLE;
extern NSString *const VK_ORIGINAL_HD_CLIENT_BUNDLE;
extern NSString *const VK_DEBUG_CLIENT_BUNDLE;
extern NSString *const VK_API_USER_ID;
extern NSString *const VK_API_USER_IDS;
extern NSString *const VK_API_FIELDS;
extern NSString *const VK_API_SORT;
extern NSString *const VK_API_OFFSET;
extern NSString *const VK_API_COUNT;
extern NSString *const VK_API_OWNER_ID;
//auth
extern NSString *const VK_API_LANG;
extern NSString *const VK_API_ACCESS_TOKEN;
extern NSString *const VK_API_SIG;
//get users
extern NSString *const VK_API_NAME_CASE;
extern NSString *const VK_API_ORDER;
//Get subscriptions
extern NSString *const VK_API_EXTENDED;
//Search
extern NSString *const VK_API_Q;
extern NSString *const VK_API_CITY;
extern NSString *const VK_API_COUNTRY;
extern NSString *const VK_API_HOMETOWN;
extern NSString *const VK_API_UNIVERSITY_COUNTRY;
extern NSString *const VK_API_UNIVERSITY;
extern NSString *const VK_API_UNIVERSITY_YEAR;
extern NSString *const VK_API_SEX;
extern NSString *const VK_API_STATUS;
extern NSString *const VK_API_AGE_FROM;
extern NSString *const VK_API_AGE_TO;
extern NSString *const VK_API_BIRTH_DAY;
extern NSString *const VK_API_BIRTH_MONTH;
extern NSString *const VK_API_BIRTH_YEAR;
extern NSString *const VK_API_ONLINE;
extern NSString *const VK_API_HAS_PHOTO;
extern NSString *const VK_API_SCHOOL_COUNTRY;
extern NSString *const VK_API_SCHOOL_CITY;
extern NSString *const VK_API_SCHOOL;
extern NSString *const VK_API_SCHOOL_YEAR;
extern NSString *const VK_API_RELIGION;
extern NSString *const VK_API_INTERESTS;
extern NSString *const VK_API_COMPANY;
extern NSString *const VK_API_POSITION;
extern NSString *const VK_API_GROUP_ID;
extern NSString *const VK_API_GROUP_IDS;
extern NSString *const VK_API_FRIENDS_ONLY;
extern NSString *const VK_API_FROM_GROUP;
extern NSString *const VK_API_MESSAGE;
extern NSString *const VK_API_ATTACHMENT;
extern NSString *const VK_API_ATTACHMENTS;
extern NSString *const VK_API_SERVICES;
extern NSString *const VK_API_SIGNED;
extern NSString *const VK_API_PUBLISH_DATE;
extern NSString *const VK_API_LAT;
extern NSString *const VK_API_LONG;
extern NSString *const VK_API_PLACE_ID;
extern NSString *const VK_API_POST_ID;
//Errors
extern NSString *const VK_API_ERROR_CODE;
extern NSString *const VK_API_ERROR_MSG;
extern NSString *const VK_API_ERROR_TEXT;
extern NSString *const VK_API_REQUEST_PARAMS;
//Captcha
extern NSString *const VK_API_CAPTCHA_IMG;
extern NSString *const VK_API_CAPTCHA_SID;
extern NSString *const VK_API_CAPTCHA_KEY;
extern NSString *const VK_API_REDIRECT_URI;
//Photos
extern NSString *const VK_API_PHOTO;
extern NSString *const VK_API_ALBUM_ID;
//Events
extern NSString *const VKCaptchaAnsweredEvent;
//Enums
typedef NS_ENUM(NSInteger, VKProgressType) {
VKProgressTypeUpload,
VKProgressTypeDownload
};

View File

@ -1,32 +0,0 @@
//
// VKApiFriends.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 "VKApiBase.h"
/**
Builds requests for API.users part
*/
@interface VKApiFriends : VKApiBase
- (VKRequest *)get;
- (VKRequest *)get:(NSDictionary *)params;
@end

View File

@ -1,18 +0,0 @@
//
// VKApiGroups.h
// sdk
//
// Created by Roman Truba on 16.07.14.
// Copyright (c) 2014 VK. All rights reserved.
//
#import "VKApiBase.h"
@interface VKApiGroups : VKApiBase
/**
https://vk.com/dev/groups.get
@param params use parameters from description with VK_API prefix, e.g. VK_API_GROUP_ID, VK_API_FIELDS
@return Request for load
*/
- (VKRequest *)getById:(NSDictionary *)params;
@end

View File

@ -1,33 +0,0 @@
//
// VKApiModels.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 suabstantial 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 "VKApiObjectArray.h"
#import "VKAudio.h"
#import "VKPhoto.h"
#import "VKLikes.h"
#import "VKUser.h"
#import "VKRelative.h"
#import "VKCounters.h"
#import "VKLikes.h"
#import "VKSchool.h"
#import "VKUniversity.h"
#import "VKGroup.h"

View File

@ -1,65 +0,0 @@
//
// VKApiObject.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 <objc/runtime.h>
#import "VKObject.h"
/**
Helps in objects parsing
*/
@interface VKPropertyHelper : VKObject
@property(nonatomic, readonly) NSString *propertyName;
@property(nonatomic, readonly) NSString *propertyClassName;
@property(nonatomic, readonly) Class propertyClass;
@property(nonatomic, readonly) BOOL isPrimitive;
@property(nonatomic, readonly) BOOL isModelsArray;
@property(nonatomic, readonly) BOOL isModel;
- (instancetype)initWith:(objc_property_t)prop;
@end
@protocol VKApiObject <NSObject>
+ (instancetype)createWithDictionary:(NSDictionary *)dict;
+ (instancetype)createWithArray:(NSArray *)array;
@end
/**
Basic class for API objects
*/
@interface VKApiObject : VKObject <VKApiObject>
/// If it possible, contains object fields from JSON as it is
@property(nonatomic, strong) NSDictionary *fields;
/**
Initialize object with API json dictionary. This method tries to set all known properties of current class from dictionare
@param dict API json dictionary
@return Initialized object
*/
- (instancetype)initWithDictionary:(NSDictionary *)dict;
/**
Serialize current object into dictionary
@return Key-value dictionary, contains current object
*/
- (NSDictionary *)serialize;
@end

View File

@ -1,80 +0,0 @@
//
// VKApiObjectArray.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 suabstantial 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 "VKApiObject.h"
/**
Base class for VK API arrays
*/
@interface VKApiObjectArray : VKApiObject <NSFastEnumeration>
/// Count of items in array
@property(nonatomic, readonly) NSUInteger count;
/// Parsed array items
@property(nonatomic, strong) NSMutableArray *items;
/**
Initialize object with API json dictionary. This method tries to set all known properties of current class from dictionary
@param dict API json dictionary
@param objectClass class of items inside of array
@return Initialized object
*/
- (instancetype)initWithDictionary:(NSDictionary *)dict objectClass:(Class)objectClass;
/**
Initialize object with API json array. This method tries to set all known properties of current class from array
@param array API json array
@param objectClass class of items inside of array
@return Initialized object
*/
- (instancetype)initWithArray:(NSArray *)array objectClass:(Class)objectClass;
/**
Initialize object with any array. items property is sets as passed array, count is a count of items in passed array
@param array API json array
@return Initialized object
*/
- (instancetype)initWithArray:(NSArray *)array;
/// Array funtions
- (id)objectAtIndex:(NSInteger)idx;
- (id)objectAtIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(10_8, 6_0);
- (NSEnumerator *)objectEnumerator;
- (NSEnumerator *)reverseObjectEnumerator;
- (void)addObject:(id)object;
- (void)removeObject:(id)object;
- (void)insertObject:(id)object atIndex:(NSUInteger)index;
- (id)firstObject;
- (id)lastObject;
- (void)serializeTo:(NSMutableDictionary *)dict withName:(NSString *)name;
- (Class)objectClass;
@end

View File

@ -1,72 +0,0 @@
//
// VKApiPhotos.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 "VKApiBase.h"
/**
Builds requests for API.photos part
*/
@interface VKApiPhotos : VKApiBase
/**
https://vk.com/dev/photos.getUploadServer
@param albumId album identifier (positive integer)
@return Request for load
*/
- (VKRequest *)getUploadServer:(NSInteger)albumId;
/**
https://vk.com/dev/photos.getUploadServer
@param albumId album identifier (positive integer)
@param groupId group identifier (positive integer)
@return Request for load
*/
- (VKRequest *)getUploadServer:(NSInteger)albumId andGroupId:(NSInteger)groupId;
/**
https://vk.com/dev/photos.getWallUploadServer
@return Request for load
*/
- (VKRequest *)getWallUploadServer;
/**
https://vk.com/dev/photos.getWallUploadServer
@param groupId group identifier (positive integer)
@return Request for load
*/
- (VKRequest *)getWallUploadServer:(NSInteger)groupId;
/**
https://vk.com/dev/photos.save
@param params params received after photo upload, with user id or group id
@return Request for load
*/
- (VKRequest *)save:(NSDictionary *)params;
/**
https://vk.com/dev/photos.saveWallPhoto
@param params params received after photo upload, with user id or group id
@return Request for load
*/
- (VKRequest *)saveWallPhoto:(NSDictionary *)params;
@end

View File

@ -1,87 +0,0 @@
//
// VKApiUsers.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 "VKApiBase.h"
/**
Builds requests for API.users part
*/
@interface VKApiUsers : VKApiBase
/**
Returns basic information about current user
@return Request for load
*/
- (VKRequest *)get;
/**
https://vk.com/dev/users.get
@param params use parameters from description with VK_API prefix, e.g. VK_API_USER_IDS, VK_API_FIELDS, VK_API_NAME_CASE
@return Request for load
*/
- (VKRequest *)get:(NSDictionary *)params;
/**
https://vk.com/dev/users.search
@param params use parameters from description with VK_API prefix, e.g. VK_API_Q, VK_API_CITY, VK_API_COUNTRY, etc.
@return Request for load
*/
- (VKRequest *)search:(NSDictionary *)params;
/**
https://vk.com/dev/users.isAppUser
@return Request for load
*/
- (VKRequest *)isAppUser;
/**
https://vk.com/dev/users.isAppUser
@param userID ID of user to check
@return Request for load
*/
- (VKRequest *)isAppUser:(NSInteger)userID;
/**
https://vk.com/dev/users.getSubscriptions
@return Request for load
*/
- (VKRequest *)getSubscriptions;
/**
https://vk.com/dev/users.getSubscriptions
@param params use parameters from description with VK_API prefix, e.g. VK_API_USER_ID, VK_API_EXTENDED, etc.
@return Request for load
*/
- (VKRequest *)getSubscriptions:(NSDictionary *)params;
/**
https://vk.com/dev/users.getFollowers
@return Request for load
*/
- (VKRequest *)getFollowers;
/**
https://vk.com/dev/users.getFollowers
@param params use parameters from description with VK_API prefix, e.g. VK_API_USER_ID, VK_API_OFFSET, etc.
@return Request for load
*/
- (VKRequest *)getFollowers:(NSDictionary *)params;
@end

View File

@ -1,35 +0,0 @@
//
// VKApiWall.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 "VKApiBase.h"
/**
Builds requests for API.wall part
*/
@interface VKApiWall : VKApiBase
/**
https://vk.com/dev/wall.post
@param params Use parameters from description with VK_API prefix
@return Request for execution
*/
- (VKRequest *)post:(NSDictionary *)params;
@end

View File

@ -1,63 +0,0 @@
//
// VKAuthorizeController.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 "VKSdk.h"
/**
Controller for authorization through webview (if VK app not available)
*/
@interface VKAuthorizeController : UIViewController <UIWebViewDelegate>
/**
Causes UIWebView in standard UINavigationController be presented in SDK delegate
@param appId Identifier of VK application
@param permissions Permissions that user specified for application
@param revoke If YES, user will see permissions list and allow to logout (if logged in already)
@param displayType Defines view of authorization screen
*/
+ (void)presentForAuthorizeWithAppId:(NSString *)appId
andPermissions:(NSArray *)permissions
revokeAccess:(BOOL)revoke
displayType:(VKDisplayType)displayType;
/**
Causes UIWebView in standard UINavigationController be presented for user validation
@param validationError validation error returned by API
*/
+ (void)presentForValidation:(VKError *)validationError;
/**
Builds url for oauth authorization
@param redirectUri uri for redirect
@param clientId id of your application
@param scope requested scope for application
@param revoke If YES, user will see permissions list and allow to logout (if logged in already)
@param display select display type
@return Complete url-string for grant authorization
*/
+ (NSString *)buildAuthorizationUrl:(NSString *)redirectUri
clientId:(NSString *)clientId
scope:(NSString *)scope
revoke:(BOOL)revoke
display:(VKDisplayType)display;
@end

View File

@ -1,66 +0,0 @@
//
// VKBatchRequest.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 "VKObject.h"
#import "VKRequest.h"
/**
Used for execution bunch of methods at time, and receive results of that methods in array
*/
@interface VKBatchRequest : VKObject {
@private
NSMutableArray *_requests;
NSMutableArray *_responses;
BOOL _canceled;
}
/// Specify completion block for request
@property(nonatomic, copy) void (^completeBlock)(NSArray *responses);
/// Specity error (HTTP or API) block for request.
@property(nonatomic, copy) void (^errorBlock)(NSError *error);
/**
Initializes batch processing with requests
@param firstRequest ,... A comma-separated list of requests should be loaded, ending with nil.
@return Prepared request
*/
- (instancetype)initWithRequests:(VKRequest *)firstRequest, ...NS_REQUIRES_NIL_TERMINATION;
/**
Initializes batch processing with requests array
@param requests Array of requests should be loaded.
@return Prepared request
*/
- (instancetype)initWithRequestsArray:(NSArray *)requests;
/**
Executes batch request
@param completeBlock will receive result of passed requests
@param errorBlock called if any request did fail
*/
- (void)executeWithResultBlock:(void (^)(NSArray *responses))completeBlock errorBlock:(void (^)(NSError *))errorBlock;
/**
Cancel current batch operation
*/
- (void)cancel;
@end

View File

@ -1,49 +0,0 @@
//
// VKBundle.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 "VKObject.h"
#define VKLocalizedString(s) [VKBundle localizedString:s]
#define VKImageNamed(s) [VKBundle vkLibraryImageNamed:s]
/**
Class for providing resources from VK SDK Bundle
*/
@interface VKBundle : VKObject
/**
Returns bundle for VK SDK (by default VKSdkResources)
@return Bundle object or nil
*/
+ (NSBundle *)vkLibraryResourcesBundle;
/**
Searches for image in main application bundle, then VK SDK bundle
@param name Name for image to find
@return Founded image object or nil, if file not found
*/
+ (UIImage *)vkLibraryImageNamed:(NSString *)name;
/**
* Returns localized string from VK bundle
*/
+ (NSString *)localizedString:(NSString *)string;
@end

View File

@ -1,41 +0,0 @@
//
// VKCaptchaView.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 "VKError.h"
extern CGFloat kCaptchaImageWidth;
extern CGFloat kCaptchaImageHeight;
extern CGFloat kCaptchaViewHeight;
/**
View for displaying captcha. Don't use it dirrectly. Use VKCaptchaViewController
*/
@interface VKCaptchaView : UIView
/**
Initializes view with captcha error
@param frame bounds of window where view will be displayed
@param captchaError error for request that causes captcha-check
*/
- (id)initWithFrame:(CGRect)frame andError:(VKError *)captchaError;
@end

View File

@ -1,45 +0,0 @@
//
// VKCaptchaViewController.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 "VKError.h"
/**
Controller fo displaying captcha.
*/
@interface VKCaptchaViewController : UIViewController {
@private
VKError *_captchaError;
}
/**
Initializes controller with captcha url
@param error error for request that causes captcha-check
@returns Prepared controller. Best way to use it - use presentIn: method
*/
+ (instancetype)captchaControllerWithError:(VKError *)error;
/**
Presents current view controller in another. Automatically hides when captcha was answered properly
@param viewController Parent view controller
*/
- (void)presentIn:(UIViewController *)viewController;
@end

View File

@ -1,47 +0,0 @@
//
// VKCounters.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 suabstantial 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 "VKApiObject.h"
@interface VKCounters : VKApiObject
@property(nonatomic, strong) NSNumber *friends;
@property(nonatomic, strong) NSNumber *messages;
@property(nonatomic, strong) NSNumber *photos;
@property(nonatomic, strong) NSNumber *videos;
@property(nonatomic, strong) NSNumber *notifications;
@property(nonatomic, strong) NSNumber *groups;
@property(nonatomic, strong) NSNumber *gifts;
@property(nonatomic, strong) NSNumber *events;
@property(nonatomic, strong) NSNumber *albums;
@property(nonatomic, strong) NSNumber *audios;
@property(nonatomic, strong) NSNumber *online_friends;
@property(nonatomic, strong) NSNumber *mutual_friends;
@property(nonatomic, strong) NSNumber *user_videos;
@property(nonatomic, strong) NSNumber *followers;
@property(nonatomic, strong) NSNumber *user_photos;
@property(nonatomic, strong) NSNumber *subscriptions;
@property(nonatomic, strong) NSNumber *documents;
@property(nonatomic, strong) NSNumber *topics;
@property(nonatomic, strong) NSNumber *pages;
@end

View File

@ -1,87 +0,0 @@
//
// VKError.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 <Foundation/Foundation.h>
#import "VKObject.h"
#import "VKApiConst.h"
static int const VK_API_ERROR = -101;
static int const VK_API_CANCELED = -102;
static int const VK_API_REQUEST_NOT_PREPARED = -103;
static int const VK_RESPONSE_STRING_PARSING_ERROR = -104;
@class VKRequest;
/**
Class for presenting VK SDK and VK API errors
*/
@interface VKError : VKObject
/// Contains system HTTP error
@property(nonatomic, strong) NSError *httpError;
/// Describes API error
@property(nonatomic, strong) VKError *apiError;
/// Request which caused error
@property(nonatomic, strong) VKRequest *request;
/// May contains such errors:\n <b>HTTP status code</b> if HTTP error occured;\n <b>VK_API_ERROR</b> if API error occured;\n <b>VK_API_CANCELED</b> if request was canceled;\n <b>VK_API_REQUEST_NOT_PREPARED</b> if error occured while preparing request;
@property(nonatomic, assign) NSInteger errorCode;
/// API error message
@property(nonatomic, strong) NSString *errorMessage;
/// Reason for authorization fail
@property(nonatomic, strong) NSString *errorReason;
// Localized error text from server if there is one
@property(nonatomic, strong) NSString *errorText;
/// API parameters passed to request
@property(nonatomic, strong) NSDictionary *requestParams;
/// Captcha identifier for captcha-check
@property(nonatomic, strong) NSString *captchaSid;
/// Image for captcha-check
@property(nonatomic, strong) NSString *captchaImg;
/// Redirection address if validation check required
@property(nonatomic, strong) NSString *redirectUri;
@property(nonatomic, strong) id json;
/**
Generate new error with code
@param errorCode positive if it's an HTTP error. Negative if it's API or SDK error
*/
+ (instancetype)errorWithCode:(NSInteger)errorCode;
/**
Generate API error from JSON
@param JSON Json description of VK API error
*/
+ (instancetype)errorWithJson:(id)JSON;
/**
Generate API error from HTTP-query
@param queryParams key-value parameters
*/
+ (instancetype)errorWithQuery:(NSDictionary *)queryParams;
/**
Repeats failed captcha request with user entered answer to captcha
@param userEnteredCode answer for captcha
*/
- (void)answerCaptcha:(NSString *)userEnteredCode;
@end

View File

@ -1,123 +0,0 @@
//
// VKGroup.h
// sdk
//
// Created by Roman Truba on 16.07.14.
// Copyright (c) 2014 VK. All rights reserved.
//
#import "VKApiObjectArray.h"
#import "VKUser.h"
@interface VKGeoPlace : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSString *title;
@property(nonatomic, strong) NSNumber *latitude;
@property(nonatomic, strong) NSNumber *longitude;
@property(nonatomic, strong) NSNumber *created;
@property(nonatomic, strong) NSString *icon;
@property(nonatomic, strong) NSNumber *group_id;
@property(nonatomic, strong) NSNumber *group_photo;
@property(nonatomic, strong) NSNumber *checkins;
@property(nonatomic, strong) NSNumber *updated;
@property(nonatomic, strong) NSNumber *type;
@property(nonatomic, strong) NSNumber *country;
@property(nonatomic, strong) NSString *city;
@property(nonatomic, strong) NSString *address;
@property(nonatomic, strong) NSNumber *showmap;
@end
@interface VKGroupContact : VKApiObject
@property(nonatomic, strong) NSNumber *user_id;
@property(nonatomic, strong) NSString *desc;
@property(nonatomic, strong) NSString *email;
@end
@interface VKGroupContacts : VKApiObjectArray
@end
@interface VKGroupLink : VKApiObject
@property(nonatomic, strong) NSString *url;
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSString *desc;
@property(nonatomic, strong) NSString *photo_50;
@property(nonatomic, strong) NSString *photo_100;
@end
@interface VKGroupLinks : VKApiObjectArray
@end
@interface VKGroup : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSString *screen_name;
/**
* является ли сообщество закрытым. Возможные значения:
* 0 открытое;
* 1 закрытое;
* 2 частное.
*/
@property(nonatomic, strong) NSNumber *is_closed;
/**
* тип сообщества:
* group группа;
* page публичная страница;
* event мероприятие.
*/
@property(nonatomic, strong) NSString *type;
@property(nonatomic, strong) NSNumber *is_admin;
/**
* полномочия текущего пользователя (если is_admin=1):
* 1 модератор;
* 2 редактор;
* 3 администратор.
*/
@property(nonatomic, strong) NSNumber *admin_level;
@property(nonatomic, strong) NSNumber *is_member;
@property(nonatomic, strong) VKCity *city;
@property(nonatomic, strong) VKCountry *country;
@property(nonatomic, strong) VKGeoPlace *place;
@property(nonatomic, strong) NSString *description;
@property(nonatomic, strong) NSString *wiki_page;
@property(nonatomic, strong) NSNumber *members_count;
@property(nonatomic, strong) VKCounters *counters;
@property(nonatomic, strong) NSNumber *start_date;
@property(nonatomic, strong) NSNumber *end_date;
@property(nonatomic, strong) NSNumber *finish_date;
@property(nonatomic, strong) NSNumber *can_post;
@property(nonatomic, strong) NSNumber *can_see_all_posts;
@property(nonatomic, strong) NSNumber *can_create_topic;
@property(nonatomic, strong) NSNumber *can_upload_doc;
@property(nonatomic, strong) NSString *activity;
@property(nonatomic, strong) NSString *status;
@property(nonatomic, strong) VKAudio *status_audio;
@property(nonatomic, strong) VKGroupContacts *contacts;
@property(nonatomic, strong) VKGroupLinks *links;
@property(nonatomic, strong) NSNumber *fixed_post;
@property(nonatomic, strong) NSNumber *verified;
@property(nonatomic, strong) NSString *site;
@property(nonatomic, strong) NSString *photo_50;
@property(nonatomic, strong) NSString *photo_100;
@property(nonatomic, strong) NSString *photo_200;
@property(nonatomic, strong) NSString *photo_max_orig;
@property(nonatomic, strong) NSNumber *is_request;
@property(nonatomic, strong) NSNumber *is_invite;
@property(nonatomic, strong) VKPhotoArray *photos;
@property(nonatomic, strong) NSNumber *photos_count;
@property(nonatomic, strong) NSNumber *invited_by;
@property(nonatomic, assign) NSInteger invite_state;
@property(nonatomic, strong) NSString *deactivated;
@property(nonatomic, strong) NSNumber *blacklisted;
@end
@interface VKGroups : VKApiObjectArray
@end

View File

@ -1,71 +0,0 @@
//
// VKImageParameters.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 "VKObject.h"
/**
Describes image representation type
*/
typedef enum VKImageType {
/// Sets jpeg representation of image
VKImageTypeJpg,
/// Sets png representation of image
VKImageTypePng
} VKImageType;
/**
Parameters used for uploading image into VK servers
*/
@interface VKImageParameters : VKObject
/// Type of image compression. Can be <b>VKImageTypeJpg</b> or <b>VKImageTypePng</b>.
@property(nonatomic, assign) VKImageType imageType;
/// Quality used for jpg compression. From 0.0 to 1.0
@property(nonatomic, assign) CGFloat jpegQuality;
/**
Creates new parameters instance for png image.
@return New instance of parameters
*/
+ (instancetype)pngImage;
/**
Creates new parameters instance for jpeg image.
@param quality Used only for <b>VKImageTypeJpg</b> representation. From 0.0 to 1.0
@return New instance with passed parameters
*/
+ (instancetype)jpegImageWithQuality:(float)quality;
/**
Return file extension for selected type
@return png for VKImageTypePng image type, jpg for VKImageTypeJpg image type
*/
- (NSString *)fileExtension;
/**
Return mime type
@return parameters mime type
*/
- (NSString *)mimeType;
@end

View File

@ -1,36 +0,0 @@
//
// VKLikes.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 <Foundation/Foundation.h>
#import "VKApiObject.h"
/**
Likes type of VK API
*/
@interface VKLikes : VKApiObject
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@property(nonatomic, strong) NSNumber *count;
@property(nonatomic, strong) NSNumber *user_likes;
@property(nonatomic, strong) NSNumber *can_like;
@property(nonatomic, strong) NSNumber *can_publish;
#endif
@end

View File

@ -1,28 +0,0 @@
//
// VKObject.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 <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface VKObject : NSObject
@end

View File

@ -1,42 +0,0 @@
//
// VKOperation.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 <Foundation/Foundation.h>
typedef enum {
VKOperationPausedState = -1,
VKOperationReadyState = 1,
VKOperationExecutingState = 2,
VKOperationFinishedState = 3,
} VKOperationState;
/**
Basic class for operations
*/
@interface VKOperation : NSOperation
/// This operation state. Value from VKOperationState enum
@property(readwrite, nonatomic, assign) VKOperationState state;
/// Operation working lock
@property(readwrite, nonatomic, strong) NSRecursiveLock *lock;
/// Sets dispatch queue for returning result
@property(nonatomic, assign) dispatch_queue_t responseQueue;
@end

View File

@ -1,44 +0,0 @@
//
// VKPermissions.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 <Foundation/Foundation.h>
extern NSString *const VK_PER_NOTIFY;
extern NSString *const VK_PER_FRIENDS;
extern NSString *const VK_PER_PHOTOS;
extern NSString *const VK_PER_AUDIO;
extern NSString *const VK_PER_VIDEO;
extern NSString *const VK_PER_DOCS;
extern NSString *const VK_PER_NOTES;
extern NSString *const VK_PER_PAGES;
extern NSString *const VK_PER_STATUS;
extern NSString *const VK_PER_WALL;
extern NSString *const VK_PER_GROUPS;
extern NSString *const VK_PER_MESSAGES;
extern NSString *const VK_PER_NOTIFICATIONS;
extern NSString *const VK_PER_STATS;
extern NSString *const VK_PER_ADS;
extern NSString *const VK_PER_OFFLINE;
extern NSString *const VK_PER_NOHTTPS;
extern NSString *const VK_PER_EMAIL;
NSArray *parseVkPermissionsFromInteger(int permissionsValue);

View File

@ -1,55 +0,0 @@
//
// VKPhoto.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 "VKApiObject.h"
#import "VKApiObjectArray.h"
#import "VKPhotoSize.h"
@class VKLikes;
/**
Photo type of VK API. See descriptions here https://vk.com/dev/photo
*/
@interface VKPhoto : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSNumber *album_id;
@property(nonatomic, strong) NSNumber *owner_id;
@property(nonatomic, strong) NSString *photo_75;
@property(nonatomic, strong) NSString *photo_130;
@property(nonatomic, strong) NSString *photo_604;
@property(nonatomic, strong) NSString *photo_807;
@property(nonatomic, strong) NSString *photo_1280;
@property(nonatomic, strong) NSString *photo_2560;
@property(nonatomic, strong) NSNumber *width;
@property(nonatomic, strong) NSNumber *height;
@property(nonatomic, strong) NSString *text;
@property(nonatomic, strong) NSNumber *date;
@property(nonatomic, strong) VKPhotoSizes *sizes;
@property(nonatomic, readonly) NSString *attachmentString;
@end
/**
Array of API photos objects
*/
@interface VKPhotoArray : VKApiObjectArray
@end

View File

@ -1,20 +0,0 @@
//
// VKPhotoSize.h
// sdk
//
// Created by Roman Truba on 11.08.14.
// Copyright (c) 2014 VK. All rights reserved.
//
#import "VKApiObjectArray.h"
@interface VKPhotoSize : VKApiObject
@property(nonatomic, readwrite, copy) NSString *src;
@property(nonatomic, readwrite, copy) NSNumber *width;
@property(nonatomic, readwrite, copy) NSNumber *height;
@property(nonatomic, readwrite, copy) NSString *type;
@end
@interface VKPhotoSizes : VKApiObjectArray
- (VKPhotoSize *)photoSizeWithType:(NSString *)type;
@end

View File

@ -1,34 +0,0 @@
//
// VKRelative.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 suabstantial 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 "VKApiObjectArray.h"
@interface VKRelative : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSString *type;
@end
@interface VKRelativities : VKApiObjectArray
@end

View File

@ -1,181 +0,0 @@
//
// VKRequest.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 <Foundation/Foundation.h>
#import "VKResponse.h"
#import "VKApiConst.h"
#import "VKObject.h"
/**
Creates and debug timings for VKRequest
*/
@interface VKRequestTiming : VKObject
/// Date of request start
@property(nonatomic, strong) NSDate *startTime;
/// Date of request finished (after all operations)
@property(nonatomic, strong) NSDate *finishTime;
/// Interval of networking load time
@property(nonatomic, assign) NSTimeInterval loadTime;
/// Interval of model parsing time
@property(nonatomic, assign) NSTimeInterval parseTime;
/// Total time, as difference (finishTime - startTime)
@property(nonatomic, readonly) NSTimeInterval totalTime;
@end
/**
Class for execution API-requests
*/
@interface VKRequest : VKObject
/// Specify language for API request
@property(nonatomic, copy) NSString *preferredLang;
/// Specify progress for uploading or downloading. Useless for text requests (because gzip encoding bytesTotal will always return -1)
@property(nonatomic, copy) void (^progressBlock)(VKProgressType progressType, long long bytesLoaded, long long bytesTotal);
/// Specify completion block for request
@property(nonatomic, copy) void (^completeBlock)(VKResponse *response);
/// Specity error (HTTP or API) block for request.
@property(nonatomic, copy) void (^errorBlock)(NSError *error);
/// Specify attempts for request loading if caused HTTP-error. 0 for infinite
@property(nonatomic, assign) int attempts;
/// Use HTTPS requests (by default is YES). If http-request is impossible (user denied no https access), SDK will load https version
@property(nonatomic, assign) BOOL secure;
/// Sets current system language as default for API data
@property(nonatomic, assign) BOOL useSystemLanguage;
/// Set to NO if you don't need automatic model parsing
@property(nonatomic, assign) BOOL parseModel;
/// Set to YES if you need info about request timing
@property(nonatomic, assign) BOOL debugTiming;
/// Timeout for this request
@property(nonatomic, assign) NSInteger requestTimeout;
/// Sets dispatch queue for returning result
@property(nonatomic, assign) dispatch_queue_t responseQueue;
/// Set to YES if you need to freeze current thread for response
@property(nonatomic, assign) BOOL waitUntilDone;
/// Returns method for current request, e.g. users.get
@property(nonatomic, readonly) NSString *methodName;
/// Returns HTTP-method for current request
@property(nonatomic, readonly) NSString *httpMethod;
/// Returns list of method parameters (without common parameters)
@property(nonatomic, readonly) NSDictionary *methodParameters;
/// Returns http operation that can be enqueued
@property(nonatomic, readonly) NSOperation *executionOperation;
/// Returns info about request timings
@property(nonatomic, readonly) VKRequestTiming *requestTiming;
/// Return YES if current request was started
@property(nonatomic, readonly) BOOL isExecuting;
///-------------------------------
/// @name Preparing requests
///-------------------------------
/**
Creates new request with parameters. See documentation for methods here https://vk.com/dev/methods
@param method API-method name, e.g. audio.get
@param parameters method parameters
@param httpMethod HTTP method for execution, e.g. GET, POST
@return Complete request object for execute or configure method
*/
+ (instancetype)requestWithMethod:(NSString *)method
andParameters:(NSDictionary *)parameters
andHttpMethod:(NSString *)httpMethod;
/**
Creates new request with parameters. See documentation for methods here https://vk.com/dev/methods
@param method API-method name, e.g. audio.get
@param parameters method parameters
@param httpMethod HTTP method for execution, e.g. GET, POST
@param modelClass class for automatic parse
@return Complete request object for execute or configure method
*/
+ (instancetype)requestWithMethod:(NSString *)method
andParameters:(NSDictionary *)parameters
andHttpMethod:(NSString *)httpMethod
classOfModel:(Class)modelClass;
/**
Creates new request for upload image to url
@param url url for upload, which was received from special methods
@param photoObjects VKPhoto object describes photos
@return Complete request object for execute
*/
+ (instancetype)photoRequestWithPostUrl:(NSString *)url
withPhotos:(NSArray *)photoObjects;
/**
Prepares NSURLRequest and returns prepared url request for current vkrequest
@return Prepared request used for loading
*/
- (NSURLRequest *)getPreparedRequest;
///-------------------------------
/// @name Execution
///-------------------------------
/**
Executes that request, and returns result to blocks
@param completeBlock called if there were no HTTP or API errors, returns execution result.
@param errorBlock called immediately if there was API error, or after <b>attempts</b> tries if there was an HTTP error
*/
- (void)executeWithResultBlock:(void (^)(VKResponse *response))completeBlock
errorBlock:(void (^)(NSError *error))errorBlock;
/**
Register current request for execute after passed request, if passed request is successful. If it's not, errorBlock will be called.
@param request after which request must be called that request
@param completeBlock called if there were no HTTP or API errors, returns execution result.
@param errorBlock called immediately if there was API error, or after <b>attempts</b> tries if there was an HTTP error
*/
- (void)executeAfter:(VKRequest *)request
withResultBlock:(void (^)(VKResponse *response))completeBlock
errorBlock:(void (^)(NSError *error))errorBlock;
/**
Starts loading of prepared request. You can use it instead of executeWithResultBlock
*/
- (void)start;
/**
Creates loading operation for this request
*/
- (NSOperation*) createExecutionOperation;
/**
Repeats this request with initial parameters and blocks.
Used attempts will be set to 0.
*/
- (void)repeat;
/**
Cancel current request. Result will be not passed. errorBlock will be called with error code
*/
- (void)cancel;
///-------------------------------
/// @name Operating with parameters
///-------------------------------
/**
Adds additional parameters to that request
@param extraParameters parameters supposed to be added
*/
- (void)addExtraParameters:(NSDictionary *)extraParameters;
@end

View File

@ -1,41 +0,0 @@
//
// VKResponse.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 "VKObject.h"
@class VKRequest;
/**
Class presenting answer from API
*/
@interface VKResponse : VKObject
/// Request which caused response
@property(nonatomic, weak) VKRequest *request;
/// Json content of response. Can be array or object.
@property(nonatomic, strong) id json;
/// Model parsed from response
@property(nonatomic, strong) id parsedModel;
/// Original response string from server
@property(nonatomic, copy) NSString *responseString;
@end

View File

@ -1,43 +0,0 @@
//
// VKSchool.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 suabstantial 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 "VKApiObjectArray.h"
@interface VKSchool : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSNumber *country;
@property(nonatomic, strong) NSNumber *city;
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSNumber *year_from;
@property(nonatomic, strong) NSNumber *year_to;
@property(nonatomic, strong) NSNumber *year_graduated;
@property(nonatomic, strong) NSString *Mclass;
@property(nonatomic, strong) NSString *speciality;
@property(nonatomic, strong) NSNumber *type;
@property(nonatomic, strong) NSString *type_str;
@end
@interface VKSchools : VKApiObjectArray
@end

View File

@ -1,299 +0,0 @@
//
// VKSdk.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.
//
// --------------------------------------------------------------------------------
//
// Modified by Ruslan Kavetsky
#import <Foundation/Foundation.h>
#import "VKAccessToken.h"
#import "VKPermissions.h"
#import "VKUtil.h"
#import "VKApi.h"
#import "VKApiConst.h"
#import "VKSdkVersion.h"
#import "VKCaptchaViewController.h"
#import "VKRequest.h"
#import "VKBatchRequest.h"
#import "NSError+VKError.h"
#import "VKApiModels.h"
#import "VKUploadImage.h"
#import "VKShareDialogController.h"
#import "VKActivity.h"
/**
Global SDK events delegate protocol.
You should implement it, typically as main view controller or as application delegate.
*/
@protocol VKSdkDelegate <NSObject>
@required
/**
Calls when user must perform captcha-check
@param captchaError error returned from API. You can load captcha image from <b>captchaImg</b> property.
After user answered current captcha, call answerCaptcha: method with user entered answer.
*/
- (void)vkSdkNeedCaptchaEnter:(VKError *)captchaError;
/**
Notifies delegate about existing token has expired
@param expiredToken old token that has expired
*/
- (void)vkSdkTokenHasExpired:(VKAccessToken *)expiredToken;
/**
Notifies delegate about user authorization cancelation
@param authorizationError error that describes authorization error
*/
- (void)vkSdkUserDeniedAccess:(VKError *)authorizationError;
/**
Pass view controller that should be presented to user. Usually, it's an authorization window
@param controller view controller that must be shown to user
*/
- (void)vkSdkShouldPresentViewController:(UIViewController *)controller;
/**
Notifies delegate about receiving new access token
@param newToken new token for API requests
*/
- (void)vkSdkReceivedNewToken:(VKAccessToken *)newToken;
@optional
/**
Notifies delegate about receiving predefined token (initializeWithDelegate:andAppId:andCustomToken: token is not nil)
@param token used token for API requests
*/
- (void)vkSdkAcceptedUserToken:(VKAccessToken *)token;
/**
Notifies delegate about receiving new access token
@param newToken new token for API requests
*/
- (void)vkSdkRenewedToken:(VKAccessToken *)newToken;
/**
Requests delegate about redirect to Safari during authorization procedure.
By default returns YES
*/
- (BOOL)vkSdkAuthorizationAllowFallbackToSafari;
/**
Applications which not using VK SDK as main way of authentication should override this method and return NO.
By default returns YES.
*/
- (BOOL)vkSdkIsBasicAuthorization;
/**
* Called when a controller presented by SDK will be dismissed
*/
- (void)vkSdkWillDismissViewController:(UIViewController *)controller;
/**
* Called when a controller presented by SDK did dismiss
*/
- (void)vkSdkDidDismissViewController:(UIViewController *)controller;
@end
/**
Entry point for using VK sdk. Should be initialized at application start
*/
@interface VKSdk : NSObject
///-------------------------------
/// @name Delegate
///-------------------------------
/// Responder for global SDK events
@property(nonatomic, weak) id <VKSdkDelegate> delegate;
/// Returns a last app_id used for initializing the SDK
@property(nonatomic, readonly, copy) NSString *currentAppId;
/// API version for making requests
@property(nonatomic, readonly, copy) NSString *apiVersion;
///-------------------------------
/// @name Initialization
///-------------------------------
/**
Returns instance of VK sdk. You should never use that directly
*/
+ (instancetype)instance;
/**
Initialize SDK with responder for global SDK events
@param delegate responder for global SDK events
@param appId your application id (if you haven't, you can create standalone application here https://vk.com/editapp?act=create )
*/
+ (void)initializeWithDelegate:(id <VKSdkDelegate>)delegate
andAppId:(NSString *)appId;
/**
Initialize SDK with responder for global SDK events and custom token key
(e.g., saved from other source or for some test reasons)
@param delegate responder for global SDK events
@param appId your application id (if you haven't, you can create standalone application here https://vk.com/editapp?act=create )
@param token custom-created access token
*/
+ (void)initializeWithDelegate:(id <VKSdkDelegate>)delegate
andAppId:(NSString *)appId
andCustomToken:(VKAccessToken *)token DEPRECATED_ATTRIBUTE;
/**
Initialize SDK with responder for global SDK events
@param delegate responder for global SDK events
@param appId your application id (if you haven't, you can create standalone application here https://vk.com/editapp?act=create )
@param apiVersion if you want to use latest API version, pass required version here
*/
+ (void)initializeWithDelegate:(id <VKSdkDelegate>)delegate
andAppId:(NSString *)appId
apiVersion:(NSString *)version;
///-------------------------------
/// @name Authentication in VK
///-------------------------------
/**
Starts authorization process. If VKapp is available in system, it will opens and requests access from user.
Otherwise Mobile Safari will be opened for access request.
@param permissions array of permissions for your applications. All permissions you can
*/
+ (void)authorize:(NSArray *)permissions;
/**
Starts authorization process. If VKapp is available in system, it will opens and requests access from user.
Otherwise Mobile Safari will be opened for access request.
@param permissions Array of permissions for your applications. All permissions you can
@param revokeAccess If YES, user will allow logout (to change user)
*/
+ (void)authorize:(NSArray *)permissions revokeAccess:(BOOL)revokeAccess;
/**
Starts authorization process.
@param permissions Array of permissions for your applications. All permissions you can
@param revokeAccess If YES, user will allow logout (to change user)
@param forceOAuth If YES, SDK will use only oauth authorization through mobile safari. Otherwise, it will try to authorize through VK application
*/
+ (void)authorize:(NSArray *)permissions revokeAccess:(BOOL)revokeAccess forceOAuth:(BOOL)forceOAuth;
/**
Starts authorization process.
@param permissions Array of permissions for your applications. All permissions you can
@param revokeAccess If YES, user will allow logout (to change user)
@param forceOAuth If YES, SDK will use only oauth authorization through mobile safari. Otherwise, it will try to authorize through VK application
@param inApp If YES, SDK will try to open modal window with webview to authorize. This method strongly not recommended as user should enter his account data in your application. For use modal view add VKSdkResources.bundle to your project.
*/
+ (void)authorize:(NSArray *)permissions revokeAccess:(BOOL)revokeAccess forceOAuth:(BOOL)forceOAuth inApp:(BOOL)inApp;
/**
Starts authorization process.
@param permissions Array of permissions for your applications. All permissions you can
@param revokeAccess If YES, user will allow logout (to change user)
@param forceOAuth If YES, SDK will use only oauth authorization through mobile safari. Otherwise, it will try to authorize through VK application
@param inApp If YES, SDK will try to open modal window with webview to authorize. This method strongly not recommended as user should enter his account data in your application. For use modal view add VKSdkResources.bundle to your project.
@param displayType Defines view of authorization screen
*/
+ (void)authorize:(NSArray *)permissions revokeAccess:(BOOL)revokeAccess forceOAuth:(BOOL)forceOAuth inApp:(BOOL)inApp display:(VKDisplayType)displayType;
///-------------------------------
/// @name Access token methods
///-------------------------------
/**
Set API token to passed
@param token token must be used for API requests
*/
+ (void)setAccessToken:(VKAccessToken *)token;
/**
Notify SDK that user denied login
@param error Descripbes error which was happends while trying to recieve token
*/
+ (void)setAccessTokenError:(VKError *)error;
/**
Returns token for API requests
@return Received access token or nil, if user not yet authorized
*/
+ (VKAccessToken *)getAccessToken;
///-------------------------------
/// @name Other methods
///-------------------------------
/**
Checks passed URL for access token
@param passedUrl url from external application
@param sourceApplication source application
@return YES if parsed successfully
*/
+ (BOOL)processOpenURL:(NSURL *)passedUrl fromApplication:(NSString *)sourceApplication;
/**
Handle `[AppDelegate applicationDidBecomeActive]` for cases like user starts authorization process but switch back to app without giving access
*/
+ (void)handleDidBecomeActive;
/**
* Checks if somebody logged in with SDK
*/
+ (BOOL)isLoggedIn;
/**
Make try to read token from defaults and start session again.
*/
+ (BOOL)wakeUpSession;
/**
Try to read token from defaults, then check for required permissions.
*/
+ (BOOL)wakeUpSession:(NSArray *)permissions;
/**
Forces logout using OAuth (with VKAuthorizeController). Removes all cookies for *.vk.com.
Has no effect for logout in VK app
*/
+ (void)forceLogout;
/**
* Checks if there is some application, which may process authorize url
*/
+ (BOOL)vkAppMayExists;
/**
Check existing permissions
@param permissions array of permissions you want to check
*/
+ (BOOL)hasPermissions:(NSArray *)permissions;
/**
Enables or disables scheduling for requests
*/
+ (void)setSchedulerEnabled:(BOOL)enabled;
// Deny allocating more SDK
+ (instancetype)alloc __attribute__((unavailable("alloc not available, call initialize: or instance instead")));
- (instancetype)init __attribute__((unavailable("init not available, call initialize: or instance instead")));
+ (instancetype)new __attribute__((unavailable("new not available, call initialize: or instance instead")));
@end

View File

@ -1,24 +0,0 @@
//
// VKSdkVersion.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.
#define VK_SDK_VERSION @"1.2.1"
#define VK_SDK_API_VERSION @"5.23"

View File

@ -1,79 +0,0 @@
//
// VKShareDialogController.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 "VKObject.h"
#import "VKUploadImage.h"
typedef NS_ENUM(NSInteger, VKShareDialogControllerResult) {
VKShareDialogControllerResultCancelled,
VKShareDialogControllerResultDone
};
/*
* Link representation for share dialog
*/
@interface VKShareLink : VKObject
/// Use that field for present link description in share dialog interface
@property(nonatomic, copy) NSString *title;
/// Use that field for pass real link to VK. Host of the link will be displayed in share dialog
@property(nonatomic, copy) NSURL *link;
- (instancetype)initWithTitle:(NSString *)title link:(NSURL *)link;
@end
/**
* Creates dialog for sharing some information from your app to user wall in VK
*/
@interface VKShareDialogController : UIViewController
/// Array of prepared VKUploadImage objects for upload and share. User can remove any attachment
@property(nonatomic, strong) NSArray *uploadImages;
/// Photos already uploaded to VK. That is array of photos ids: @[ownerid_photoid, ...];
@property(nonatomic, strong) NSArray *vkImages;
/// Links attachment for new post
@property(nonatomic, strong) VKShareLink *shareLink;
/// Text to share. User can change it
@property(nonatomic, copy) NSString *text;
/// Put only needed scopes into that array. By default equals @[VK_PER_WALL,VK_PER_PHOTOS]
@property(nonatomic, strong) NSArray *requestedScope;
/// You can receive information about sharing state
@property(nonatomic, copy) void (^completionHandler)(VKShareDialogControllerResult result);
/// Flag meaning the share viewcontroller manage it's presentation state by itself
@property(nonatomic, assign) BOOL dismissAutomatically;
/// Force share dialog to use in-app webview authorization
@property(nonatomic, assign) BOOL authorizeInApp;
/**
Correctly presents current view controller in another
@param viewController Parent view controller
*/
- (void)presentIn:(UIViewController *)viewController __deprecated;
@end

View File

@ -1,42 +0,0 @@
//
// VKUniversity.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 suabstantial 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 "VKApiObjectArray.h"
@interface VKUniversity : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSNumber *country;
@property(nonatomic, strong) NSNumber *city;
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSNumber *faculty;
@property(nonatomic, strong) NSString *faculty_name;
@property(nonatomic, strong) NSNumber *chair;
@property(nonatomic, strong) NSString *chair_name;
@property(nonatomic, strong) NSNumber *graduation;
@property(nonatomic, strong) NSString *education_form;
@property(nonatomic, strong) NSString *education_status;
@end
@interface VKUniversities : VKApiObjectArray
@end

View File

@ -1,52 +0,0 @@
//
// VKUploadImage.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 "VKImageParameters.h"
/**
Contains image data with image description
*/
@interface VKUploadImage : VKObject
/// Bytes of image
@property(nonatomic, strong) NSData *imageData;
/// Source image
@property(nonatomic, strong) UIImage *sourceImage;
/// Image basic info
@property(nonatomic, strong) VKImageParameters *parameters;
/**
Create new image data representation used for upload
@param data Bytes of image
@param params Image basic info
@return Prepared object for using in upload
*/
+ (instancetype)uploadImageWithData:(NSData *)data andParams:(VKImageParameters *)params;
/**
Create new image representation used for upload
@param image Source image
@param params Image basic info
@return Prepared object for using in upload
*/
+ (instancetype)uploadImageWithImage:(UIImage *)image andParams:(VKImageParameters *)params;
@end

View File

@ -1,28 +0,0 @@
//
// VKUploadMessagesPhotoRequest.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 "VKUploadPhotoBase.h"
@interface VKUploadMessagesPhotoRequest : VKUploadPhotoBase
@end

View File

@ -1,52 +0,0 @@
//
// VKPhotoUploadBase.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 "VKRequest.h"
#import "VKImageParameters.h"
#import "VKOperation.h"
/**
Provides common part of photo upload process
*/
@interface VKUploadPhotoBase : VKRequest
/// ID of album to upload
@property(nonatomic, assign) NSInteger albumId;
/// ID of group to upload
@property(nonatomic, assign) NSInteger groupId;
/// ID of user wall to upload
@property(nonatomic, assign) NSInteger userId;
/// Passed image parameters
@property(nonatomic, strong) VKImageParameters *imageParameters;
/// Image to upload
@property(nonatomic, strong) UIImage *image;
- (instancetype)initWithImage:(UIImage *)image parameters:(VKImageParameters *)parameters;
@end
/**
Special operation for execute upload
*/
@interface VKUploadImageOperation : VKOperation
+ (instancetype)operationWithUploadRequest:(VKUploadPhotoBase *)request;
@end

View File

@ -1,39 +0,0 @@
//
// VKUploadPhotoRequest.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 "VKUploadPhotoBase.h"
/**
Special request for upload photos to specified album
*/
@interface VKUploadPhotoRequest : VKUploadPhotoBase
/**
Initializes photo upload request with parameters
@param image Image to upload
@param parameters image parameters for upload
@param albumId ID of album for photo
@param groupId ID of group (without minus sign) on which wall image should be posted (or nil)
@return Completed request for executing
*/
- (instancetype)initWithImage:(UIImage *)image parameters:(VKImageParameters *)parameters albumId:(NSInteger)albumId groupId:(NSInteger)groupId;
@end

View File

@ -1,38 +0,0 @@
//
// VKUploadWallPhotoRequest.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 "VKUploadPhotoBase.h"
/**
Special request for upload single photo to user wall
*/
@interface VKUploadWallPhotoRequest : VKUploadPhotoBase
/**
Initializes photo upload request with parameters
@param image Image to upload
@param parameters image parameters for upload
@param userId ID of user on which wall image should be posted (or nil)
@param groupId ID of group (without minus sign) on which wall image should be posted (or nil)
@return Completed request for executing
*/
- (instancetype)initWithImage:(UIImage *)image parameters:(VKImageParameters *)parameters userId:(NSInteger)userId groupId:(NSInteger)groupId;
@end

View File

@ -1,183 +0,0 @@
//
// VKUser.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 <Foundation/Foundation.h>
#import "VKApiObject.h"
#import "VKApiObjectArray.h"
#import "VKAudio.h"
#import "VKCounters.h"
#import "VKPhoto.h"
#import "VKSchool.h"
#import "VKUniversity.h"
#import "VKRelative.h"
@interface VKGeoObject : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSString *title;
@end
@interface VKCity : VKGeoObject
@end
@interface VKCountry : VKGeoObject
@end
@interface VKPersonal : VKObject
@property(nonatomic, strong) NSArray *langs;
@property(nonatomic, strong) NSNumber *political;
@property(nonatomic, strong) NSString *religion;
@property(nonatomic, strong) NSNumber *life_main;
@property(nonatomic, strong) NSNumber *people_main;
@property(nonatomic, strong) NSString *inspired_by;
@property(nonatomic, strong) NSNumber *smoking;
@property(nonatomic, strong) NSNumber *alcohol;
@end
/**
User type of VK API. See descriptions here https://vk.com/dev/fields
*/
@interface VKBanInfo : VKApiObject
/// идентификатор администратора, который добавил пользователя в черный список;
@property(nonatomic, strong) NSNumber *admin_id;
/// дата добавления пользователя в черный список;
@property(nonatomic, strong) NSNumber *date;
/// причина добавления пользователя в черный список;
@property(nonatomic, strong) NSNumber *reason;
/// текст комментария
@property(nonatomic, strong) NSString *comment;
/// дата, когда пользователь будет разбанен.
@property(nonatomic, strong) NSNumber *end_date;
@end
@interface VKLastSeen : VKApiObject
@property(nonatomic, strong) NSNumber *time;
@property(nonatomic, strong) NSNumber *platform;
@end
@interface VKExports : VKApiObject
@property(nonatomic, strong) NSNumber *twitter;
@property(nonatomic, strong) NSNumber *facebook;
@property(nonatomic, strong) NSNumber *livejournal;
@property(nonatomic, strong) NSNumber *instagram;
@end
@interface VKUser : VKApiObject
@property(nonatomic, strong) NSNumber *id;
@property(nonatomic, strong) NSString *first_name;
@property(nonatomic, strong) NSString *last_name;
@property(nonatomic, strong) NSString *first_name_acc;
@property(nonatomic, strong) NSString *last_name_acc;
@property(nonatomic, strong) NSString *first_name_gen;
@property(nonatomic, strong) NSString *last_name_gen;
@property(nonatomic, strong) NSString *first_name_dat;
@property(nonatomic, strong) NSString *last_name_dat;
@property(nonatomic, strong) NSString *first_name_ins;
@property(nonatomic, strong) NSString *last_name_ins;
@property(nonatomic, strong) VKPersonal *personal;
@property(nonatomic, strong) NSNumber *sex;
@property(nonatomic, strong) NSNumber *invited_by;
@property(nonatomic, strong) NSNumber *online;
@property(nonatomic, strong) NSString *bdate;
@property(nonatomic, strong) VKCity *city;
@property(nonatomic, strong) VKCountry *country;
@property(nonatomic, strong) NSMutableArray *lists;
@property(nonatomic, strong) NSString *screen_name;
@property(nonatomic, strong) NSNumber *has_mobile;
@property(nonatomic, strong) NSNumber *rate;
@property(nonatomic, strong) NSString *mobile_phone;
@property(nonatomic, strong) NSString *home_phone;
@property(nonatomic, assign) BOOL can_post;
@property(nonatomic, assign) BOOL can_see_all_posts;
@property(nonatomic, strong) NSString *status;
@property(nonatomic, strong) VKAudio *status_audio;
@property(nonatomic, assign) bool status_loaded;
@property(nonatomic, strong) VKLastSeen *last_seen;
@property(nonatomic, strong) NSNumber *relation;
@property(nonatomic, strong) VKUser *relation_partner;
@property(nonatomic, strong) VKCounters *counters;
@property(nonatomic, strong) NSString *nickname;
@property(nonatomic, strong) VKExports *exports;
@property(nonatomic, strong) NSNumber *wall_comments;
@property(nonatomic, assign) BOOL can_write_private_message;
@property(nonatomic, strong) NSString *phone;
@property(nonatomic, strong) NSNumber *online_mobile;
@property(nonatomic, strong) NSNumber *faculty;
@property(nonatomic, strong) NSNumber *university;
@property(nonatomic, strong) VKUniversities *universities;
@property(nonatomic, strong) VKSchools *schools;
@property(nonatomic, strong) NSNumber *graduation;
@property(nonatomic, strong) NSNumber *friendState;
@property(nonatomic, strong) NSString *faculty_name;
@property(nonatomic, strong) NSString *university_name;
@property(nonatomic, strong) NSString *books;
@property(nonatomic, strong) NSString *games;
@property(nonatomic, strong) NSString *interests;
@property(nonatomic, strong) NSString *movies;
@property(nonatomic, strong) NSString *tv;
@property(nonatomic, strong) NSString *about;
@property(nonatomic, strong) NSString *music;
@property(nonatomic, strong) NSString *quoutes;
@property(nonatomic, strong) NSString *activities;
@property(nonatomic, strong) NSString *photo_max;
@property(nonatomic, strong) NSString *photo_50;
@property(nonatomic, strong) NSString *photo_100;
@property(nonatomic, strong) NSString *photo_200;
@property(nonatomic, strong) NSString *photo_200_orig;
@property(nonatomic, strong) NSString *photo_400_orig;
@property(nonatomic, strong) NSString *photo_max_orig;
@property(nonatomic, strong) VKPhotoArray *photos;
@property(nonatomic, strong) NSNumber *photos_count;
@property(nonatomic, strong) VKRelativities *relatives;
@property(nonatomic, assign) NSTimeInterval bdateIntervalSort;
@property(nonatomic, strong) NSNumber *verified;
@property(nonatomic, strong) NSString *deactivated;
@property(nonatomic, strong) NSString *site;
@property(nonatomic, strong) NSString *home_town;
@property(nonatomic, strong) NSNumber *blacklisted;
@property(nonatomic, strong) NSNumber *blacklisted_by_me;
@property(nonatomic, strong) NSString *twitter;
@property(nonatomic, strong) NSString *skype;
@property(nonatomic, strong) NSString *facebook;
@property(nonatomic, strong) NSString *livejournal;
@property(nonatomic, strong) NSString *wall_default;
/// Для метода account.lookupContacts
@property(nonatomic, strong) NSString *contact;
@property(nonatomic, strong) NSNumber *request_sent;
@property(nonatomic, strong) NSNumber *common_count;
/// Для метода groups.getBanned
@property(nonatomic, strong) VKBanInfo *ban_info;
/// audio.get
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSString *name_gen;
// getSubscriptions
@property(nonatomic, strong) NSNumber *followers_count;
@end
/**
Array of API users
*/
@interface VKUsersArray : VKApiObjectArray
@end

View File

@ -1,51 +0,0 @@
//
// VKUtil.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.
#define VK_SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define VK_SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define VK_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define VK_SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define VK_SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
#define VK_COLOR [UIColor colorWithRed:85.0f / 255 green:133.0f / 255 blue:188.0f / 255 alpha:1.0f]
#define VK_IS_DEVICE_IPAD (UIUserInterfaceIdiomPad == [[UIDevice currentDevice] userInterfaceIdiom])
#import <UIKit/UIKit.h>
/**
Various functions
*/
@interface VKUtil : NSObject
/**
Breaks key=value string to dictionary
@param queryString string with key=value pairs joined by & symbol
@return Dictionary of parameters
*/
+ (NSDictionary *)explodeQueryString:(NSString *)queryString;
+ (NSString *)generateGUID;
+ (NSNumber *)parseNumberString:(id)number;
+ (UIColor *)colorWithRGB:(NSInteger)rgb;
+ (NSString *)queryStringFromParams:(NSDictionary *)params;
@end

Binary file not shown.

View File

@ -1 +0,0 @@
A

0
VKSdkResources.bundle/BlueBtn.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
VKSdkResources.bundle/BlueBtn@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
VKSdkResources.bundle/BlueBtn@3x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
VKSdkResources.bundle/BlueBtn_pressed.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
VKSdkResources.bundle/BlueBtn_pressed@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
VKSdkResources.bundle/BlueBtn_pressed@3x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
VKSdkResources.bundle/Disclosure.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
VKSdkResources.bundle/Disclosure@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
VKSdkResources.bundle/Disclosure@3x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
VKSdkResources.bundle/Info.plist Normal file → Executable file

Binary file not shown.

0
VKSdkResources.bundle/en.lproj/InfoPlist.strings Normal file → Executable file
View File

0
VKSdkResources.bundle/en.lproj/Localizable.strings Normal file → Executable file
View File

0
VKSdkResources.bundle/ic_deleteattach.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
VKSdkResources.bundle/ic_deleteattach@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
VKSdkResources.bundle/ic_deletephoto.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
VKSdkResources.bundle/ic_deletephoto@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
VKSdkResources.bundle/ic_vk_activity_logo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
VKSdkResources.bundle/ic_vk_activity_logo@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

0
VKSdkResources.bundle/ic_vk_activity_logo@2x~ipad.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

0
VKSdkResources.bundle/ic_vk_activity_logo@3x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

0
VKSdkResources.bundle/ic_vk_activity_logo~ipad.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
VKSdkResources.bundle/ic_vk_ios7_activity_logo.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
VKSdkResources.bundle/ic_vk_ios7_activity_logo@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

0
VKSdkResources.bundle/ic_vk_ios7_activity_logo@3x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
VKSdkResources.bundle/ic_vk_logo_nb.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
VKSdkResources.bundle/ic_vk_logo_nb@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
VKSdkResources.bundle/ic_vk_logo_nb@3x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
VKSdkResources.bundle/img_newpostattachlink.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

0
VKSdkResources.bundle/img_newpostattachlink@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
VKSdkResources.bundle/ru.lproj/Localizable.strings Normal file → Executable file
View File

0
VKSdkResources.bundle/vk_settings.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

0
VKSdkResources.bundle/vk_settings@2x.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

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

152
example/VKSDKTestApplication.xcodeproj/project.pbxproj Normal file → Executable file
View File

@ -7,9 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
F34670291B8B7A9A003EF74B /* libVKSdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F34670281B8B7A9A003EF74B /* libVKSdk.a */; };
F346702B1B8B7ADA003EF74B /* VKSdkResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F346702A1B8B7ADA003EF74B /* VKSdkResources.bundle */; };
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 */; };
@ -25,11 +26,63 @@
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 */
F34670281B8B7A9A003EF74B /* libVKSdk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libVKSdk.a; path = "../../../../Library/Developer/Xcode/DerivedData/vk-ios-sdk-eremnbwjlxlirebgffkshiqkekmt/Build/Products/Debug-iphoneos/libVKSdk.a"; sourceTree = "<group>"; };
F346702A1B8B7ADA003EF74B /* VKSdkResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = VKSdkResources.bundle; path = ../VKSdkResources.bundle; sourceTree = "<group>"; };
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; };
@ -47,7 +100,6 @@
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>"; };
F3EEFF821827B1DD000BB525 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
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; };
@ -59,25 +111,37 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F34670291B8B7A9A003EF74B /* libVKSdk.a in Frameworks */,
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 = (
F346702A1B8B7ADA003EF74B /* VKSdkResources.bundle */,
F3EEFF6F1827B1DD000BB525 /* VKSDKTestApplication */,
F3EEFF681827B1DD000BB525 /* Frameworks */,
F3EEFF671827B1DD000BB525 /* Products */,
F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */,
);
sourceTree = "<group>";
};
@ -92,13 +156,12 @@
F3EEFF681827B1DD000BB525 /* Frameworks */ = {
isa = PBXGroup;
children = (
F34670281B8B7A9A003EF74B /* libVKSdk.a */,
F3769E661BE8D48800AEC4AF /* SafariServices.framework */,
F3EEFFCF1827F9B5000BB525 /* SystemConfiguration.framework */,
F3EEFFCD1827F9AF000BB525 /* MobileCoreServices.framework */,
F3EEFF691827B1DD000BB525 /* Foundation.framework */,
F3EEFF6B1827B1DD000BB525 /* CoreGraphics.framework */,
F3EEFF6D1827B1DD000BB525 /* UIKit.framework */,
F3EEFF821827B1DD000BB525 /* XCTest.framework */,
F3BACC301865902D003158DA /* CoreFoundation.framework */,
);
name = Frameworks;
@ -144,10 +207,12 @@
F3EEFF621827B1DD000BB525 /* Sources */,
F3EEFF631827B1DD000BB525 /* Frameworks */,
F3EEFF641827B1DD000BB525 /* Resources */,
F34DED101D2173D6005495E5 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
F34DED0F1D2173D6005495E5 /* PBXTargetDependency */,
);
name = VKSDKTestApplication;
productName = VKSDKTestApplication;
@ -161,7 +226,7 @@
isa = PBXProject;
attributes = {
CLASSPREFIX = VK;
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = VK;
TargetAttributes = {
F3EEFF651827B1DD000BB525 = {
@ -180,6 +245,12 @@
mainGroup = F3EEFF5D1827B1DD000BB525;
productRefGroup = F3EEFF671827B1DD000BB525 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = F34DECFE1D2173C9005495E5 /* Products */;
ProjectRef = F34DECFD1D2173C9005495E5 /* VK-ios-sdk.xcodeproj */;
},
);
projectRoot = "";
targets = (
F3EEFF651827B1DD000BB525 /* VKSDKTestApplication */,
@ -187,12 +258,42 @@
};
/* 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 = (
F346702B1B8B7ADA003EF74B /* VKSdkResources.bundle in Resources */,
F3DC2446183B811E00E3A93D /* Storyboard.storyboard in Resources */,
F3EEFF741827B1DD000BB525 /* InfoPlist.strings in Resources */,
F3EEFF7C1827B1DD000BB525 /* Images.xcassets in Resources */,
@ -217,6 +318,14 @@
};
/* 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;
@ -248,6 +357,7 @@
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;
@ -318,13 +428,11 @@
"VKDEBUG=1",
);
INFOPLIST_FILE = "VKSDKTestApplication/VKSDKTestApplication-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/romantruba/Documents/projects/vk-ios-sdk-pub/sdk/build/Debug-iphoneos",
"$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/vk-ios-sdk-eremnbwjlxlirebgffkshiqkekmt/Build/Products/Debug-iphoneos",
);
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";
@ -347,13 +455,11 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "VKSDKTestApplication/VKSDKTestApplication-Prefix.pch";
INFOPLIST_FILE = "VKSDKTestApplication/VKSDKTestApplication-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/romantruba/Documents/projects/vk-ios-sdk-pub/sdk/build/Debug-iphoneos",
"$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/vk-ios-sdk-eremnbwjlxlirebgffkshiqkekmt/Build/Products/Debug-iphoneos",
);
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";

View File

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