forked from ConnectSDK/Connect-SDK-iOS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConnectSDK.podspec
91 lines (73 loc) · 4.86 KB
/
ConnectSDK.podspec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# There are two usage options of this podspec:
# * pod "ConnectSDK" will install the full ConnectSDK version;
# * pod "ConnectSDK/Core" will install the core only (Lite version) without
# external dependencies.
Pod::Spec.new do |s|
s.name = "ConnectSDK"
s.version = "1.4.3"
s.summary = "Connect SDK is an open source framework that connects your mobile apps with multiple TV platforms."
s.description = <<-DESC
Connect SDK is an open source framework that connects your mobile apps with multiple TV platforms. Because most TV platforms support a variety of protocols, Connect SDK integrates and abstracts the discovery and connectivity between all supported protocols.
To discover supported platforms and protocols, Connect SDK uses SSDP to discover services such as DIAL, DLNA, UDAP, and Roku's External Control Guide (ECG). Connect SDK also supports ZeroConf to discover devices such as Chromecast and Apple TV. Even while supporting multiple discovery protocols, Connect SDK is able to generate one unified list of discovered devices from the same network.
To communicate with discovered devices, Connect SDK integrates support for protocols such as DLNA, DIAL, SSAP, ECG, AirPlay, Chromecast, UDAP, and webOS second screen protocol. Connect SDK intelligently picks which protocol to use depending on the feature being used.
For example, when connecting to a 2013 LG Smart TV, Connect SDK uses DLNA for media playback, DIAL for YouTube launching, and UDAP for system controls. On Roku, media playback and system controls are made available through ECG, and YouTube launching through DIAL. On Chromecast, media playback occurs through the Cast protocol and YouTube is launched via DIAL.
To support the aforementioned use case without Connect SDK, a developer would need to implement DIAL, ECG, Chromecast, and DLNA in their app. With Connect SDK, discovering the three devices is handled for you. Furthermore, the method calls between each protocol is abstracted. That means you can use one method call to beam a video to Roku, 3 generations of LG Smart TVs, Apple TV, and Chromecast.
DESC
s.homepage = "http://www.connectsdk.com/"
s.license = { :type => "Apache License, Version 2.0", :file => "LICENSE" }
s.author = { "Connect SDK" => "[email protected]" }
s.social_media_url = "http://twitter.com/ConnectSDK"
s.platform = :ios, "6.0"
s.ios.deployment_target = "6.0"
s.source = { :git => "https://github.com/ConnectSDK/Connect-SDK-iOS.git",
:tag => s.version,
:submodules => true }
s.xcconfig = {
"OTHER_LDFLAGS" => "$(inherited) -ObjC"
}
s.requires_arc = true
s.libraries = "z", "icucore"
s.prefix_header_contents = <<-PREFIX
#define CONNECT_SDK_VERSION @"#{s.version}"
// Uncomment this line to enable SDK logging
//#define CONNECT_SDK_ENABLE_LOG
#ifndef kConnectSDKWirelessSSIDChanged
#define kConnectSDKWirelessSSIDChanged @"Connect_SDK_Wireless_SSID_Changed"
#endif
#ifdef CONNECT_SDK_ENABLE_LOG
// credit: http://stackoverflow.com/a/969291/2715
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
#else
# define DLog(...)
#endif
PREFIX
non_arc_files =
"core/Frameworks/asi-http-request/External/Reachability/*.{h,m}",
"core/Frameworks/asi-http-request/Classes/*.{h,m}"
s.subspec 'Core' do |sp|
sp.source_files = "ConnectSDKDefaultPlatforms.h", "core/**/*.{h,m}"
sp.exclude_files = (non_arc_files.dup << "core/ConnectSDKTests")
sp.private_header_files = "core/**/*_Private.h"
sp.requires_arc = true
sp.dependency 'ConnectSDK/no-arc'
end
s.subspec 'no-arc' do |sp|
sp.source_files = non_arc_files
sp.requires_arc = false
end
s.subspec 'GoogleCast' do |sp|
sp.dependency 'ConnectSDK/Core'
sp.source_files = "modules/**/*.{h,m}"
sp.private_header_files = "modules/**/*_Private.h"
cast_version = "2.5.1"
sp.dependency "google-cast-sdk", cast_version
sp.framework = "GoogleCast"
sp.xcconfig = {
"FRAMEWORK_SEARCH_PATHS" => "$(PODS_ROOT)/google-cast-sdk/GoogleCastSDK-#{cast_version}-Release",
}
end
end