Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee213ef426 | ||
|
|
e365d5ff2e | ||
|
|
ccb27d7d97 | ||
|
|
e05dd8699e | ||
|
|
599de6b72a | ||
|
|
5acb789a62 | ||
|
|
fe8d28cfcb | ||
|
|
25d3bee5c1 | ||
|
|
bc80c351fb | ||
|
|
c2ddafb489 | ||
|
|
f0eda60afa | ||
|
|
b566e460ad | ||
|
|
c39454be01 | ||
|
|
ddca5365fc | ||
|
|
797b669aa1 | ||
|
|
ec4d296b9f | ||
|
|
37fa7e98e4 | ||
|
|
7916776680 | ||
|
|
cdbdd930e6 | ||
|
|
e087efe1cb | ||
|
|
8746135531 | ||
|
|
94602ea642 | ||
|
|
0e39df021c | ||
|
|
b4c935c6c5 | ||
|
|
c83354c959 | ||
|
|
9b7b96a359 | ||
|
|
0d0c610678 | ||
|
|
c32927f2bd | ||
|
|
f041e631c8 | ||
|
|
e1b2e3a0b3 | ||
|
|
3f1dad13dc | ||
|
|
d3d3a65776 | ||
|
|
58daf0f708 | ||
|
|
7ae1949d9c | ||
|
|
32a24c31dc | ||
|
|
88b67d62cc | ||
|
|
3c85e3a413 | ||
|
|
8ee9fdbbc2 | ||
|
|
f201595937 | ||
|
|
b3ef99250e | ||
|
|
73b530f1ad | ||
|
|
90f8ff46fc | ||
|
|
9762f2c871 | ||
|
|
02e2641995 | ||
|
|
ec2fe2d21d | ||
|
|
991dcdb89a | ||
|
|
3f041ea96b | ||
|
|
7f82b42868 | ||
|
|
444f723498 | ||
|
|
3ebf6141d5 | ||
|
|
8b00fa9540 | ||
|
|
ab1fb2fee3 |
@@ -0,0 +1,14 @@
|
||||
Changelog
|
||||
==========
|
||||
|
||||
### 1.0.5
|
||||
|
||||
- Fix default customisation
|
||||
|
||||
### 1.0.4
|
||||
|
||||
- Add customisation way
|
||||
|
||||
### 1.0.3
|
||||
|
||||
- Remove public extension
|
||||
@@ -0,0 +1,14 @@
|
||||
Contributing 🚀
|
||||
===============
|
||||
|
||||
For fixes, improvements or ideas, fork the repository and issue a pull request.
|
||||
|
||||
To get a pull request accepted, please adhere to these rules:
|
||||
- Work from the latest `master` branch.
|
||||
- Respect current code style and respect the [SwiftLint](https://github.com/realm/SwiftLint) rules (see swiftlint's file).
|
||||
- If this is about new features, please make sure to add enable/disable configuration.
|
||||
|
||||
Ideally, only work on one feature at a time.
|
||||
If you've done work on the code (i.e. not just fixes to the README), add yourself to the top of [`CONTRIBUTORS.md`](./CONTRIBUTORS.md).
|
||||
|
||||
Thank you, and happy coding ! 😘
|
||||
@@ -0,0 +1,9 @@
|
||||
Contributors
|
||||
============
|
||||
|
||||
Contributors to the codebase :
|
||||
|
||||
| Name | Github handle | Mail |
|
||||
| ------------- |------------- | ----- |
|
||||
| David Lari | DavidLari | / |
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2017 Florian Gabach. All rights reserved.</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,22 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Florian Gabach
|
||||
|
||||
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.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'OpenSourceController'
|
||||
s.version = '1.0.5'
|
||||
s.summary = 'Display all the librarys licence used in your application. Enjoy !'
|
||||
s.description = 'Display a screen with all licence used in your apply can be painful to maintain. OpenSourceController was built to respond to this problem. OpenSourceController is a simple parser to display the licences which are used in your application.'
|
||||
s.homepage = 'https://github.com/terflogag/OpenSourceController'
|
||||
s.license = { :type => 'MIT', :file => 'LICENSE' }
|
||||
s.author = { 'Florian Gabach' => 'contact@floriangabach.fr' }
|
||||
s.source = { :git => 'https://github.com/terflogag/OpenSourceController.git', :tag => s.version.to_s }
|
||||
s.ios.deployment_target = '9.0'
|
||||
s.source_files = 'OpenSourceController/Classes/**/*'
|
||||
end
|
||||
@@ -3,162 +3,248 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objectVersion = 47;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
7608FF731E6485A700656BA2 /* OpenSourceController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7608FF711E6485A700656BA2 /* OpenSourceController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
7608FF7E1E6485D000656BA2 /* LicenceDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7608FF7C1E6485D000656BA2 /* LicenceDownloader.swift */; };
|
||||
7608FF7F1E6485D000656BA2 /* LicenceFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7608FF7D1E6485D000656BA2 /* LicenceFile.swift */; };
|
||||
7608FF811E6485D600656BA2 /* OpenSourceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7608FF801E6485D600656BA2 /* OpenSourceTableViewCell.swift */; };
|
||||
7608FF841E6485DE00656BA2 /* OpenSourceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7608FF821E6485DE00656BA2 /* OpenSourceController.swift */; };
|
||||
7608FF851E6485DE00656BA2 /* OpenSourceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7608FF831E6485DE00656BA2 /* OpenSourceViewController.swift */; };
|
||||
52D6D9871BEFF229002C0205 /* OpenSourceController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* OpenSourceController.framework */; };
|
||||
76EAA8441E93EDA5009A41DA /* OpenSourceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8421E93EDA5009A41DA /* OpenSourceController.swift */; };
|
||||
76EAA8451E93EDA5009A41DA /* OpenSourceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8431E93EDA5009A41DA /* OpenSourceViewController.swift */; };
|
||||
76EAA8481E93EDB3009A41DA /* Array+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8471E93EDB3009A41DA /* Array+Extensions.swift */; };
|
||||
76EAA84E1E93EDCD009A41DA /* LicenceDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA84B1E93EDCD009A41DA /* LicenceDownloader.swift */; };
|
||||
76EAA84F1E93EDCD009A41DA /* LicenceFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA84C1E93EDCD009A41DA /* LicenceFile.swift */; };
|
||||
76EAA8501E93EDCD009A41DA /* OpenSourceControllerConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA84D1E93EDCD009A41DA /* OpenSourceControllerConfig.swift */; };
|
||||
76EAA8531E93EDF0009A41DA /* OpenSourceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76EAA8521E93EDF0009A41DA /* OpenSourceTableViewCell.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 52D6D9731BEFF229002C0205 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 52D6D97B1BEFF229002C0205;
|
||||
remoteInfo = OpenSourceController;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
7608FF6E1E6485A700656BA2 /* OpenSourceController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenSourceController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7608FF711E6485A700656BA2 /* OpenSourceController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenSourceController.h; sourceTree = "<group>"; };
|
||||
7608FF721E6485A700656BA2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
7608FF7C1E6485D000656BA2 /* LicenceDownloader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LicenceDownloader.swift; path = Source/Model/LicenceDownloader.swift; sourceTree = SOURCE_ROOT; };
|
||||
7608FF7D1E6485D000656BA2 /* LicenceFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LicenceFile.swift; path = Source/Model/LicenceFile.swift; sourceTree = SOURCE_ROOT; };
|
||||
7608FF801E6485D600656BA2 /* OpenSourceTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceTableViewCell.swift; path = Source/View/OpenSourceTableViewCell.swift; sourceTree = SOURCE_ROOT; };
|
||||
7608FF821E6485DE00656BA2 /* OpenSourceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceController.swift; path = Source/Controller/OpenSourceController.swift; sourceTree = SOURCE_ROOT; };
|
||||
7608FF831E6485DE00656BA2 /* OpenSourceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceViewController.swift; path = Source/Controller/OpenSourceViewController.swift; sourceTree = SOURCE_ROOT; };
|
||||
52D6D97C1BEFF229002C0205 /* OpenSourceController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenSourceController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
52D6D9861BEFF229002C0205 /* OpenSourceController-iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OpenSourceController-iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
76EAA8421E93EDA5009A41DA /* OpenSourceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceController.swift; path = Sources/Controller/OpenSourceController.swift; sourceTree = "<group>"; };
|
||||
76EAA8431E93EDA5009A41DA /* OpenSourceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceViewController.swift; path = Sources/Controller/OpenSourceViewController.swift; sourceTree = "<group>"; };
|
||||
76EAA8471E93EDB3009A41DA /* Array+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Array+Extensions.swift"; path = "Sources/Extensions/Array+Extensions.swift"; sourceTree = "<group>"; };
|
||||
76EAA84B1E93EDCD009A41DA /* LicenceDownloader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LicenceDownloader.swift; path = Sources/Model/LicenceDownloader.swift; sourceTree = "<group>"; };
|
||||
76EAA84C1E93EDCD009A41DA /* LicenceFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LicenceFile.swift; path = Sources/Model/LicenceFile.swift; sourceTree = "<group>"; };
|
||||
76EAA84D1E93EDCD009A41DA /* OpenSourceControllerConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceControllerConfig.swift; path = Sources/Model/OpenSourceControllerConfig.swift; sourceTree = "<group>"; };
|
||||
76EAA8521E93EDF0009A41DA /* OpenSourceTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OpenSourceTableViewCell.swift; path = Sources/View/OpenSourceTableViewCell.swift; sourceTree = "<group>"; };
|
||||
AD2FAA261CD0B6D800659CF4 /* OpenSourceController.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = OpenSourceController.plist; sourceTree = "<group>"; };
|
||||
AD2FAA281CD0B6E100659CF4 /* OpenSourceControllerTests.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = OpenSourceControllerTests.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
7608FF6A1E6485A700656BA2 /* Frameworks */ = {
|
||||
52D6D9781BEFF229002C0205 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
52D6D9831BEFF229002C0205 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
52D6D9871BEFF229002C0205 /* OpenSourceController.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
7608FF641E6485A700656BA2 = {
|
||||
52D6D9721BEFF229002C0205 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7608FF701E6485A700656BA2 /* OpenSourceController */,
|
||||
7608FF6F1E6485A700656BA2 /* Products */,
|
||||
76EAA84A1E93EDC0009A41DA /* Sources */,
|
||||
52D6D99C1BEFF38C002C0205 /* Configs */,
|
||||
52D6D97D1BEFF229002C0205 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7608FF6F1E6485A700656BA2 /* Products */ = {
|
||||
52D6D97D1BEFF229002C0205 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7608FF6E1E6485A700656BA2 /* OpenSourceController.framework */,
|
||||
52D6D97C1BEFF229002C0205 /* OpenSourceController.framework */,
|
||||
52D6D9861BEFF229002C0205 /* OpenSourceController-iOS Tests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7608FF701E6485A700656BA2 /* OpenSourceController */ = {
|
||||
52D6D99C1BEFF38C002C0205 /* Configs */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7608FF7B1E6485C400656BA2 /* Controller */,
|
||||
7608FF7A1E6485BE00656BA2 /* View */,
|
||||
7608FF791E6485BA00656BA2 /* Model */,
|
||||
7608FF711E6485A700656BA2 /* OpenSourceController.h */,
|
||||
7608FF721E6485A700656BA2 /* Info.plist */,
|
||||
DD7502721C68FC1B006590AF /* Frameworks */,
|
||||
DD7502731C68FC20006590AF /* Tests */,
|
||||
);
|
||||
path = OpenSourceController;
|
||||
path = Configs;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7608FF791E6485BA00656BA2 /* Model */ = {
|
||||
76EAA8461E93EDA9009A41DA /* Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7608FF7C1E6485D000656BA2 /* LicenceDownloader.swift */,
|
||||
7608FF7D1E6485D000656BA2 /* LicenceFile.swift */,
|
||||
76EAA8421E93EDA5009A41DA /* OpenSourceController.swift */,
|
||||
76EAA8431E93EDA5009A41DA /* OpenSourceViewController.swift */,
|
||||
);
|
||||
name = Controller;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
76EAA8491E93EDBB009A41DA /* Extensions */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
76EAA8471E93EDB3009A41DA /* Array+Extensions.swift */,
|
||||
);
|
||||
name = Extensions;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
76EAA84A1E93EDC0009A41DA /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
76EAA8511E93EDD2009A41DA /* Model */,
|
||||
76EAA8541E93EDF3009A41DA /* View */,
|
||||
76EAA8461E93EDA9009A41DA /* Controller */,
|
||||
76EAA8491E93EDBB009A41DA /* Extensions */,
|
||||
);
|
||||
name = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
76EAA8511E93EDD2009A41DA /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
76EAA84B1E93EDCD009A41DA /* LicenceDownloader.swift */,
|
||||
76EAA84C1E93EDCD009A41DA /* LicenceFile.swift */,
|
||||
76EAA84D1E93EDCD009A41DA /* OpenSourceControllerConfig.swift */,
|
||||
);
|
||||
name = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7608FF7A1E6485BE00656BA2 /* View */ = {
|
||||
76EAA8541E93EDF3009A41DA /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7608FF801E6485D600656BA2 /* OpenSourceTableViewCell.swift */,
|
||||
76EAA8521E93EDF0009A41DA /* OpenSourceTableViewCell.swift */,
|
||||
);
|
||||
name = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7608FF7B1E6485C400656BA2 /* Controller */ = {
|
||||
DD7502721C68FC1B006590AF /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7608FF821E6485DE00656BA2 /* OpenSourceController.swift */,
|
||||
7608FF831E6485DE00656BA2 /* OpenSourceViewController.swift */,
|
||||
AD2FAA261CD0B6D800659CF4 /* OpenSourceController.plist */,
|
||||
);
|
||||
name = Controller;
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DD7502731C68FC20006590AF /* Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AD2FAA281CD0B6E100659CF4 /* OpenSourceControllerTests.plist */,
|
||||
);
|
||||
name = Tests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
7608FF6B1E6485A700656BA2 /* Headers */ = {
|
||||
52D6D9791BEFF229002C0205 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7608FF731E6485A700656BA2 /* OpenSourceController.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
7608FF6D1E6485A700656BA2 /* OpenSourceController */ = {
|
||||
52D6D97B1BEFF229002C0205 /* OpenSourceController-iOS */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 7608FF761E6485A700656BA2 /* Build configuration list for PBXNativeTarget "OpenSourceController" */;
|
||||
buildConfigurationList = 52D6D9901BEFF229002C0205 /* Build configuration list for PBXNativeTarget "OpenSourceController-iOS" */;
|
||||
buildPhases = (
|
||||
7608FF691E6485A700656BA2 /* Sources */,
|
||||
7608FF6A1E6485A700656BA2 /* Frameworks */,
|
||||
7608FF6B1E6485A700656BA2 /* Headers */,
|
||||
7608FF6C1E6485A700656BA2 /* Resources */,
|
||||
52D6D9771BEFF229002C0205 /* Sources */,
|
||||
52D6D9781BEFF229002C0205 /* Frameworks */,
|
||||
52D6D9791BEFF229002C0205 /* Headers */,
|
||||
52D6D97A1BEFF229002C0205 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = OpenSourceController;
|
||||
name = "OpenSourceController-iOS";
|
||||
productName = OpenSourceController;
|
||||
productReference = 7608FF6E1E6485A700656BA2 /* OpenSourceController.framework */;
|
||||
productReference = 52D6D97C1BEFF229002C0205 /* OpenSourceController.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
52D6D9851BEFF229002C0205 /* OpenSourceController-iOS Tests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 52D6D9931BEFF229002C0205 /* Build configuration list for PBXNativeTarget "OpenSourceController-iOS Tests" */;
|
||||
buildPhases = (
|
||||
52D6D9821BEFF229002C0205 /* Sources */,
|
||||
52D6D9831BEFF229002C0205 /* Frameworks */,
|
||||
52D6D9841BEFF229002C0205 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
52D6D9891BEFF229002C0205 /* PBXTargetDependency */,
|
||||
);
|
||||
name = "OpenSourceController-iOS Tests";
|
||||
productName = OpenSourceControllerTests;
|
||||
productReference = 52D6D9861BEFF229002C0205 /* OpenSourceController-iOS Tests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
7608FF651E6485A700656BA2 /* Project object */ = {
|
||||
52D6D9731BEFF229002C0205 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0820;
|
||||
ORGANIZATIONNAME = "Florian Gabach";
|
||||
LastSwiftUpdateCheck = 0720;
|
||||
LastUpgradeCheck = 0810;
|
||||
ORGANIZATIONNAME = OpenSourceController;
|
||||
TargetAttributes = {
|
||||
7608FF6D1E6485A700656BA2 = {
|
||||
CreatedOnToolsVersion = 8.2.1;
|
||||
DevelopmentTeam = 62PP362QNQ;
|
||||
LastSwiftMigration = 0820;
|
||||
ProvisioningStyle = Automatic;
|
||||
52D6D97B1BEFF229002C0205 = {
|
||||
CreatedOnToolsVersion = 7.1;
|
||||
LastSwiftMigration = 0830;
|
||||
};
|
||||
52D6D9851BEFF229002C0205 = {
|
||||
CreatedOnToolsVersion = 7.1;
|
||||
LastSwiftMigration = 0800;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 7608FF681E6485A700656BA2 /* Build configuration list for PBXProject "OpenSourceController" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
buildConfigurationList = 52D6D9761BEFF229002C0205 /* Build configuration list for PBXProject "OpenSourceController" */;
|
||||
compatibilityVersion = "Xcode 6.3";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 7608FF641E6485A700656BA2;
|
||||
productRefGroup = 7608FF6F1E6485A700656BA2 /* Products */;
|
||||
mainGroup = 52D6D9721BEFF229002C0205;
|
||||
productRefGroup = 52D6D97D1BEFF229002C0205 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
7608FF6D1E6485A700656BA2 /* OpenSourceController */,
|
||||
52D6D97B1BEFF229002C0205 /* OpenSourceController-iOS */,
|
||||
52D6D9851BEFF229002C0205 /* OpenSourceController-iOS Tests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
7608FF6C1E6485A700656BA2 /* Resources */ = {
|
||||
52D6D97A1BEFF229002C0205 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
52D6D9841BEFF229002C0205 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -168,26 +254,42 @@
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
7608FF691E6485A700656BA2 /* Sources */ = {
|
||||
52D6D9771BEFF229002C0205 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
76EAA84E1E93EDCD009A41DA /* LicenceDownloader.swift in Sources */,
|
||||
76EAA84F1E93EDCD009A41DA /* LicenceFile.swift in Sources */,
|
||||
76EAA8441E93EDA5009A41DA /* OpenSourceController.swift in Sources */,
|
||||
76EAA8481E93EDB3009A41DA /* Array+Extensions.swift in Sources */,
|
||||
76EAA8531E93EDF0009A41DA /* OpenSourceTableViewCell.swift in Sources */,
|
||||
76EAA8501E93EDCD009A41DA /* OpenSourceControllerConfig.swift in Sources */,
|
||||
76EAA8451E93EDA5009A41DA /* OpenSourceViewController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
52D6D9821BEFF229002C0205 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7608FF851E6485DE00656BA2 /* OpenSourceViewController.swift in Sources */,
|
||||
7608FF841E6485DE00656BA2 /* OpenSourceController.swift in Sources */,
|
||||
7608FF811E6485D600656BA2 /* OpenSourceTableViewCell.swift in Sources */,
|
||||
7608FF7E1E6485D000656BA2 /* LicenceDownloader.swift in Sources */,
|
||||
7608FF7F1E6485D000656BA2 /* LicenceFile.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
52D6D9891BEFF229002C0205 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 52D6D97B1BEFF229002C0205 /* OpenSourceController-iOS */;
|
||||
targetProxy = 52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
7608FF741E6485A700656BA2 /* Debug */ = {
|
||||
52D6D98E1BEFF229002C0205 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
@@ -195,7 +297,6 @@
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
@@ -224,23 +325,22 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7608FF751E6485A700656BA2 /* Release */ = {
|
||||
52D6D98F1BEFF229002C0205 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
@@ -248,7 +348,6 @@
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
@@ -271,10 +370,10 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
@@ -282,43 +381,75 @@
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
7608FF771E6485A700656BA2 /* Debug */ = {
|
||||
52D6D9911BEFF229002C0205 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 62PP362QNQ;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = OpenSourceController/Info.plist;
|
||||
INFOPLIST_FILE = Configs/OpenSourceController.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.fg.OpenSourceController;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.OpenSourceController.OpenSourceController-iOS";
|
||||
PRODUCT_NAME = OpenSourceController;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7608FF781E6485A700656BA2 /* Release */ = {
|
||||
52D6D9921BEFF229002C0205 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = 62PP362QNQ;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = OpenSourceController/Info.plist;
|
||||
INFOPLIST_FILE = Configs/OpenSourceController.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.fg.OpenSourceController;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.OpenSourceController.OpenSourceController-iOS";
|
||||
PRODUCT_NAME = OpenSourceController;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
52D6D9941BEFF229002C0205 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
INFOPLIST_FILE = Configs/OpenSourceControllerTests.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.OpenSourceController.OpenSourceController-iOS-Tests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
52D6D9951BEFF229002C0205 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
INFOPLIST_FILE = Configs/OpenSourceControllerTests.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.OpenSourceController.OpenSourceController-iOS-Tests";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
@@ -326,24 +457,34 @@
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
7608FF681E6485A700656BA2 /* Build configuration list for PBXProject "OpenSourceController" */ = {
|
||||
52D6D9761BEFF229002C0205 /* Build configuration list for PBXProject "OpenSourceController" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7608FF741E6485A700656BA2 /* Debug */,
|
||||
7608FF751E6485A700656BA2 /* Release */,
|
||||
52D6D98E1BEFF229002C0205 /* Debug */,
|
||||
52D6D98F1BEFF229002C0205 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
7608FF761E6485A700656BA2 /* Build configuration list for PBXNativeTarget "OpenSourceController" */ = {
|
||||
52D6D9901BEFF229002C0205 /* Build configuration list for PBXNativeTarget "OpenSourceController-iOS" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7608FF771E6485A700656BA2 /* Debug */,
|
||||
7608FF781E6485A700656BA2 /* Release */,
|
||||
52D6D9911BEFF229002C0205 /* Debug */,
|
||||
52D6D9921BEFF229002C0205 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
52D6D9931BEFF229002C0205 /* Build configuration list for PBXNativeTarget "OpenSourceController-iOS Tests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
52D6D9941BEFF229002C0205 /* Debug */,
|
||||
52D6D9951BEFF229002C0205 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 7608FF651E6485A700656BA2 /* Project object */;
|
||||
rootObject = 52D6D9731BEFF229002C0205 /* Project object */;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:OpenSourceController.xcodeproj">
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
||||
BIN
Binary file not shown.
+100
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-iOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
codeCoverageEnabled = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D9851BEFF229002C0205"
|
||||
BuildableName = "OpenSourceController-iOS Tests.xctest"
|
||||
BlueprintName = "OpenSourceController-iOS Tests"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-iOS"
|
||||
ReferencedContainer = "container:OpenSourceController.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 = "52D6D97B1BEFF229002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-iOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-iOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-macOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
codeCoverageEnabled = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "DD7502791C68FCFC006590AF"
|
||||
BuildableName = "OpenSourceController-macOS Tests.xctest"
|
||||
BlueprintName = "OpenSourceController-macOS Tests"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-macOS"
|
||||
ReferencedContainer = "container:OpenSourceController.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 = "52D6DA0E1BF000BD002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-macOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-macOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-tvOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
codeCoverageEnabled = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "DD75028C1C690C7A006590AF"
|
||||
BuildableName = "OpenSourceController-tvOS Tests.xctest"
|
||||
BlueprintName = "OpenSourceController-tvOS Tests"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-tvOS"
|
||||
ReferencedContainer = "container:OpenSourceController.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 = "52D6D9EF1BEFFFBE002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-tvOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController-tvOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+9
-8
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -14,9 +14,9 @@
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7608FF6D1E6485A700656BA2"
|
||||
BlueprintIdentifier = "52D6D9E11BEFFF6E002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController"
|
||||
BlueprintName = "OpenSourceController-watchOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
@@ -26,7 +26,8 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
codeCoverageEnabled = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
@@ -45,9 +46,9 @@
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7608FF6D1E6485A700656BA2"
|
||||
BlueprintIdentifier = "52D6D9E11BEFFF6E002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController"
|
||||
BlueprintName = "OpenSourceController-watchOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
@@ -63,9 +64,9 @@
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "7608FF6D1E6485A700656BA2"
|
||||
BlueprintIdentifier = "52D6D9E11BEFFF6E002C0205"
|
||||
BuildableName = "OpenSourceController.framework"
|
||||
BlueprintName = "OpenSourceController"
|
||||
BlueprintName = "OpenSourceController-watchOS"
|
||||
ReferencedContainer = "container:OpenSourceController.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
+31
-9
@@ -2,17 +2,39 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>OpenSourceController.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>7608FF6D1E6485A700656BA2</key>
|
||||
<key>52D6D97B1BEFF229002C0205</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>52D6D9851BEFF229002C0205</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>52D6D9E11BEFFF6E002C0205</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>52D6D9EF1BEFFFBE002C0205</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>52D6DA0E1BF000BD002C0205</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>DD7502791C68FCFC006590AF</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>DD75028C1C690C7A006590AF</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// OpenSourceController.h
|
||||
// OpenSourceController
|
||||
//
|
||||
// Created by Florian Gabach on 27/02/2017.
|
||||
// Copyright © 2017 Florian Gabach. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for OpenSourceController.
|
||||
FOUNDATION_EXPORT double OpenSourceControllerVersionNumber;
|
||||
|
||||
//! Project version string for OpenSourceController.
|
||||
FOUNDATION_EXPORT const unsigned char OpenSourceControllerVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <OpenSourceController/PublicHeader.h>
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: "OpenSourceController"
|
||||
)
|
||||
@@ -0,0 +1,130 @@
|
||||
<p align="center">
|
||||
<img src="https://github.com/terflogag/OpenSourceController/blob/master/Ressources/welcome_img.png" alt="OpenSourceController" />
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://cocoapods.org/pods/OpenSourceController" target="_blank"><img src="https://img.shields.io/cocoapods/v/OpenSourceController.svg?style=flat" alt="Cocoapods version" /></a>
|
||||
<a href="http://cocoapods.org/pods/OpenSourceController" target="_blank"><img src="https://img.shields.io/cocoapods/p/OpenSourceController.svg?style=flat" alt="Cocoapods plateform" /></a>
|
||||
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="Prs welcome" />
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="#features">Features</a>
|
||||
• <a href="#installation">Installation</a>
|
||||
• <a href="#usage">Usage</a>
|
||||
• <a href="#translation">Translation</a>
|
||||
• <a href="#customisation">Customisation</a>
|
||||
• <a href="#license">License</a>
|
||||
</p>
|
||||
|
||||
Display a screen with all licences used in your application can be painful to maintain. OpenSourceController was built to respond to this problem. OpenSourceController is a simple parser to display the licences which are used in your application.
|
||||
|
||||
<p align="center">
|
||||
<img src="https://github.com/terflogag/OpenSourceController/blob/master/Ressources/demo.gif" alt="OpenSourceController" />
|
||||
</p>
|
||||
|
||||
## Features
|
||||
|
||||
- [x] Display tableView with licences used in your app
|
||||
- [x] Download licence from an URL
|
||||
|
||||
## Todo (feel free to make PR)
|
||||
|
||||
- [ ] Download licence from Podfile (https://github.com/terflogag/OpenSourceController/issues/1)
|
||||
- [ ] Download licence from Cartfile (https://github.com/terflogag/OpenSourceController/issues/2)
|
||||
- [ ] Download licence from local file
|
||||
- [ ] Carthage support
|
||||
- [ ] Unit & UI Test
|
||||
|
||||
## Requirements
|
||||
|
||||
* Xcode 8
|
||||
* iOS 9.0+ target deployment
|
||||
* Swift 3 project
|
||||
|
||||
## Installation
|
||||
|
||||
OpenSourceController is available through [CocoaPods](http://cocoapods.org). To install
|
||||
it, simply add the following line to your Podfile:
|
||||
|
||||
```ruby
|
||||
pod "OpenSourceController"
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
- Import the library :
|
||||
|
||||
```swift
|
||||
import OpenSourceController
|
||||
```
|
||||
|
||||
- Display the controller :
|
||||
|
||||
```swift
|
||||
// Create controller
|
||||
let openSourceVC = OpenSourceController()
|
||||
|
||||
// Init with LicenceFile object
|
||||
openSourceVC.licences = [LicenceFile(title: "FacebookImagePicker",
|
||||
url: "https://raw.githubusercontent.com/terflogag/FacebookImagePicker/master/LICENSE"),
|
||||
LicenceFile(title: "JSQMessagesViewController",
|
||||
url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/LICENSE")]
|
||||
|
||||
// Present controller
|
||||
openSourceVC.presentOpenSourceController(from: self)
|
||||
```
|
||||
|
||||
## Customisation
|
||||
|
||||
You can apply some customisation. To do it you can use the OpenSourceControllerConfig structure like this :
|
||||
|
||||
```swift
|
||||
// Navigation bar title
|
||||
openSourceVC.config.title = "MyCustomTitle"
|
||||
|
||||
// Navigation bar tint color
|
||||
openSourceVC.config.uiConfig.barTintColor = UIColor.red
|
||||
|
||||
// Close button color
|
||||
openSourceVC.config.uiConfig.closeButtonColor = UIColor.white
|
||||
|
||||
// BackgroundColor
|
||||
openSourceVC.config.uiConfig.backgroundColor = UIColor.red.withAlphaComponent(0.6)
|
||||
|
||||
// Licence text color
|
||||
openSourceVC.config.uiConfig.licenceTextColor = UIColor.white
|
||||
|
||||
// Navigation bar title color
|
||||
openSourceVC.config.uiConfig.titleColor = UIColor.white
|
||||
|
||||
// Licence cell background color
|
||||
openSourceVC.config.uiConfig.licenceBackgroundColor = UIColor.red
|
||||
|
||||
// Verbose mode
|
||||
openSourceVC.config.verbose = true
|
||||
```
|
||||
|
||||
## Translation
|
||||
|
||||
OpenSourceController is currently write in english. If you need translation for the permission popup (or whatever thing), just add this line in your localized file :
|
||||
|
||||
```
|
||||
"Unable to load this licence." = "<your_translation>";
|
||||
```
|
||||
|
||||
## Applications
|
||||
|
||||
Some applications already use this controller like :
|
||||
- [Troll Generator](https://itunes.apple.com/fr/app/troll-generator/id1038097542?mt=8)
|
||||
- [Giraf](https://itunes.apple.com/fr/app/giraf/id1136592561?mt=8)
|
||||
|
||||
What about yours ? If your application also use this library, feel free to contact me or make pull request on the README 😁
|
||||
|
||||
## Author
|
||||
|
||||
Florian Gabach, contact@floriangabach.fr
|
||||
|
||||
## License
|
||||
|
||||
OpenSourceController is available under the [MIT license](LICENSE).
|
||||
@@ -1,63 +0,0 @@
|
||||
//
|
||||
// OpenSourceTableViewCell.swift
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 05/02/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class OpenSourceTableViewCell: UITableViewCell {
|
||||
|
||||
// MARK: IBOutlet
|
||||
|
||||
@IBOutlet var licenceTitle: UILabel!
|
||||
@IBOutlet var licenceDesc: UILabel!
|
||||
|
||||
// MARK: - Lifecycle
|
||||
|
||||
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
|
||||
super.init(style: .default,
|
||||
reuseIdentifier: reuseIdentifier)
|
||||
|
||||
self.prepareCellComponent()
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
super.setSelected(selected, animated: animated)
|
||||
}
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
}
|
||||
|
||||
// MARK: - Prepare
|
||||
|
||||
func prepareCellComponent() {
|
||||
// Text
|
||||
self.textLabel?.numberOfLines = 0
|
||||
|
||||
// Common init
|
||||
self.accessoryType = .none
|
||||
self.selectionStyle = .none
|
||||
}
|
||||
|
||||
// MARK: - Configure
|
||||
|
||||
/// Initialize the cell content with Licence model
|
||||
///
|
||||
/// - Parameter licence: the licence model
|
||||
func configure(licence: LicenceFile) {
|
||||
|
||||
// Library's name
|
||||
self.licenceTitle.text = licence.title
|
||||
|
||||
// Library licence's detail
|
||||
self.licenceDesc.text = licence.detail
|
||||
}
|
||||
}
|
||||
+8
-4
@@ -3,26 +3,30 @@
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 05/02/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
public class OpenSourceController: NSObject {
|
||||
|
||||
// Contains list of licence object
|
||||
public var licences: [LicenceFile]?
|
||||
open var licences: [LicenceFile]?
|
||||
|
||||
// Configuration
|
||||
open var config = OpenSourceControllerConfig()
|
||||
|
||||
/// Present OpenSourceViewController embbeded in navigation controller
|
||||
///
|
||||
/// - Parameter from: the source controller
|
||||
public final func presentOpenSourceController(from: UIViewController) {
|
||||
open func presentOpenSourceController(from: UIViewController) {
|
||||
// Create open source controller
|
||||
let licenceController = OpenSourceViewController()
|
||||
|
||||
// Init licence
|
||||
licenceController.licences = self.licences
|
||||
|
||||
// Init config
|
||||
licenceController.config = self.config
|
||||
|
||||
// Embed in navigation controller
|
||||
let navController = UINavigationController(rootViewController: licenceController)
|
||||
|
||||
+29
-14
@@ -3,8 +3,6 @@
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 05/02/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
@@ -19,7 +17,10 @@ class OpenSourceViewController: UITableViewController {
|
||||
private let reuseIdentifier = "openSourceCell"
|
||||
|
||||
/// Contains all licence object before downloaded
|
||||
var licences: [LicenceFile]?
|
||||
internal var licences: [LicenceFile]?
|
||||
|
||||
// Controller configuration for customization
|
||||
internal var config = OpenSourceControllerConfig()
|
||||
|
||||
/// Contains all licences object after downloaded
|
||||
fileprivate var downloadedLicence: [LicenceFile]? {
|
||||
@@ -54,7 +55,8 @@ class OpenSourceViewController: UITableViewController {
|
||||
fileprivate func prepareLicences() {
|
||||
if let licences = self.licences {
|
||||
self.startLoading()
|
||||
LicenceDownloader.downloadLicences(licences: licences) { () in
|
||||
LicenceDownloader.downloadLicences(licences: licences,
|
||||
config: self.config) { () in
|
||||
// Update licences
|
||||
self.downloadedLicence = self.licences
|
||||
}
|
||||
@@ -65,16 +67,31 @@ class OpenSourceViewController: UITableViewController {
|
||||
fileprivate func prepareTableView() {
|
||||
// Common init
|
||||
self.tableView.tableFooterView = UIView()
|
||||
self.title = NSLocalizedString("Tiers library", comment: "")
|
||||
self.tableView.register(OpenSourceTableViewCell.self, forCellReuseIdentifier: self.reuseIdentifier)
|
||||
self.title = self.config.title
|
||||
self.tableView.register(OpenSourceTableViewCell.self,
|
||||
forCellReuseIdentifier: self.reuseIdentifier)
|
||||
self.tableView.dataSource = self
|
||||
self.tableView.delegate = self
|
||||
self.tableView.separatorStyle = .singleLine
|
||||
if let backgroundColor = self.config.uiConfig.backgroundColor {
|
||||
self.tableView.backgroundColor = backgroundColor
|
||||
}
|
||||
|
||||
// Navigation bar
|
||||
if let tintColor = self.config.uiConfig.barTintColor {
|
||||
self.navigationController?.navigationBar.barTintColor = tintColor
|
||||
}
|
||||
if let textColor = self.config.uiConfig.titleColor {
|
||||
let attribut = [NSForegroundColorAttributeName: textColor]
|
||||
self.navigationController?.navigationBar.titleTextAttributes = attribut
|
||||
}
|
||||
|
||||
// Close button (on the right corner of navigation bar)
|
||||
let closeButton = UIBarButtonItem(barButtonSystemItem: .stop,
|
||||
target: self,
|
||||
action: #selector(self.closePicker))
|
||||
closeButton.tintColor = config.uiConfig.closeButtonColor ?? UIColor.black
|
||||
self.navigationItem.rightBarButtonItem = closeButton
|
||||
|
||||
// Loading indicator
|
||||
@@ -119,24 +136,22 @@ class OpenSourceViewController: UITableViewController {
|
||||
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
var cell = tableView.dequeueReusableCell(withIdentifier: self.reuseIdentifier,
|
||||
for: indexPath) as? OpenSourceTableViewCell
|
||||
// Init cell
|
||||
if cell == nil {
|
||||
cell = OpenSourceTableViewCell(style: UITableViewCellStyle.default,
|
||||
reuseIdentifier: self.reuseIdentifier)
|
||||
}
|
||||
|
||||
let libraryTitleAttribut = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: UIFont.systemFontSize + 2)]
|
||||
let libraryLicenceAttribut = [NSFontAttributeName: UIFont.systemFont(ofSize: UIFont.systemFontSize)]
|
||||
let libraryTitle = NSMutableAttributedString(string: self.downloadedLicence?[indexPath.row].title ?? "",
|
||||
attributes: libraryTitleAttribut)
|
||||
libraryTitle.append(NSAttributedString(string: "\n\n"))
|
||||
libraryTitle.append(NSAttributedString(string: self.downloadedLicence?[indexPath.row].detail ?? "",
|
||||
attributes: libraryLicenceAttribut))
|
||||
cell?.textLabel?.attributedText = libraryTitle
|
||||
|
||||
// Configure the cell with licence
|
||||
if let licence = self.downloadedLicence?.get(at: indexPath.row) {
|
||||
cell?.configure(licence: licence, config: self.config)
|
||||
}
|
||||
|
||||
return cell!
|
||||
}
|
||||
|
||||
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
|
||||
// Automatic dimension
|
||||
return UITableViewAutomaticDimension
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// Array+Extensions.swift
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 03/03/2017.
|
||||
|
||||
import Foundation
|
||||
|
||||
extension Array {
|
||||
|
||||
/// Get an index safely
|
||||
func get(at index: Int) -> Element? {
|
||||
guard index >= 0
|
||||
&& index < count else {
|
||||
return nil
|
||||
}
|
||||
|
||||
return self[index]
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,6 @@
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 21/02/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
@@ -16,6 +14,7 @@ class LicenceDownloader: NSObject {
|
||||
/// - licences: array which contains licence model model
|
||||
/// - completion: end downloading completion
|
||||
class func downloadLicences(licences: [LicenceFile],
|
||||
config: OpenSourceControllerConfig,
|
||||
completion: @escaping () -> Void) {
|
||||
// Number of licences
|
||||
let licenceCount = licences.count
|
||||
@@ -25,7 +24,7 @@ class LicenceDownloader: NSObject {
|
||||
|
||||
// Download licence's detail for every lience
|
||||
for licence in licences {
|
||||
licence.downloadLicenceDetail(completion: { () in
|
||||
licence.downloadLicenceDetail(config: config, completion: { () in
|
||||
alreadyDownloaded += 1
|
||||
|
||||
// If this is the last licence, perfom completion
|
||||
@@ -3,8 +3,6 @@
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 05/02/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
@@ -31,12 +29,15 @@ public class LicenceFile: NSObject {
|
||||
public init(title: String, url: String) {
|
||||
self.title = title
|
||||
self.url = url
|
||||
self.detail = NSLocalizedString("Unable to load this licence.",
|
||||
comment: "")
|
||||
}
|
||||
|
||||
/// Download licence detail
|
||||
///
|
||||
/// - Parameter completion: end of download handler
|
||||
func downloadLicenceDetail(completion: @escaping (Void) -> Void) {
|
||||
func downloadLicenceDetail(config: OpenSourceControllerConfig,
|
||||
completion: @escaping (Void) -> Void) {
|
||||
if let url = URL(string: self.url) {
|
||||
let task = URLSession.shared.dataTask(with: url) { (data, _, _) in
|
||||
if let data = data,
|
||||
@@ -46,7 +47,9 @@ public class LicenceFile: NSObject {
|
||||
self.detail = html
|
||||
|
||||
// Log
|
||||
print("Licence for \(self.title ?? "") downloaded with success.")
|
||||
if config.verbose {
|
||||
print("Licence for \(self.title ?? "") downloaded with success.")
|
||||
}
|
||||
}
|
||||
completion()
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// OpenSourceControllerConfig.swift
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 08/03/2017.
|
||||
|
||||
import UIKit
|
||||
|
||||
/// Simple struct to hold settings
|
||||
public struct OpenSourceControllerConfig {
|
||||
|
||||
/// Sub-stuct holding configuration relevant to UI presentation !
|
||||
public struct UIConfig {
|
||||
/// Will be applied to the navigation bar
|
||||
public var barTintColor: UIColor?
|
||||
|
||||
/// Will be applied to the navigation bar
|
||||
public var backgroundColor: UIColor?
|
||||
|
||||
/// Will be applied to licence text
|
||||
public var licenceBackgroundColor: UIColor?
|
||||
|
||||
/// Will be applied to the navigation bar
|
||||
public var closeButtonColor: UIColor?
|
||||
|
||||
/// Will be applied to licence text
|
||||
public var licenceTextColor: UIColor?
|
||||
|
||||
/// Will be applied to licence text
|
||||
public var titleColor: UIColor?
|
||||
}
|
||||
|
||||
/// Will be applied to the navigation bar title
|
||||
public var title: String = "Tiers library"
|
||||
|
||||
// Verbose mode for print log when licence are downloaded
|
||||
public var verbose: Bool = false
|
||||
|
||||
/// UI-specific configuration.
|
||||
public var uiConfig = UIConfig()
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// OpenSourceTableViewCell.swift
|
||||
// Pods
|
||||
//
|
||||
// Created by Florian Gabach on 05/02/2017.
|
||||
|
||||
import UIKit
|
||||
|
||||
class OpenSourceTableViewCell: UITableViewCell {
|
||||
|
||||
// MARK: - Lifecycle
|
||||
|
||||
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
|
||||
super.init(style: .default,
|
||||
reuseIdentifier: reuseIdentifier)
|
||||
|
||||
// Prepare cell
|
||||
self.prepareCellComponent()
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
super.init(coder: aDecoder)
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
super.setSelected(selected, animated: animated)
|
||||
}
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
}
|
||||
|
||||
// MARK: - Prepare
|
||||
|
||||
func prepareCellComponent() {
|
||||
// Text
|
||||
self.textLabel?.numberOfLines = 0
|
||||
|
||||
// Common init
|
||||
self.accessoryType = .none
|
||||
self.selectionStyle = .none
|
||||
}
|
||||
|
||||
// MARK: - Configure
|
||||
|
||||
/// Initialize the cell content with Licence model
|
||||
///
|
||||
/// - Parameter licence: the licence model
|
||||
func configure(licence: LicenceFile, config: OpenSourceControllerConfig) {
|
||||
|
||||
// Build attributed text
|
||||
let libraryTitleAttribut = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: UIFont.systemFontSize + 2)]
|
||||
let libraryLicenceAttribut = [NSFontAttributeName: UIFont.systemFont(ofSize: UIFont.systemFontSize)]
|
||||
let libraryTitle = NSMutableAttributedString(string: licence.title ?? "",
|
||||
attributes: libraryTitleAttribut)
|
||||
libraryTitle.append(NSAttributedString(string: "\n\n"))
|
||||
libraryTitle.append(NSAttributedString(string: licence.detail ?? "",
|
||||
attributes: libraryLicenceAttribut))
|
||||
|
||||
// Set text
|
||||
self.textLabel?.attributedText = libraryTitle
|
||||
self.textLabel?.textColor = config.uiConfig.licenceTextColor
|
||||
|
||||
// Background
|
||||
if let backgroundColor = config.uiConfig.licenceBackgroundColor {
|
||||
self.backgroundColor = backgroundColor
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import XCTest
|
||||
@testable import OpenSourceControllerTests
|
||||
|
||||
XCTMain([
|
||||
testCase(OpenSourceControllerTests.allTests),
|
||||
])
|
||||
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// OpenSourceControllerTests.swift
|
||||
// OpenSourceController
|
||||
//
|
||||
// Created by Florian Gabach on {TODAY}.
|
||||
// Copyright © 2017 OpenSourceController. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import XCTest
|
||||
import OpenSourceController
|
||||
|
||||
class OpenSourceControllerTests: XCTestCase {
|
||||
func testExample() {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||
//// XCTAssertEqual(OpenSourceController().text, "Hello, World!")
|
||||
}
|
||||
}
|
||||
|
||||
#if os(Linux)
|
||||
extension OpenSourceControllerTests {
|
||||
static var allTests : [(String, (OpenSourceControllerTests) -> () throws -> Void)] {
|
||||
return [
|
||||
("testExample", testExample),
|
||||
]
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user