diff --git a/.gitignore b/.gitignore index cac804d..75b4dfa 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ DerivedData *.hmap *.ipa *.xcuserstate +.build/ \ No newline at end of file diff --git a/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata similarity index 65% rename from SwiftyAcknowledgements.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata index a3268e4..919434a 100644 --- a/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/GenerateLicenseFile.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/GenerateLicenseFile.xcscheme new file mode 100644 index 0000000..1fadcee --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/GenerateLicenseFile.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/GenerateLicenseFileExe.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/GenerateLicenseFileExe.xcscheme new file mode 100644 index 0000000..b0193df --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/GenerateLicenseFileExe.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/SwiftyAcknowledgements-Package.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/SwiftyAcknowledgements-Package.xcscheme new file mode 100644 index 0000000..0e8b5c9 --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/SwiftyAcknowledgements-Package.xcscheme @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.swiftpm/xcode/xcshareddata/xcschemes/SwiftyAcknowledgements.xcscheme b/.swiftpm/xcode/xcshareddata/xcschemes/SwiftyAcknowledgements.xcscheme new file mode 100644 index 0000000..b3c65e0 --- /dev/null +++ b/.swiftpm/xcode/xcshareddata/xcschemes/SwiftyAcknowledgements.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/Examples/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Examples/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Libraries/Library 1/LICENSE.txt b/Examples/Libraries/Library 1/LICENSE.txt similarity index 100% rename from Libraries/Library 1/LICENSE.txt rename to Examples/Libraries/Library 1/LICENSE.txt diff --git a/Libraries/Library 2/LICENSE.txt b/Examples/Libraries/Library 2/LICENSE.txt similarity index 100% rename from Libraries/Library 2/LICENSE.txt rename to Examples/Libraries/Library 2/LICENSE.txt diff --git a/Libraries/Library 3/Subfolder/LICENSE b/Examples/Libraries/Library 3/Subfolder/LICENSE similarity index 100% rename from Libraries/Library 3/Subfolder/LICENSE rename to Examples/Libraries/Library 3/Subfolder/LICENSE diff --git a/SwiftyAcknowledgements.xcodeproj/project.pbxproj b/Examples/SwiftyAcknowledgements.xcodeproj/project.pbxproj similarity index 53% rename from SwiftyAcknowledgements.xcodeproj/project.pbxproj rename to Examples/SwiftyAcknowledgements.xcodeproj/project.pbxproj index 73ebed5..8228453 100644 --- a/SwiftyAcknowledgements.xcodeproj/project.pbxproj +++ b/Examples/SwiftyAcknowledgements.xcodeproj/project.pbxproj @@ -3,40 +3,18 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 60; objects = { /* Begin PBXBuildFile section */ - 524F34CE1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524F34CD1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift */; }; - 524F34CF1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524F34CD1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift */; }; - 524F34D11BE2491800784625 /* BaseTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524F34D01BE2491800784625 /* BaseTestCase.swift */; }; - 524F34D21BE2491800784625 /* BaseTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 524F34D01BE2491800784625 /* BaseTestCase.swift */; }; - 527046721BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527046711BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift */; }; - 527046731BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 527046711BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift */; }; - 5270467E1BE203CB004CD4FC /* AcknowledgementTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5270467D1BE203CB004CD4FC /* AcknowledgementTests.swift */; }; - 527046801BE203CB004CD4FC /* SwiftyAcknowledgements.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52FC37771B9F6A0A005EFE87 /* SwiftyAcknowledgements.framework */; }; - 5270468F1BE204A1004CD4FC /* SwiftyAcknowledgements.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52AAE6231BDF87B9007EB44A /* SwiftyAcknowledgements.framework */; }; - 527046951BE204C4004CD4FC /* AcknowledgementTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5270467D1BE203CB004CD4FC /* AcknowledgementTests.swift */; }; - 527046991BE2064B004CD4FC /* Acknowledgements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 527046981BE2064B004CD4FC /* Acknowledgements.plist */; }; - 5270469A1BE2064B004CD4FC /* Acknowledgements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 527046981BE2064B004CD4FC /* Acknowledgements.plist */; }; + 33189B402C91685600E2E4F4 /* SwiftyAcknowledgements in Frameworks */ = {isa = PBXBuildFile; productRef = 33189B3F2C91685600E2E4F4 /* SwiftyAcknowledgements */; }; + 33189B432C916B0800E2E4F4 /* SwiftyAcknowledgements in Frameworks */ = {isa = PBXBuildFile; productRef = 33189B422C916B0800E2E4F4 /* SwiftyAcknowledgements */; }; 5275A9AA1B9F6F99007AD576 /* Acknowledgements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5275A9A91B9F6F99007AD576 /* Acknowledgements.plist */; }; - 52AAE62B1BDF87F5007EB44A /* Acknowledgement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37831B9F6A94005EFE87 /* Acknowledgement.swift */; }; - 52AAE62C1BDF87F5007EB44A /* AcknowledgementsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37841B9F6A94005EFE87 /* AcknowledgementsTableViewController.swift */; }; - 52AAE62D1BDF87F5007EB44A /* AcknowledgementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37851B9F6A94005EFE87 /* AcknowledgementViewController.swift */; }; - 52AAE62E1BDF87F5007EB44A /* SwiftyAcknowledgements.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FC377A1B9F6A0A005EFE87 /* SwiftyAcknowledgements.h */; settings = {ATTRIBUTES = (Public, ); }; }; 52AAE6371BDF9A51007EB44A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52AAE6361BDF9A51007EB44A /* AppDelegate.swift */; }; 52AAE6391BDF9A51007EB44A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52AAE6381BDF9A51007EB44A /* ViewController.swift */; }; 52AAE63C1BDF9A51007EB44A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52AAE63A1BDF9A51007EB44A /* Main.storyboard */; }; 52AAE63E1BDF9A51007EB44A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 52AAE63D1BDF9A51007EB44A /* Assets.xcassets */; }; - 52AAE6431BDF9AB0007EB44A /* SwiftyAcknowledgements.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52AAE6231BDF87B9007EB44A /* SwiftyAcknowledgements.framework */; }; - 52AAE6441BDF9AB0007EB44A /* SwiftyAcknowledgements.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 52AAE6231BDF87B9007EB44A /* SwiftyAcknowledgements.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 52AAE64A1BDFAB27007EB44A /* Acknowledgements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52AAE6491BDFAB27007EB44A /* Acknowledgements.plist */; }; - 52E10E141BDE37C200C6176A /* SwiftyAcknowledgements.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52FC37771B9F6A0A005EFE87 /* SwiftyAcknowledgements.framework */; }; - 52E10E151BDE37C200C6176A /* SwiftyAcknowledgements.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 52FC37771B9F6A0A005EFE87 /* SwiftyAcknowledgements.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 52FC377B1B9F6A0A005EFE87 /* SwiftyAcknowledgements.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FC377A1B9F6A0A005EFE87 /* SwiftyAcknowledgements.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52FC37861B9F6A94005EFE87 /* Acknowledgement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37831B9F6A94005EFE87 /* Acknowledgement.swift */; }; - 52FC37871B9F6A94005EFE87 /* AcknowledgementsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37841B9F6A94005EFE87 /* AcknowledgementsTableViewController.swift */; }; - 52FC37881B9F6A94005EFE87 /* AcknowledgementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37851B9F6A94005EFE87 /* AcknowledgementViewController.swift */; }; 52FC37901B9F6BEF005EFE87 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC378F1B9F6BEF005EFE87 /* AppDelegate.swift */; }; 52FC37921B9F6BEF005EFE87 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FC37911B9F6BEF005EFE87 /* ViewController.swift */; }; 52FC37951B9F6BEF005EFE87 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52FC37931B9F6BEF005EFE87 /* Main.storyboard */; }; @@ -44,45 +22,22 @@ 52FC379A1B9F6BEF005EFE87 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52FC37981B9F6BEF005EFE87 /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - 527046811BE203CB004CD4FC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52FC376E1B9F6A0A005EFE87 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52FC37761B9F6A0A005EFE87; - remoteInfo = "SwiftyAcknowledgements iOS"; - }; - 527046901BE204A1004CD4FC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52FC376E1B9F6A0A005EFE87 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52AAE6221BDF87B9007EB44A; - remoteInfo = "SwiftyAcknowledgements tvOS"; - }; - 5275A9AB1B9F6FA9007AD576 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52FC376E1B9F6A0A005EFE87 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52FC37761B9F6A0A005EFE87; - remoteInfo = SwiftyAcknowledgements; - }; - 52AAE6451BDF9AB0007EB44A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 52FC376E1B9F6A0A005EFE87 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 52AAE6221BDF87B9007EB44A; - remoteInfo = "SwiftyAcknowledgements tvOS"; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXCopyFilesBuildPhase section */ + 33D1BC0F25C696C700B3D1D4 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 7; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 52AAE6471BDF9AB0007EB44A /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( - 52AAE6441BDF9AB0007EB44A /* SwiftyAcknowledgements.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -93,7 +48,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 52E10E151BDE37C200C6176A /* SwiftyAcknowledgements.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -101,16 +55,9 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 524F34CD1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AcknowledgementsTableViewControllerTests.swift; sourceTree = ""; }; - 524F34D01BE2491800784625 /* BaseTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseTestCase.swift; sourceTree = ""; }; - 527046711BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontDescriptorExtensions.swift; sourceTree = ""; }; 5270467B1BE203CB004CD4FC /* SwiftyAcknowledgements iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SwiftyAcknowledgements iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5270467D1BE203CB004CD4FC /* AcknowledgementTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AcknowledgementTests.swift; sourceTree = ""; }; - 5270467F1BE203CB004CD4FC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5270468A1BE204A1004CD4FC /* SwiftyAcknowledgements tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SwiftyAcknowledgements tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 527046981BE2064B004CD4FC /* Acknowledgements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Acknowledgements.plist; sourceTree = ""; }; 5275A9A91B9F6F99007AD576 /* Acknowledgements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Acknowledgements.plist; sourceTree = ""; }; - 52AAE6231BDF87B9007EB44A /* SwiftyAcknowledgements.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftyAcknowledgements.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 52AAE6341BDF9A51007EB44A /* tvOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "tvOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 52AAE6361BDF9A51007EB44A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 52AAE6381BDF9A51007EB44A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -118,12 +65,6 @@ 52AAE63D1BDF9A51007EB44A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 52AAE63F1BDF9A51007EB44A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 52AAE6491BDFAB27007EB44A /* Acknowledgements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Acknowledgements.plist; sourceTree = ""; }; - 52FC37771B9F6A0A005EFE87 /* SwiftyAcknowledgements.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftyAcknowledgements.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 52FC377A1B9F6A0A005EFE87 /* SwiftyAcknowledgements.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftyAcknowledgements.h; sourceTree = ""; }; - 52FC377C1B9F6A0A005EFE87 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 52FC37831B9F6A94005EFE87 /* Acknowledgement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Acknowledgement.swift; sourceTree = ""; }; - 52FC37841B9F6A94005EFE87 /* AcknowledgementsTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AcknowledgementsTableViewController.swift; sourceTree = ""; }; - 52FC37851B9F6A94005EFE87 /* AcknowledgementViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AcknowledgementViewController.swift; sourceTree = ""; }; 52FC378D1B9F6BEF005EFE87 /* iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 52FC378F1B9F6BEF005EFE87 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 52FC37911B9F6BEF005EFE87 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -138,19 +79,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 527046801BE203CB004CD4FC /* SwiftyAcknowledgements.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 527046871BE204A1004CD4FC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5270468F1BE204A1004CD4FC /* SwiftyAcknowledgements.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52AAE61F1BDF87B9007EB44A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -161,14 +93,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 52AAE6431BDF9AB0007EB44A /* SwiftyAcknowledgements.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52FC37731B9F6A0A005EFE87 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( + 33189B432C916B0800E2E4F4 /* SwiftyAcknowledgements in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -176,47 +101,45 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 52E10E141BDE37C200C6176A /* SwiftyAcknowledgements.framework in Frameworks */, + 33189B402C91685600E2E4F4 /* SwiftyAcknowledgements in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 5270467C1BE203CB004CD4FC /* Tests */ = { + 33189B3B2C9166D000E2E4F4 /* iOS Example */ = { isa = PBXGroup; children = ( - 524F34D01BE2491800784625 /* BaseTestCase.swift */, - 5270467D1BE203CB004CD4FC /* AcknowledgementTests.swift */, - 524F34CD1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift */, - 5270469B1BE20680004CD4FC /* Resources */, - 5270469D1BE206C6004CD4FC /* Supporting Files */, - ); - path = Tests; - sourceTree = SOURCE_ROOT; - }; - 5270469B1BE20680004CD4FC /* Resources */ = { - isa = PBXGroup; - children = ( - 527046981BE2064B004CD4FC /* Acknowledgements.plist */, + 52FC378F1B9F6BEF005EFE87 /* AppDelegate.swift */, + 52FC37911B9F6BEF005EFE87 /* ViewController.swift */, + 52FC37931B9F6BEF005EFE87 /* Main.storyboard */, + 52FC37961B9F6BEF005EFE87 /* Assets.xcassets */, + 52FC37981B9F6BEF005EFE87 /* LaunchScreen.storyboard */, + 5270469F1BE20701004CD4FC /* Resources */, + 527046A01BE20705004CD4FC /* Supporting Files */, ); - path = Resources; + path = "iOS Example"; sourceTree = ""; }; - 5270469D1BE206C6004CD4FC /* Supporting Files */ = { + 33189B3C2C9166E000E2E4F4 /* tvOS Example */ = { isa = PBXGroup; children = ( - 5270467F1BE203CB004CD4FC /* Info.plist */, + 52AAE6361BDF9A51007EB44A /* AppDelegate.swift */, + 52AAE6381BDF9A51007EB44A /* ViewController.swift */, + 52AAE63A1BDF9A51007EB44A /* Main.storyboard */, + 52AAE63D1BDF9A51007EB44A /* Assets.xcassets */, + 527046A11BE2070B004CD4FC /* Resources */, + 527046A21BE20710004CD4FC /* Supporting Files */, ); - path = "Supporting Files"; + path = "tvOS Example"; sourceTree = ""; }; - 5270469E1BE206D5004CD4FC /* Supporting Files */ = { + 33189B412C916B0800E2E4F4 /* Frameworks */ = { isa = PBXGroup; children = ( - 52FC377C1B9F6A0A005EFE87 /* Info.plist */, ); - path = "Supporting Files"; + name = Frameworks; sourceTree = ""; }; 5270469F1BE20701004CD4FC /* Resources */ = { @@ -251,27 +174,12 @@ path = "Supporting Files"; sourceTree = ""; }; - 52AAE6351BDF9A51007EB44A /* tvOS Example */ = { - isa = PBXGroup; - children = ( - 52AAE6361BDF9A51007EB44A /* AppDelegate.swift */, - 52AAE6381BDF9A51007EB44A /* ViewController.swift */, - 52AAE63A1BDF9A51007EB44A /* Main.storyboard */, - 52AAE63D1BDF9A51007EB44A /* Assets.xcassets */, - 527046A11BE2070B004CD4FC /* Resources */, - 527046A21BE20710004CD4FC /* Supporting Files */, - ); - name = "tvOS Example"; - path = "Examples/tvOS Example"; - sourceTree = ""; - }; 52FC376D1B9F6A0A005EFE87 = { isa = PBXGroup; children = ( - 52FC37791B9F6A0A005EFE87 /* SwiftyAcknowledgements */, - 5270467C1BE203CB004CD4FC /* Tests */, - 52FC378E1B9F6BEF005EFE87 /* iOS Example */, - 52AAE6351BDF9A51007EB44A /* tvOS Example */, + 33189B3B2C9166D000E2E4F4 /* iOS Example */, + 33189B3C2C9166E000E2E4F4 /* tvOS Example */, + 33189B412C916B0800E2E4F4 /* Frameworks */, 52FC37781B9F6A0A005EFE87 /* Products */, ); sourceTree = ""; @@ -279,9 +187,7 @@ 52FC37781B9F6A0A005EFE87 /* Products */ = { isa = PBXGroup; children = ( - 52FC37771B9F6A0A005EFE87 /* SwiftyAcknowledgements.framework */, 52FC378D1B9F6BEF005EFE87 /* iOS Example.app */, - 52AAE6231BDF87B9007EB44A /* SwiftyAcknowledgements.framework */, 52AAE6341BDF9A51007EB44A /* tvOS Example.app */, 5270467B1BE203CB004CD4FC /* SwiftyAcknowledgements iOS Tests.xctest */, 5270468A1BE204A1004CD4FC /* SwiftyAcknowledgements tvOS Tests.xctest */, @@ -289,55 +195,8 @@ name = Products; sourceTree = ""; }; - 52FC37791B9F6A0A005EFE87 /* SwiftyAcknowledgements */ = { - isa = PBXGroup; - children = ( - 52FC37831B9F6A94005EFE87 /* Acknowledgement.swift */, - 52FC37841B9F6A94005EFE87 /* AcknowledgementsTableViewController.swift */, - 52FC37851B9F6A94005EFE87 /* AcknowledgementViewController.swift */, - 527046711BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift */, - 52FC377A1B9F6A0A005EFE87 /* SwiftyAcknowledgements.h */, - 5270469E1BE206D5004CD4FC /* Supporting Files */, - ); - path = SwiftyAcknowledgements; - sourceTree = ""; - }; - 52FC378E1B9F6BEF005EFE87 /* iOS Example */ = { - isa = PBXGroup; - children = ( - 52FC378F1B9F6BEF005EFE87 /* AppDelegate.swift */, - 52FC37911B9F6BEF005EFE87 /* ViewController.swift */, - 52FC37931B9F6BEF005EFE87 /* Main.storyboard */, - 52FC37961B9F6BEF005EFE87 /* Assets.xcassets */, - 52FC37981B9F6BEF005EFE87 /* LaunchScreen.storyboard */, - 5270469F1BE20701004CD4FC /* Resources */, - 527046A01BE20705004CD4FC /* Supporting Files */, - ); - name = "iOS Example"; - path = "Examples/iOS Example"; - sourceTree = ""; - }; /* End PBXGroup section */ -/* Begin PBXHeadersBuildPhase section */ - 52AAE6201BDF87B9007EB44A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 52AAE62E1BDF87F5007EB44A /* SwiftyAcknowledgements.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52FC37741B9F6A0A005EFE87 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 52FC377B1B9F6A0A005EFE87 /* SwiftyAcknowledgements.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - /* Begin PBXNativeTarget section */ 5270467A1BE203CB004CD4FC /* SwiftyAcknowledgements iOS Tests */ = { isa = PBXNativeTarget; @@ -347,11 +206,11 @@ 527046971BE20587004CD4FC /* Generate Acknowledgements */, 527046781BE203CB004CD4FC /* Frameworks */, 527046791BE203CB004CD4FC /* Resources */, + 33D1BC0F25C696C700B3D1D4 /* CopyFiles */, ); buildRules = ( ); dependencies = ( - 527046821BE203CB004CD4FC /* PBXTargetDependency */, ); name = "SwiftyAcknowledgements iOS Tests"; productName = "SwiftyAcknowledgementsTests iOS"; @@ -370,31 +229,12 @@ buildRules = ( ); dependencies = ( - 527046911BE204A1004CD4FC /* PBXTargetDependency */, ); name = "SwiftyAcknowledgements tvOS Tests"; productName = "SwiftyAcknowledgements tvOS Tests"; productReference = 5270468A1BE204A1004CD4FC /* SwiftyAcknowledgements tvOS Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 52AAE6221BDF87B9007EB44A /* SwiftyAcknowledgements tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52AAE6281BDF87B9007EB44A /* Build configuration list for PBXNativeTarget "SwiftyAcknowledgements tvOS" */; - buildPhases = ( - 52AAE61E1BDF87B9007EB44A /* Sources */, - 52AAE61F1BDF87B9007EB44A /* Frameworks */, - 52AAE6201BDF87B9007EB44A /* Headers */, - 52AAE6211BDF87B9007EB44A /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "SwiftyAcknowledgements tvOS"; - productName = "SwiftyAcknowledgements tvOS"; - productReference = 52AAE6231BDF87B9007EB44A /* SwiftyAcknowledgements.framework */; - productType = "com.apple.product-type.framework"; - }; 52AAE6331BDF9A51007EB44A /* tvOS Example */ = { isa = PBXNativeTarget; buildConfigurationList = 52AAE6401BDF9A51007EB44A /* Build configuration list for PBXNativeTarget "tvOS Example" */; @@ -408,31 +248,12 @@ buildRules = ( ); dependencies = ( - 52AAE6461BDF9AB0007EB44A /* PBXTargetDependency */, ); name = "tvOS Example"; productName = "tvOS Example"; productReference = 52AAE6341BDF9A51007EB44A /* tvOS Example.app */; productType = "com.apple.product-type.application"; }; - 52FC37761B9F6A0A005EFE87 /* SwiftyAcknowledgements iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52FC377F1B9F6A0A005EFE87 /* Build configuration list for PBXNativeTarget "SwiftyAcknowledgements iOS" */; - buildPhases = ( - 52FC37721B9F6A0A005EFE87 /* Sources */, - 52FC37731B9F6A0A005EFE87 /* Frameworks */, - 52FC37741B9F6A0A005EFE87 /* Headers */, - 52FC37751B9F6A0A005EFE87 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "SwiftyAcknowledgements iOS"; - productName = SwiftyAcknowledgements; - productReference = 52FC37771B9F6A0A005EFE87 /* SwiftyAcknowledgements.framework */; - productType = "com.apple.product-type.framework"; - }; 52FC378C1B9F6BEF005EFE87 /* iOS Example */ = { isa = PBXNativeTarget; buildConfigurationList = 52FC379C1B9F6BEF005EFE87 /* Build configuration list for PBXNativeTarget "iOS Example" */; @@ -446,7 +267,6 @@ buildRules = ( ); dependencies = ( - 5275A9AC1B9F6FA9007AD576 /* PBXTargetDependency */, ); name = "iOS Example"; productName = "iOS Example"; @@ -471,18 +291,10 @@ CreatedOnToolsVersion = 7.1; LastSwiftMigration = 0820; }; - 52AAE6221BDF87B9007EB44A = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0820; - }; 52AAE6331BDF9A51007EB44A = { CreatedOnToolsVersion = 7.1; LastSwiftMigration = 0820; }; - 52FC37761B9F6A0A005EFE87 = { - CreatedOnToolsVersion = 7.0; - LastSwiftMigration = 0820; - }; 52FC378C1B9F6BEF005EFE87 = { CreatedOnToolsVersion = 7.0; LastSwiftMigration = 0820; @@ -498,14 +310,15 @@ Base, ); mainGroup = 52FC376D1B9F6A0A005EFE87; + packageReferences = ( + 33189B3E2C91685600E2E4F4 /* XCLocalSwiftPackageReference "../../SwiftyAcknowledgements" */, + ); productRefGroup = 52FC37781B9F6A0A005EFE87 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 52FC37761B9F6A0A005EFE87 /* SwiftyAcknowledgements iOS */, 5270467A1BE203CB004CD4FC /* SwiftyAcknowledgements iOS Tests */, 52FC378C1B9F6BEF005EFE87 /* iOS Example */, - 52AAE6221BDF87B9007EB44A /* SwiftyAcknowledgements tvOS */, 527046891BE204A1004CD4FC /* SwiftyAcknowledgements tvOS Tests */, 52AAE6331BDF9A51007EB44A /* tvOS Example */, ); @@ -517,19 +330,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 527046991BE2064B004CD4FC /* Acknowledgements.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; 527046881BE204A1004CD4FC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5270469A1BE2064B004CD4FC /* Acknowledgements.plist in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52AAE6211BDF87B9007EB44A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -546,13 +350,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 52FC37751B9F6A0A005EFE87 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 52FC378B1B9F6BEF005EFE87 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -579,7 +376,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/Tests/Resources/Acknowledgements.plist"; + shellScript = "#${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/SwiftyAcknowledgementsTests/TestResources/Acknowledgements.plist\n"; }; 527046971BE20587004CD4FC /* Generate Acknowledgements */ = { isa = PBXShellScriptBuildPhase; @@ -593,10 +390,11 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/Tests/Resources/Acknowledgements.plist"; + shellScript = "#${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/SwiftyAcknowledgementsTests/TestResources/Acknowledgements.plist\n"; }; 5275A9A81B9F6D18007AD576 /* Generate Acknowledgements */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -604,13 +402,15 @@ ); name = "Generate Acknowledgements"; outputPaths = ( + "\"${PROJECT_DIR}/${ACK_PLIST_PATH}\"", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/Examples/iOS\\ Example/Resources/Acknowledgements.plist"; + shellScript = "#!/usr/bin/env bash\n\nACK_PLIST_PATH=\"iOS Example/Resources/Acknowledgements.plist\"\nROOT_DEPENDENCIES_DIRECTORY=\"Examples/Libraries\" # if you're exclusively using SPM, this should work. You may add other resources like so:\n# ROOT_SECONDARY_DEPENDENCIES_DIRECTORY=\"another/path\"\n\n#pushd \"${BUILD_ROOT}/../../SourcePackages/checkouts/SwiftyAcknowledgements/\"\npushd \"${PROJECT_DIR}/../\"\n./GenerateLicenseFile \"${ROOT_DEPENDENCIES_DIRECTORY}\" -o \"${PROJECT_DIR}/${ACK_PLIST_PATH}\"\n# ./GenerateLicenseFile \"${ROOT_DEPENDENCIES_DIRECTORY}\" \"${ROOT_SECONDARY_DEPENDENCIES_DIRECTORY}\" -o \"${PROJECT_DIR}/${ACK_PLIST_PATH}\" # use this if you have multiple dependency directories\npopd\n"; }; 52AAE6481BDFAAE1007EB44A /* Generate Acknowledgements */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -621,7 +421,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/Examples/tvOS\\ Example/Resources/Acknowledgements.plist"; + shellScript = "#!/usr/bin/env bash\n\nACK_PLIST_PATH=\"tvOS Example/Resources/Acknowledgements.plist\"\nROOT_DEPENDENCIES_DIRECTORY=\"Examples/Libraries\" # if you're exclusively using SPM, this should work. You may add other resources like so:\n# ROOT_SECONDARY_DEPENDENCIES_DIRECTORY=\"another/path\"\n\n# pushd \"${BUILD_ROOT}/../../SourcePackages/checkouts/SwiftyAcknowledgements/\"\npushd \"${PROJECT_DIR}/../\"\n./GenerateLicenseFile \"${ROOT_DEPENDENCIES_DIRECTORY}\" -o \"${PROJECT_DIR}/${ACK_PLIST_PATH}\"\n# ./GenerateLicenseFile \"${ROOT_DEPENDENCIES_DIRECTORY}\" \"${ROOT_SECONDARY_DEPENDENCIES_DIRECTORY}\" -o \"${PROJECT_DIR}/${ACK_PLIST_PATH}\" # use this if you have multiple dependency directories\npopd\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -630,9 +430,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 524F34CE1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift in Sources */, - 5270467E1BE203CB004CD4FC /* AcknowledgementTests.swift in Sources */, - 524F34D11BE2491800784625 /* BaseTestCase.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -640,20 +437,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 524F34CF1BE248EE00784625 /* AcknowledgementsTableViewControllerTests.swift in Sources */, - 527046951BE204C4004CD4FC /* AcknowledgementTests.swift in Sources */, - 524F34D21BE2491800784625 /* BaseTestCase.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 52AAE61E1BDF87B9007EB44A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 52AAE62C1BDF87F5007EB44A /* AcknowledgementsTableViewController.swift in Sources */, - 52AAE62D1BDF87F5007EB44A /* AcknowledgementViewController.swift in Sources */, - 527046731BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift in Sources */, - 52AAE62B1BDF87F5007EB44A /* Acknowledgement.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -666,17 +449,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 52FC37721B9F6A0A005EFE87 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 52FC37871B9F6A94005EFE87 /* AcknowledgementsTableViewController.swift in Sources */, - 52FC37881B9F6A94005EFE87 /* AcknowledgementViewController.swift in Sources */, - 527046721BE0EE86004CD4FC /* UIFontDescriptorExtensions.swift in Sources */, - 52FC37861B9F6A94005EFE87 /* Acknowledgement.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 52FC37891B9F6BEF005EFE87 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -688,29 +460,6 @@ }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - 527046821BE203CB004CD4FC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52FC37761B9F6A0A005EFE87 /* SwiftyAcknowledgements iOS */; - targetProxy = 527046811BE203CB004CD4FC /* PBXContainerItemProxy */; - }; - 527046911BE204A1004CD4FC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52AAE6221BDF87B9007EB44A /* SwiftyAcknowledgements tvOS */; - targetProxy = 527046901BE204A1004CD4FC /* PBXContainerItemProxy */; - }; - 5275A9AC1B9F6FA9007AD576 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52FC37761B9F6A0A005EFE87 /* SwiftyAcknowledgements iOS */; - targetProxy = 5275A9AB1B9F6FA9007AD576 /* PBXContainerItemProxy */; - }; - 52AAE6461BDF9AB0007EB44A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 52AAE6221BDF87B9007EB44A /* SwiftyAcknowledgements tvOS */; - targetProxy = 52AAE6451BDF9AB0007EB44A /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin PBXVariantGroup section */ 52AAE63A1BDF9A51007EB44A /* Main.storyboard */ = { isa = PBXVariantGroup; @@ -742,9 +491,14 @@ 527046841BE203CB004CD4FC /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Supporting Files/TestsInfo.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_SWIFT_FLAGS = "-DXCODE"; PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.SwiftyAcknowledgementsTests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -753,9 +507,14 @@ 527046851BE203CB004CD4FC /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; + INFOPLIST_FILE = "Supporting Files/TestsInfo.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_SWIFT_FLAGS = "-DXCODE"; PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.SwiftyAcknowledgementsTests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -764,8 +523,13 @@ 527046931BE204A1004CD4FC /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + INFOPLIST_FILE = "Supporting Files/TestsInfo.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_SWIFT_FLAGS = "-DXCODE"; PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.SwiftyAcknowledgements-tvOS-Tests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; @@ -776,8 +540,13 @@ 527046941BE204A1004CD4FC /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - INFOPLIST_FILE = "Tests/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + INFOPLIST_FILE = "Supporting Files/TestsInfo.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_SWIFT_FLAGS = "-DXCODE"; PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.SwiftyAcknowledgements-tvOS-Tests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; @@ -785,75 +554,39 @@ }; name = Release; }; - 52AAE6291BDF87B9007EB44A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "SwiftyAcknowledgements/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = de.mathiasnagler.SwiftyAcknowledgements; - PRODUCT_NAME = SwiftyAcknowledgements; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 52AAE62A1BDF87B9007EB44A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "SwiftyAcknowledgements/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = de.mathiasnagler.SwiftyAcknowledgements; - PRODUCT_NAME = SwiftyAcknowledgements; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; 52AAE6411BDF9A51007EB44A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - INFOPLIST_FILE = "Examples/tvOS Example/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + INFOPLIST_FILE = "tvOS Example/Supporting Files/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.tvOS-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; 52AAE6421BDF9A51007EB44A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - INFOPLIST_FILE = "Examples/tvOS Example/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + INFOPLIST_FILE = "tvOS Example/Supporting Files/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.tvOS-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Release; }; @@ -962,7 +695,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -971,51 +705,16 @@ }; name = Release; }; - 52FC37801B9F6A0A005EFE87 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "SwiftyAcknowledgements/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = de.mathiasnagler.SwiftyAcknowledgements; - PRODUCT_NAME = SwiftyAcknowledgements; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 52FC37811B9F6A0A005EFE87 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "SwiftyAcknowledgements/Supporting Files/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = de.mathiasnagler.SwiftyAcknowledgements; - PRODUCT_NAME = SwiftyAcknowledgements; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; 52FC379D1B9F6BEF005EFE87 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = "Examples/iOS Example/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + INFOPLIST_FILE = "iOS Example/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.iOS-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -1024,13 +723,17 @@ 52FC379E1B9F6BEF005EFE87 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = "Examples/iOS Example/Supporting Files/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + INFOPLIST_FILE = "iOS Example/Supporting Files/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "de.mathiasnagler.iOS-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; }; name = Release; }; @@ -1055,15 +758,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 52AAE6281BDF87B9007EB44A /* Build configuration list for PBXNativeTarget "SwiftyAcknowledgements tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52AAE6291BDF87B9007EB44A /* Debug */, - 52AAE62A1BDF87B9007EB44A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 52AAE6401BDF9A51007EB44A /* Build configuration list for PBXNativeTarget "tvOS Example" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1082,15 +776,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 52FC377F1B9F6A0A005EFE87 /* Build configuration list for PBXNativeTarget "SwiftyAcknowledgements iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 52FC37801B9F6A0A005EFE87 /* Debug */, - 52FC37811B9F6A0A005EFE87 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 52FC379C1B9F6BEF005EFE87 /* Build configuration list for PBXNativeTarget "iOS Example" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1101,6 +786,25 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 33189B3E2C91685600E2E4F4 /* XCLocalSwiftPackageReference "../../SwiftyAcknowledgements" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../../SwiftyAcknowledgements; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 33189B3F2C91685600E2E4F4 /* SwiftyAcknowledgements */ = { + isa = XCSwiftPackageProductDependency; + productName = SwiftyAcknowledgements; + }; + 33189B422C916B0800E2E4F4 /* SwiftyAcknowledgements */ = { + isa = XCSwiftPackageProductDependency; + package = 33189B3E2C91685600E2E4F4 /* XCLocalSwiftPackageReference "../../SwiftyAcknowledgements" */; + productName = SwiftyAcknowledgements; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 52FC376E1B9F6A0A005EFE87 /* Project object */; } diff --git a/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..66cc87c --- /dev/null +++ b/Examples/SwiftyAcknowledgements.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,15 @@ +{ + "originHash" : "907d69151ab172208851b8c80175e11412585ab00f806e95afaf0320e59d7132", + "pins" : [ + { + "identity" : "swift-argument-parser", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-argument-parser", + "state" : { + "revision" : "41982a3656a71c768319979febd796c6fd111d5c", + "version" : "1.5.0" + } + } + ], + "version" : 3 +} diff --git a/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS Tests.xcscheme b/Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS Tests.xcscheme similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS Tests.xcscheme rename to Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS Tests.xcscheme diff --git a/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS.xcscheme b/Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS.xcscheme similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS.xcscheme rename to Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements iOS.xcscheme diff --git a/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS Tests.xcscheme b/Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS Tests.xcscheme similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS Tests.xcscheme rename to Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS Tests.xcscheme diff --git a/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS.xcscheme b/Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS.xcscheme similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS.xcscheme rename to Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/SwiftyAcknowledgements tvOS.xcscheme diff --git a/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme b/Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme rename to Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme diff --git a/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/tvOS Example.xcscheme b/Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/tvOS Example.xcscheme similarity index 100% rename from SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/tvOS Example.xcscheme rename to Examples/SwiftyAcknowledgements.xcodeproj/xcshareddata/xcschemes/tvOS Example.xcscheme diff --git a/Examples/iOS Example/Base.lproj/Main.storyboard b/Examples/iOS Example/Base.lproj/Main.storyboard index c74df72..fc0d3ff 100644 --- a/Examples/iOS Example/Base.lproj/Main.storyboard +++ b/Examples/iOS Example/Base.lproj/Main.storyboard @@ -1,7 +1,10 @@ - - + + + - + + + @@ -13,31 +16,28 @@ - + - + - - - - + @@ -51,8 +51,7 @@ - - + @@ -69,10 +68,9 @@ - + - - + @@ -95,9 +93,8 @@ - + - diff --git a/Examples/iOS Example/ViewController.swift b/Examples/iOS Example/ViewController.swift index 70cdd7d..a19bb34 100644 --- a/Examples/iOS Example/ViewController.swift +++ b/Examples/iOS Example/ViewController.swift @@ -14,7 +14,7 @@ class ViewController: UIViewController { @IBAction func showAcknowledgements() { let vc = AcknowledgementsTableViewController() vc.headerText = "SwiftyAcknowledgements makes use of the following third party libraries:" - vc.footerText = "Third party libraries integrated using Carthage:\nhttp://github.com/carthage" + vc.footerText = "Third party libraries integrated using Swift Package Manager" vc.acknowledgements.append(Acknowledgement(title: "Custom Acknowledgement", text: "This is a custom acknowledgement added via code.")) diff --git a/Examples/tvOS Example/AppDelegate.swift b/Examples/tvOS Example/AppDelegate.swift index e1ace3c..dd96698 100644 --- a/Examples/tvOS Example/AppDelegate.swift +++ b/Examples/tvOS Example/AppDelegate.swift @@ -14,7 +14,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json index 6a3dcfa..925aaed 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json @@ -1,26 +1,32 @@ { "assets" : [ { - "size" : "1280x768", - "idiom" : "tv", "filename" : "App Icon - Large.imagestack", - "role" : "primary-app-icon" + "idiom" : "tv", + "role" : "primary-app-icon", + "size" : "1280x768" }, { - "size" : "400x240", - "idiom" : "tv", "filename" : "App Icon - Small.imagestack", - "role" : "primary-app-icon" + "idiom" : "tv", + "role" : "primary-app-icon", + "size" : "400x240" }, { - "size" : "1920x720", + "filename" : "Top Shelf Image Wide.imageset", "idiom" : "tv", + "role" : "top-shelf-image-wide", + "size" : "2320x720" + }, + { "filename" : "Top Shelf Image.imageset", - "role" : "top-shelf-image" + "idiom" : "tv", + "role" : "top-shelf-image", + "size" : "1920x720" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json new file mode 100644 index 0000000..795cce1 --- /dev/null +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json index 0564959..795cce1 100644 --- a/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json @@ -3,10 +3,14 @@ { "idiom" : "tv", "scale" : "1x" + }, + { + "idiom" : "tv", + "scale" : "2x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Assets.xcassets/LaunchImage.launchimage/Contents.json b/Examples/tvOS Example/Assets.xcassets/LaunchImage.launchimage/Contents.json index 29d94c7..18498e0 100644 --- a/Examples/tvOS Example/Assets.xcassets/LaunchImage.launchimage/Contents.json +++ b/Examples/tvOS Example/Assets.xcassets/LaunchImage.launchimage/Contents.json @@ -1,15 +1,22 @@ { "images" : [ { - "orientation" : "landscape", + "extent" : "full-screen", "idiom" : "tv", + "minimum-system-version" : "11.0", + "orientation" : "landscape", + "scale" : "2x" + }, + { "extent" : "full-screen", + "idiom" : "tv", "minimum-system-version" : "9.0", + "orientation" : "landscape", "scale" : "1x" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Examples/tvOS Example/Base.lproj/Main.storyboard b/Examples/tvOS Example/Base.lproj/Main.storyboard index ebb8839..15ff587 100644 --- a/Examples/tvOS Example/Base.lproj/Main.storyboard +++ b/Examples/tvOS Example/Base.lproj/Main.storyboard @@ -1,7 +1,10 @@ - - + + + - + + + @@ -17,25 +20,25 @@ - + - - - @@ -47,8 +50,7 @@ - - + @@ -60,15 +62,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - diff --git a/Examples/tvOS Example/ViewController.swift b/Examples/tvOS Example/ViewController.swift index d2f910b..dc95dd9 100644 --- a/Examples/tvOS Example/ViewController.swift +++ b/Examples/tvOS Example/ViewController.swift @@ -14,8 +14,8 @@ class ViewController: UIViewController { @IBAction func showAcknowledgements() { let vc = AcknowledgementsTableViewController() vc.headerText = "SwiftyAcknowledgements makes use of the following third party libraries:" - vc.footerText = "Third party libraries integrated using Carthage:\nhttp://github.com/carthage" - + vc.footerText = "Third party libraries integrated using Swift Package Manager" + vc.acknowledgements.append(Acknowledgement(title: "Custom Acknowledgement", text: "This is a custom acknowledgement added via code.")) navigationController?.pushViewController(vc, animated: true) diff --git a/GenerateLicenseFile b/GenerateLicenseFile new file mode 100755 index 0000000..2e2a553 Binary files /dev/null and b/GenerateLicenseFile differ diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 0000000..9a446d3 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "swift-argument-parser", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-argument-parser", + "state" : { + "revision" : "41982a3656a71c768319979febd796c6fd111d5c", + "version" : "1.5.0" + } + } + ], + "version" : 2 +} diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..51c895d --- /dev/null +++ b/Package.swift @@ -0,0 +1,66 @@ +// swift-tools-version:5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "SwiftyAcknowledgements", + platforms: [ + .iOS(.v9), + .tvOS(.v9), + .macOS(.v12), + ], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "SwiftyAcknowledgements", + targets: ["SwiftyAcknowledgements"]), + .library( + name: "LicenseFileGenerator", + targets: ["LicenseFileGenerator"]), + .executable( + name: "GenerateLicenseFileExe", + targets: ["GenerateLicenseFileExe"]), + .plugin( + name: "GenerateLicenseFile", + targets: ["GenerateLicenseFile"]) + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + .package(url: "https://github.com/apple/swift-argument-parser", .upToNextMajor(from: "1.0.0")), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "SwiftyAcknowledgements", + dependencies: []), + .target( + name: "LicenseFileGenerator"), + .executableTarget( + name: "GenerateLicenseFileExe", + dependencies: [ + "LicenseFileGenerator", + .product(name: "ArgumentParser", package: "swift-argument-parser"), + ]), + .plugin( + name: "GenerateLicenseFile", + capability: .command( + intent: .custom( + verb: "generate-license-file", + description: "Generates the licenses plist file"), + permissions: [ + .writeToPackageDirectory(reason: "Writes licenses plist file") + ]), + dependencies: [ + "GenerateLicenseFileExe", + ]), + .testTarget( + name: "SwiftyAcknowledgementsTests", + dependencies: ["SwiftyAcknowledgements"], + resources: [ + .copy("TestResources/") + ]), + ] +) diff --git a/Plugins/GenerateLicenseFile/plugin.swift b/Plugins/GenerateLicenseFile/plugin.swift new file mode 100644 index 0000000..0337296 --- /dev/null +++ b/Plugins/GenerateLicenseFile/plugin.swift @@ -0,0 +1,44 @@ +import Foundation +import PackagePlugin + + +/** + Right now this only works on SPM projects and not in Xcode projects. No idea if that will be fixed later as it plain just doesn't run in Xcode projects. + */ +@main +struct GenerateLicenseFile: CommandPlugin { + func performCommand(context: PluginContext, arguments: [String]) async throws { + let tool = try context.tool(named: "GenerateLicenseFileExe") + let toolUrl = URL(fileURLWithPath: tool.path.string) + + var updatedArguments: [String] = [] + var skip = false + for argument in arguments { + guard skip == false else { + skip = false + continue + } + if argument == "--target" { + skip = true + } else { + updatedArguments.append(argument) + } + } + + var directories = ["\(context.package.directory)"] + if updatedArguments.contains("-b") { + directories = [] + } + + updatedArguments.removeAll(where: { $0 == "-b" }) + + directories += updatedArguments + + let process = Process() + process.executableURL = toolUrl + process.arguments = directories + ["-o", "Acknowledgements.plist"] + + try process.run() + process.waitUntilExit() + } +} diff --git a/README.md b/README.md index ccb8f02..4fcaf34 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # SwiftyAcknowledgements -[![Build Status](https://travis-ci.org/mathiasnagler/SwiftyAcknowledgements.svg?branch=develop)](https://travis-ci.org/mathiasnagler/SwiftyAcknowledgements) -[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) ![Platform](https://img.shields.io/badge/platform-iOS%20%7C%20tvOS-lightgrey.svg) SwiftyAcknowledgements makes it easy to integrate acknowledgements for third party libraries into your iOS Apps. -## Requirements +I should Swiftly Acknowledge that I am not the original author of this package. I've simply updated it with SPM and a couple other things. You can find the original [here](https://github.com/mathiasnagler/SwiftyAcknowledgements). -- iOS 8.0 or higher -- tvOS 9.0 or higher -- Xcode 8.2 or higher +## Requirements (might be accurate) + +- iOS 12.0 or higher +- tvOS 12.0 or higher +- Xcode 14 or higher ## Components @@ -17,37 +17,38 @@ SwiftyAcknowledgements consists of two components. ### Script -`GenerateLicenseFile.swift` is a Swift script that scans a directory for files named `LICENSE` or `LICENSE.txt` and generates a property list containing the content of every license along with a name. The name will be set to the name of the folder that the corresponding license file is contained in. +`GenerateLicenseFileExe` is a Swift script that scans a directory for files containing the word `license` and generates a property list containing the content of every license along with a name. The name will be set to the name of the folder that the corresponding license file is contained in. ### Framework -**SwiftyAcknowledgements** comes with a framework `SwiftyAcknowledgements.framework` that can be used to visualize the generated license file within an iOS App. The framework contains a **TableViewController** and a **DetailViewController** and can be integrated programatically or using a **Storyboard**. +~~**SwiftyAcknowledgements** comes with a framework `SwiftyAcknowledgements.framework` that can be used to visualize the generated license file within an iOS App. The framework contains a **TableViewController** and a **DetailViewController** and can be integrated programatically or using a **Storyboard**.~~ +Using SPM the library is statically linked and magic. ## Installation -### Carthage - -[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. - -To integrate **SwiftyAcknowledgements** into your Xcode projekct using **Carthage**, specify it in your `Cartfile`: - -``` -github "mathiasnagler/SwiftyAcknowledgements" -``` - -Follow the instructions in the [Carthage Documentation](https://github.com/Carthage/Carthage) to install the built framework into your Xcode project. - -### Script - -To integrate the script into your Xcode project create a subfolder `Scripts` in the folder that contains your Xcode project. Then, copy `GenerateLicenseFile.swift` to that subfolder. In your target, create a new `Run Script Build Phase` like this: - -``` -${SRCROOT}/Scripts/GenerateLicenseFile.swift ${SRCROOT}/Libraries/ ${PROJECT_DIR}/iOS\ Example/Acknowledgements.plist -``` - -**Note:** The first parameter for the script is the input directory that should be scanned for license files. The second parameter is the output file that should be generated by the script. - -After that, build your project and add the generated license file to your Xcode project. +### Swift Package Manger +1. Add this url to your SPM packages: + ``` + https://github.com/mredig/SwiftyAcknowledgements.git + ``` + +1. Create a new run script in Xcode's build process and paste (with edits) this snippet. Update the `ACK_PLIST_PATH` and `ROOT_DEPENDENCIES_DIRECTORY` (if necessary) variables. You can add multiple paths with dependcy directories. + ```sh + #!/usr/bin/env bash + + ACK_PLIST_PATH="[Your Project]/[Project Path]/Acknowledgements.plist" + ROOT_DEPENDENCIES_DIRECTORY="../" # if you're exclusively using SPM, this should work. You may add other resources like so: + # ROOT_SECONDARY_DEPENDENCIES_DIRECTORY="another/path" + + pushd "${BUILD_ROOT}/../../SourcePackages/checkouts/SwiftyAcknowledgements/" + ./GenerateLicenseFile "${ROOT_DEPENDENCIES_DIRECTORY}" -o "${PROJECT_DIR}/${ACK_PLIST_PATH}" + # ./GenerateLicenseFile "${ROOT_DEPENDENCIES_DIRECTORY}" "${ROOT_SECONDARY_DEPENDENCIES_DIRECTORY}" -o "${PROJECT_DIR}/${ACK_PLIST_PATH}" # use this if you have multiple dependency directories + popd + ``` +1. Uncheck `Based on Dependency Analysis` on the run step. +1. After that, build your project. This will create the Acknowledgements.plist file that you can then add to your project. +1. Subsequent builds will automatically update the file with additional dependencies as you add and remove* them. + * \* you might need to manually remove the source dependency folder, as Xcode doesn't appear to delete the checked out code when you remove an SPM dependency. ## Usage diff --git a/Scripts/GenerateLicenseFile.swift b/Scripts/GenerateLicenseFile.swift deleted file mode 100755 index e032c1f..0000000 --- a/Scripts/GenerateLicenseFile.swift +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env xcrun --sdk macosx swift - -import Foundation - -// MARK: String Extensions - -extension String { - func ends(with str: String) -> Bool { - if let range = self.range(of: str, options: .backwards) { - return range.upperBound == self.endIndex - } - return false - } -} - -// MARK: Internal functions - -func locateLicense(inFolder folder: String) -> String? { - let filemanager = FileManager.default - - guard let subpaths = try? filemanager.subpathsOfDirectory(atPath: folder) else { - return nil - } - - var filteredPaths = subpaths.filter { $0.ends(with: "LICENSE") || $0.ends(with: "LICENSE.txt") } - filteredPaths = filteredPaths.map { folder + "/" + $0 } - return filteredPaths.first -} - -// MARK: Main - -// Grab command line arguments -let arguments = CommandLine.arguments - -// Get the filename of the swift script for logging purposes -let scriptFileName = arguments[0].components(separatedBy: "/").last! - -// Check argument count -if arguments.count != 3 { - print("Invalid parameters. Usage: ./\(scriptFileName) ") - exit(1) -} - -var inDict = arguments[1] -let outFile = arguments[2] - -let outURL = URL(fileURLWithPath: outFile) - -// Add '/' to inDict if it is missing, otherwise the script will not find any subpaths -if !inDict.ends(with: "/") { - inDict += "/" -} - -// Initialize default NSFileManager -let filemanager = FileManager.default - -// Get subpaths (libraries at path) -guard let libraries = try? filemanager.contentsOfDirectory(atPath: inDict), libraries.count > 0 else { - print("Could not access directory at path \(inDict).") - exit(1) -} - -// Result array -var licenses = Array>() - -// Load license for each library and add it to the result array -libraries.forEach({ (library: String) in - guard - let licensePath = locateLicense(inFolder: inDict + library), - let licence = try? String(contentsOfFile: licensePath, encoding: .utf8) - else { - return - } - - licenses.append(["title" : library, "text" : licence]) -}) - -// Generate plist from result array -let plist = try! PropertyListSerialization.data(fromPropertyList: licenses, format: .xml, options: 0) as NSData - -// Write plist to disk -do { - try plist.write(to: outURL) -} catch { - print("Error saving plist to disk: \(error)") - exit(1) -} diff --git a/Sources/GenerateLicenseFileExe/GenerateLicenseFileExe.swift b/Sources/GenerateLicenseFileExe/GenerateLicenseFileExe.swift new file mode 100644 index 0000000..9a3dac6 --- /dev/null +++ b/Sources/GenerateLicenseFileExe/GenerateLicenseFileExe.swift @@ -0,0 +1,23 @@ +import Foundation +import ArgumentParser +import LicenseFileGenerator + +@main +struct GenerateLicenseFileExe: ParsableCommand { + @Argument( + help: "Source Directories", + completion: .directory, + transform: URL.init(fileURLWithPath:)) + var sourceDirectories: [URL] + + @Option( + name: .customShort("o"), + help: "Destination File", + completion: .file(), + transform: URL.init(fileURLWithPath:)) + var destinationFile: URL + + func run() throws { + try LicenseFileGenerator().generatePlist(inputDirs: sourceDirectories, outputFile: destinationFile) + } +} diff --git a/Sources/LicenseFileGenerator/LicenseFileGenerator.swift b/Sources/LicenseFileGenerator/LicenseFileGenerator.swift new file mode 100644 index 0000000..f05844b --- /dev/null +++ b/Sources/LicenseFileGenerator/LicenseFileGenerator.swift @@ -0,0 +1,100 @@ +import Foundation + +public struct LicenseFileGenerator { + private static let fm = FileManager.default + private var fm: FileManager { Self.fm } + + public init() {} + + public func generatePlist(inputDirs: [URL], outputFile: URL) throws { + // Get subpaths (libraries at paths) + let libraryPaths = getAllLibraryPaths(from: inputDirs) + + // Load license for each library and add it to a dictionary, removing potential duplicates + let libraryLicenses = loadAllLicenses(from: libraryPaths) + + // Convert dictionary to expected data structuring, but alphabetized + let exportDictionary = formatDataForExport(with: libraryLicenses) + + // Generate plist from result array + // Write plist to disk +// do { + let plist = try PropertyListSerialization.data(fromPropertyList: exportDictionary, format: .xml, options: 0) + try plist.write(to: outputFile) +// } catch { +// fatalError("Error saving plist to disk: \(error)") +// } + print("Saved license info to \(outputFile.path)") + } + + // MARK: Internal functions + func locateLicense(inProject projectFolder: URL) -> URL? { + var isDir: ObjCBool = false + fm.fileExists(atPath: projectFolder.path, isDirectory: &isDir) + guard + isDir.boolValue == true, + let subpathEnumerator = fm.enumerator(at: projectFolder, includingPropertiesForKeys: nil, options: [.skipsHiddenFiles])?.makeIterator() + else { return nil } + + let licenseFiles = subpathEnumerator + .map { $0 as? URL } + .compactMap { $0 } + .filter { + guard $0.lastPathComponent.lowercased().contains("license") else { return false } + var licenseIsDir: ObjCBool = false + fm.fileExists(atPath: $0.path, isDirectory: &licenseIsDir) + return !licenseIsDir.boolValue + } + + return licenseFiles.first + } + + func getAllLibraryPaths(from inputDirs: [URL]) -> [URL] { + inputDirs.compactMap { + try? fm + .contentsOfDirectory(at: $0, includingPropertiesForKeys: nil, options: [.skipsHiddenFiles]) + .filter { + var isDir: ObjCBool = false + fm.fileExists(atPath: $0.path, isDirectory: &isDir) + return isDir.boolValue + } + } + .flatMap { $0 } + } + + func loadAllLicenses(from libraryPaths: [URL]) -> [String: String] { + libraryPaths.reduce(into: [String: String]()) { + guard + let licensePath = locateLicense(inProject: $1), + let license = try? String(contentsOf: licensePath, encoding: .utf8) + else { return } + + $0[$1.lastPathComponent] = license + } + } + + func formatDataForExport(with libraryLicenses: [String: String]) -> [[String: String]] { + libraryLicenses + .keys + .sorted() + .map { + let value = libraryLicenses[$0, default: ""] + return [ + "title": $0, + "text": value + ] + } + } +} + +// MARK: Convenience Extensions +extension IteratorProtocol { + func map(_ body: (Element) -> Output) -> [Output] { + var copy = self + var result = [Output]() + while let current = copy.next() { + result.append(body(current)) + } + return result + } +} diff --git a/SwiftyAcknowledgements/Acknowledgement.swift b/Sources/SwiftyAcknowledgements/Acknowledgement.swift similarity index 100% rename from SwiftyAcknowledgements/Acknowledgement.swift rename to Sources/SwiftyAcknowledgements/Acknowledgement.swift diff --git a/SwiftyAcknowledgements/AcknowledgementViewController.swift b/Sources/SwiftyAcknowledgements/AcknowledgementViewController.swift similarity index 96% rename from SwiftyAcknowledgements/AcknowledgementViewController.swift rename to Sources/SwiftyAcknowledgements/AcknowledgementViewController.swift index 2f13ba0..f7e9f48 100644 --- a/SwiftyAcknowledgements/AcknowledgementViewController.swift +++ b/Sources/SwiftyAcknowledgements/AcknowledgementViewController.swift @@ -37,8 +37,8 @@ internal class AcknowledgementViewController: UIViewController { #endif #if os(tvOS) - textView.isSelectable = true - textView.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)] + textView.isSelectable = true + textView.panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouch.TouchType.indirect.rawValue)] #endif return textView diff --git a/SwiftyAcknowledgements/AcknowledgementsTableViewController.swift b/Sources/SwiftyAcknowledgements/AcknowledgementsTableViewController.swift similarity index 100% rename from SwiftyAcknowledgements/AcknowledgementsTableViewController.swift rename to Sources/SwiftyAcknowledgements/AcknowledgementsTableViewController.swift diff --git a/SwiftyAcknowledgements/UIFontDescriptorExtensions.swift b/Sources/SwiftyAcknowledgements/UIFontDescriptorExtensions.swift similarity index 96% rename from SwiftyAcknowledgements/UIFontDescriptorExtensions.swift rename to Sources/SwiftyAcknowledgements/UIFontDescriptorExtensions.swift index cfd458f..f673f4b 100644 --- a/SwiftyAcknowledgements/UIFontDescriptorExtensions.swift +++ b/Sources/SwiftyAcknowledgements/UIFontDescriptorExtensions.swift @@ -6,7 +6,7 @@ // Copyright © 2015 Mathias Nagler. All rights reserved. // -import Foundation +import UIKit internal extension UIFontDescriptor { diff --git a/SwiftyAcknowledgements/Supporting Files/Info.plist b/SwiftyAcknowledgements/Supporting Files/Info.plist deleted file mode 100644 index b952144..0000000 --- a/SwiftyAcknowledgements/Supporting Files/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.2.1 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/SwiftyAcknowledgements/SwiftyAcknowledgements.h b/SwiftyAcknowledgements/SwiftyAcknowledgements.h deleted file mode 100644 index c6e749f..0000000 --- a/SwiftyAcknowledgements/SwiftyAcknowledgements.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SwiftyAcknowledgements.h -// SwiftyAcknowledgements -// -// Created by Mathias Nagler on 08.09.15. -// Copyright © 2015 Mathias Nagler. All rights reserved. -// - -#import - -//! Project version number for SwiftyAcknowledgements. -FOUNDATION_EXPORT double SwiftyAcknowledgementsVersionNumber; - -//! Project version string for SwiftyAcknowledgements. -FOUNDATION_EXPORT const unsigned char SwiftyAcknowledgementsVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/Tests/Supporting Files/Info.plist b/Tests/Supporting Files/Info.plist deleted file mode 100644 index ba72822..0000000 --- a/Tests/Supporting Files/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Tests/AcknowledgementTests.swift b/Tests/SwiftyAcknowledgementsTests/AcknowledgementTests.swift similarity index 100% rename from Tests/AcknowledgementTests.swift rename to Tests/SwiftyAcknowledgementsTests/AcknowledgementTests.swift diff --git a/Tests/AcknowledgementsTableViewControllerTests.swift b/Tests/SwiftyAcknowledgementsTests/AcknowledgementsTableViewControllerTests.swift similarity index 100% rename from Tests/AcknowledgementsTableViewControllerTests.swift rename to Tests/SwiftyAcknowledgementsTests/AcknowledgementsTableViewControllerTests.swift diff --git a/Tests/BaseTestCase.swift b/Tests/SwiftyAcknowledgementsTests/BaseTestCase.swift similarity index 52% rename from Tests/BaseTestCase.swift rename to Tests/SwiftyAcknowledgementsTests/BaseTestCase.swift index ead09cb..04d6e24 100644 --- a/Tests/BaseTestCase.swift +++ b/Tests/SwiftyAcknowledgementsTests/BaseTestCase.swift @@ -13,13 +13,23 @@ import SwiftyAcknowledgements class BaseTestCase: XCTestCase { func URLForResource(_ fileName: String, withExtension: String) -> URL { + #if XCODE let bundle = Bundle(for: BaseTestCase.self) - return bundle.url(forResource: fileName, withExtension: withExtension)! + return bundle.url(forResource: fileName, withExtension: withExtension)! + #else + let bundle = Bundle.module + return bundle.url(forResource: fileName, withExtension: withExtension, subdirectory: "TestResources")! + #endif } func StringForResource(_ fileName: String, ofType: String) -> String { + #if XCODE let bundle = Bundle(for: BaseTestCase.self) - return bundle.path(forResource: fileName, ofType: ofType)! + return bundle.path(forResource: fileName, ofType: ofType)! + #else + let bundle = Bundle.module + return bundle.path(forResource: fileName, ofType: ofType, inDirectory: "TestResources")! + #endif } } diff --git a/Tests/Resources/Acknowledgements.plist b/Tests/SwiftyAcknowledgementsTests/TestResources/Acknowledgements.plist similarity index 100% rename from Tests/Resources/Acknowledgements.plist rename to Tests/SwiftyAcknowledgementsTests/TestResources/Acknowledgements.plist