From 243b26a4b0d677c5b4be4c09f41fe4a22acebfb5 Mon Sep 17 00:00:00 2001 From: Jerry Marino Date: Wed, 26 Sep 2018 10:51:53 -0700 Subject: [PATCH 01/12] Make validation of Xcode projects optional Validation requires several things of the Xcode project, one being that files are already on disk. In some cases, it's useful to generate projects containing files that don't exist on disk yet. Additionally, this is useful for testing purposes, and generating projects on a machine where the files don't exist. --- Sources/XcodeGenKit/ProjectGenerator.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/XcodeGenKit/ProjectGenerator.swift b/Sources/XcodeGenKit/ProjectGenerator.swift index c1c70f58..5206880f 100644 --- a/Sources/XcodeGenKit/ProjectGenerator.swift +++ b/Sources/XcodeGenKit/ProjectGenerator.swift @@ -21,8 +21,10 @@ public class ProjectGenerator { return project.configs.first { $0.type == .release }! } - public func generateXcodeProject() throws -> XcodeProj { - try project.validate() + public func generateXcodeProject(validate: Bool = true) throws -> XcodeProj { + if validate { + try project.validate() + } let pbxProjGenerator = PBXProjGenerator(project: project) let pbxProject = try pbxProjGenerator.generate() let workspace = try generateWorkspace() From 4d77bbd2c72b9bc4d6ca6d423aebf5bbe6a0bdbb Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 17:31:43 +1000 Subject: [PATCH 02/12] upgrade circleci format --- .circleci/config.yml | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ec28cdfb..6cc7aac6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,16 +5,29 @@ jobs: xcode: "9.3.0" steps: - checkout - - run: swift build - - run: swift test - - run: make build + - run: + name: Build + command: swift build + - run: + name: Test + command: swift test + - run: + name: Build release + command: make build macOS_swift_4.2: macos: xcode: "10.0.0" steps: - checkout - - run: swift build - - run: make build + - run: + name: Build + command: swift build + - run: + name: Test + command: swift test + #- run: + #name: Build release + #command: make build workflows: version: 2 workflow: From baafa7cffd71cf73de805273c238425d5506068d Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 18:03:35 +1000 Subject: [PATCH 03/12] add scheme variants --- ...S.xcscheme => App_iOS Production.xcscheme} | 0 .../xcschemes/App_iOS Staging.xcscheme | 142 ++++++++++++++++++ .../xcschemes/App_iOS Test.xcscheme | 142 ++++++++++++++++++ Tests/Fixtures/TestProject/project.yml | 4 + 4 files changed, 288 insertions(+) rename Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/{App_iOS.xcscheme => App_iOS Production.xcscheme} (100%) create mode 100644 Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme create mode 100644 Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme similarity index 100% rename from Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS.xcscheme rename to Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Production.xcscheme diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme new file mode 100644 index 00000000..6b9c262b --- /dev/null +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Staging.xcscheme @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme new file mode 100644 index 00000000..ae3a97c6 --- /dev/null +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/xcshareddata/xcschemes/App_iOS Test.xcscheme @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index c95cf784..d28e6ae1 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -80,6 +80,10 @@ targets: - App_iOS_Tests - App_iOS_UITests gatherCoverageData: true + configVariants: + - Test + - Staging + - Production commandLineArguments: MyEnabledArgument: true MyDisabledArgument: false From 82755f892059c2fcd0ee0ee595d93634cfd123cc Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 18:05:10 +1000 Subject: [PATCH 04/12] get watchOS app building --- Tests/Fixtures/TestProject/App_watchOS/Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Fixtures/TestProject/App_watchOS/Info.plist b/Tests/Fixtures/TestProject/App_watchOS/Info.plist index faa65943..7d614116 100644 --- a/Tests/Fixtures/TestProject/App_watchOS/Info.plist +++ b/Tests/Fixtures/TestProject/App_watchOS/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + 1.2 CFBundleVersion 1 UISupportedInterfaceOrientations From 3262fc8562c504a39427f779921f71006c4294c2 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 18:10:11 +1000 Subject: [PATCH 05/12] build test project on circleCI --- .circleci/config.yml | 17 ++++++++++++----- Tests/Fixtures/TestProject/build.sh | 5 +++++ build-fixtures.sh | 5 +++++ 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100755 Tests/Fixtures/TestProject/build.sh create mode 100755 build-fixtures.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index 6cc7aac6..611c3cf8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,6 +14,9 @@ jobs: - run: name: Build release command: make build + - run: + name: Build Test Project + command: ./build-fixtures.sh macOS_swift_4.2: macos: xcode: "10.0.0" @@ -22,12 +25,16 @@ jobs: - run: name: Build command: swift build + # disabled till UUID's are stable + # - run: + # name: Test + # command: swift test - run: - name: Test - command: swift test - #- run: - #name: Build release - #command: make build + name: Build release + command: make build + - run: + name: Build Test Project + command: ./build-fixtures.sh workflows: version: 2 workflow: diff --git a/Tests/Fixtures/TestProject/build.sh b/Tests/Fixtures/TestProject/build.sh new file mode 100755 index 00000000..03d71220 --- /dev/null +++ b/Tests/Fixtures/TestProject/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e + +carthage bootstrap --platform ios,watchos --cache-builds +xcodebuild -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO diff --git a/build-fixtures.sh b/build-fixtures.sh new file mode 100755 index 00000000..f5ca8ebe --- /dev/null +++ b/build-fixtures.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e + +cd Tests/Fixtures/TestProject +./build.sh From f5bebf57de73a8f5fb40082fcb83df87bdaea568 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 18:25:39 +1000 Subject: [PATCH 06/12] swap Alamofire dependency for faster building Result --- .../InterfaceController.swift | 4 +- Tests/Fixtures/TestProject/Cartfile | 2 +- Tests/Fixtures/TestProject/Cartfile.resolved | 2 +- .../Project.xcodeproj/project.pbxproj | 68 +++++++++---------- Tests/Fixtures/TestProject/build.sh | 2 +- Tests/Fixtures/TestProject/project.yml | 6 +- 6 files changed, 42 insertions(+), 42 deletions(-) diff --git a/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift b/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift index 712d399a..2d82f8a6 100644 --- a/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift +++ b/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift @@ -1,4 +1,4 @@ -import Alamofire +import Result import Foundation import WatchKit @@ -6,7 +6,7 @@ class InterfaceController: WKInterfaceController { override func awake(withContext context: Any?) { super.awake(withContext: context) - let method = HTTPMethod.get + let result: Result = .success("value") // Configure interface objects here. } diff --git a/Tests/Fixtures/TestProject/Cartfile b/Tests/Fixtures/TestProject/Cartfile index 821b0ae3..27636fa1 100644 --- a/Tests/Fixtures/TestProject/Cartfile +++ b/Tests/Fixtures/TestProject/Cartfile @@ -1 +1 @@ -github "Alamofire/Alamofire" +github "antitypical/Result" \ No newline at end of file diff --git a/Tests/Fixtures/TestProject/Cartfile.resolved b/Tests/Fixtures/TestProject/Cartfile.resolved index 9efe68da..23aa9709 100644 --- a/Tests/Fixtures/TestProject/Cartfile.resolved +++ b/Tests/Fixtures/TestProject/Cartfile.resolved @@ -1 +1 @@ -github "Alamofire/Alamofire" "4.7.2" +github "antitypical/Result" "4.0.0" diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index badfd0f1..43a667da 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -24,7 +24,7 @@ /* Begin PBXBuildFile section */ BF_138356261076 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_363921640403 /* InterfaceController.swift */; }; - BF_139519317795 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_452853029807 /* Alamofire.framework */; }; + BF_140777424236 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; BF_167705969896 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_145531354566 /* TestProjectUITests.swift */; }; BF_182635022050 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_830053537293 /* Assets.xcassets */; }; BF_184447863946 = {isa = PBXBuildFile; fileRef = FR_935153865209 /* iMessageApp.app */; }; @@ -34,7 +34,6 @@ BF_211435872001 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = VG_473000061463 /* Localizable.strings */; }; BF_212221512596 /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_470929579339 /* StaticLibrary.swift */; }; BF_215463341392 /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; }; - BF_217053936758 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_752394658615 /* Alamofire.framework */; }; BF_225293845818 = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; }; BF_237760701422 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_987043315473 /* Assets.xcassets */; }; BF_239684316986 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -55,19 +54,17 @@ BF_334778067417 = {isa = PBXBuildFile; fileRef = FR_783122899910 /* App_iOS_Tests.xctest */; }; BF_337656089700 = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; BF_360196406184 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_722239415598 /* TestProjectTests.swift */; }; - BF_415651546539 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_752394658615 /* Alamofire.framework */; }; BF_425679397292 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_441538117869 /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + BF_455187765496 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_131384036341 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_456457948943 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; - BF_458111705914 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; }; BF_461044234706 /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_474063668246 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; }; BF_496472559782 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_501771188469 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_503484983186 /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_196911129660 /* MoreUnder.swift */; }; BF_510053944904 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; BF_518775144316 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_229826849033 /* SomeXPCService.xpc */; }; BF_526105569599 = {isa = PBXBuildFile; fileRef = FR_437179166843 /* StaticLibrary_Swift.a */; }; - BF_535236390262 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_257516580010 /* Alamofire.framework */; }; BF_538515166673 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_256263906698 /* LaunchScreen.storyboard */; }; BF_552913093094 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_561304997165 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; @@ -76,41 +73,44 @@ BF_607543323797 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; BF_612351978356 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_264279911176 /* Interface.storyboard */; }; BF_624802436672 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; + BF_629554450880 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; }; BF_632297340262 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; BF_647038614509 /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = FR_935153865209 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; BF_650026899468 = {isa = PBXBuildFile; fileRef = FR_602719163962 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_670499288392 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = VG_229021855709 /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; BF_681504666330 = {isa = PBXBuildFile; fileRef = FR_825232110500 /* App_iOS.app */; }; + BF_695553653993 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; BF_703054643820 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_310979699934 /* MessagesViewController.swift */; }; BF_704149935229 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; BF_721498080533 /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = FR_257073931060 /* ResourceFolder */; }; BF_725992639588 = {isa = PBXBuildFile; fileRef = FR_480982116789 /* App_macOS.app */; }; BF_732745079658 = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; }; BF_734036107922 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF_742449020987 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; }; BF_747443236192 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; BF_752022362638 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; + BF_752504835660 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_669811003841 /* Result.framework */; }; BF_757906110813 = {isa = PBXBuildFile; fileRef = FR_662315837182 /* Framework.framework */; }; BF_770495922915 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; + BF_780116576846 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_786389356145 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; BF_803757127643 = {isa = PBXBuildFile; fileRef = FR_739513596122 /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_807556340853 /* Empty.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_837374194182 /* Empty.h */; }; BF_813358525536 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_826731453953 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_131384036341 /* Result.framework */; }; BF_828878846239 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_201160695646 /* MainInterface.storyboard */; }; BF_830383951771 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_304712043717 /* NotificationController.swift */; }; BF_854463933379 = {isa = PBXBuildFile; fileRef = FR_438704538506 /* Framework.framework */; }; - BF_854691035877 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_257516580010 /* Alamofire.framework */; }; BF_855988705556 /* XPC_Service.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_602719163945 /* XPC_Service.m */; }; BF_860391087135 /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_408537768279 /* StandaloneAssets.xcassets */; }; - BF_863842036151 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_410645050443 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_870702193513 /* iMessageExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_618687462494 /* iMessageExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + BF_874851989284 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_131384036341 /* Result.framework */; }; BF_892119987440 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_854336462818 /* AppDelegate.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; - BF_897881229855 /* Alamofire.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_257516580010 /* Alamofire.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - BF_898051828670 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_752394658615 /* Alamofire.framework */; }; BF_901390118565 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; BF_905038616071 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_905617636654 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; BF_940936137577 = {isa = PBXBuildFile; fileRef = FR_123503999387 /* App_iOS_UITests.xctest */; }; BF_943177036061 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; + BF_997494126001 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -264,7 +264,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - BF_863842036151 /* Alamofire.framework in Embed Frameworks */, + BF_997494126001 /* Result.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -275,7 +275,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - BF_501771188469 /* Alamofire.framework in Embed Frameworks */, + BF_780116576846 /* Result.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -298,7 +298,7 @@ dstSubfolderSpec = 10; files = ( BF_552913093094 /* Framework.framework in Embed Frameworks */, - BF_897881229855 /* Alamofire.framework in Embed Frameworks */, + BF_455187765496 /* Result.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -352,6 +352,7 @@ /* Begin PBXFileReference section */ FR_118219888726 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LocalizedStoryboard.storyboard; sourceTree = ""; }; FR_123503999387 /* App_iOS_UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_131384036341 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_145531354566 /* TestProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectUITests.swift; sourceTree = ""; }; FR_151462316179 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; FR_172952167809 /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; @@ -364,7 +365,6 @@ FR_247808626608 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_256263906698 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; FR_257073931060 /* ResourceFolder */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ResourceFolder; path = Resources/ResourceFolder; sourceTree = SOURCE_ROOT; }; - FR_257516580010 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; FR_263408310401 /* Model 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 3.xcdatamodel"; sourceTree = ""; }; FR_264279911176 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; FR_293137352077 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -377,10 +377,8 @@ FR_377082606829 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; FR_399755008402 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_408537768279 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; - FR_410645050443 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; FR_437179166843 /* StaticLibrary_Swift.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_Swift.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_438704538506 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FR_452853029807 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; FR_461737784133 /* module.modulemap */ = {isa = PBXFileReference; path = module.modulemap; sourceTree = ""; }; FR_470929579339 /* StaticLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLibrary.swift; sourceTree = ""; }; FR_472296042419 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -394,6 +392,7 @@ FR_525119120469 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_530852296303 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_570918052822 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; + FR_584425140013 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_587738154368 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; FR_602633703434 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; FR_602719163945 /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; @@ -407,6 +406,7 @@ FR_660690926982 /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; FR_662315837182 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_665156855283 /* module.modulemap */ = {isa = PBXFileReference; path = module.modulemap; sourceTree = ""; }; + FR_669811003841 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_675266829517 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; FR_698230898030 /* StaticLibrary_ObjC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StaticLibrary_ObjC.h; sourceTree = ""; }; "FR_698230898030-1" /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; @@ -415,7 +415,7 @@ FR_739513596122 /* XPC_ServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_ServiceProtocol.h; sourceTree = ""; }; FR_746876637628 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.stringsdict; sourceTree = ""; }; FR_748548478992 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; - FR_752394658615 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Alamofire.framework; sourceTree = ""; }; + FR_763057275314 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_771029596306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; FR_775316160345 /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = ""; }; FR_783122899910 /* App_iOS_Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -437,7 +437,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_415651546539 /* Alamofire.framework in Frameworks */, + BF_786389356145 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -445,7 +445,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_898051828670 /* Alamofire.framework in Frameworks */, + BF_695553653993 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -453,7 +453,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_742449020987 /* Alamofire.framework in Frameworks */, + BF_629554450880 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -461,8 +461,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_535236390262 /* Alamofire.framework in Frameworks */, BF_597639300414 /* Framework.framework in Frameworks */, + BF_874851989284 /* Result.framework in Frameworks */, BF_770495922915 /* StaticLibrary_ObjC.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -471,7 +471,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_217053936758 /* Alamofire.framework in Frameworks */, + BF_140777424236 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -479,7 +479,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_854691035877 /* Alamofire.framework in Frameworks */, + BF_826731453953 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -487,7 +487,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_139519317795 /* Alamofire.framework in Frameworks */, + BF_752504835660 /* Result.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -495,8 +495,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - BF_458111705914 /* Alamofire.framework in Frameworks */, BF_324363145049 /* Framework.framework in Frameworks */, + BF_474063668246 /* Result.framework in Frameworks */, BF_943177036061 /* StaticLibrary_ObjC.a in Frameworks */, BF_215463341392 /* SomeFramework.framework in Frameworks */, ); @@ -545,7 +545,7 @@ G_2262017438925 /* iOS */ = { isa = PBXGroup; children = ( - FR_410645050443 /* Alamofire.framework */, + FR_763057275314 /* Result.framework */, ); path = iOS; sourceTree = ""; @@ -553,7 +553,7 @@ G_2262017442691 /* Mac */ = { isa = PBXGroup; children = ( - FR_257516580010 /* Alamofire.framework */, + FR_131384036341 /* Result.framework */, ); path = Mac; sourceTree = ""; @@ -694,7 +694,7 @@ G_8244488572839 /* watchOS */ = { isa = PBXGroup; children = ( - FR_752394658615 /* Alamofire.framework */, + FR_584425140013 /* Result.framework */, ); path = watchOS; sourceTree = ""; @@ -794,7 +794,7 @@ G_8628897169668 /* tvOS */ = { isa = PBXGroup; children = ( - FR_452853029807 /* Alamofire.framework */, + FR_669811003841 /* Result.framework */, ); path = tvOS; sourceTree = ""; @@ -1307,11 +1307,11 @@ files = ( ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/watchOS/Alamofire.framework", + "$(SRCROOT)/Carthage/Build/watchOS/Result.framework", ); name = Carthage; outputPaths = ( - "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Alamofire.framework", + "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Result.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1337,11 +1337,11 @@ files = ( ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework", + "$(SRCROOT)/Carthage/Build/iOS/Result.framework", ); name = Carthage; outputPaths = ( - "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Alamofire.framework", + "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Result.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/Tests/Fixtures/TestProject/build.sh b/Tests/Fixtures/TestProject/build.sh index 03d71220..b34016a0 100755 --- a/Tests/Fixtures/TestProject/build.sh +++ b/Tests/Fixtures/TestProject/build.sh @@ -1,5 +1,5 @@ #!/bin/bash set -e -carthage bootstrap --platform ios,watchos --cache-builds +carthage bootstrap --cache-builds xcodebuild -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index d28e6ae1..ab05ac4b 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -71,7 +71,7 @@ targets: dependencies: - target: Framework_iOS - target: StaticLibrary_ObjC - - carthage: Alamofire + - carthage: Result - target: App_watchOS - target: iMessageApp - framework: Vendor/SomeFramework.framework @@ -115,7 +115,7 @@ targets: settings: PRODUCT_BUNDLE_IDENTIFIER: com.project.app.watch.extension dependencies: - - carthage: Alamofire + - carthage: Result iMessageApp: type: application.messages @@ -157,7 +157,7 @@ targets: - name: MyScript path: scripts/script.sh dependencies: - - carthage: Alamofire + - carthage: Result - target: StaticLibrary_ObjC App_iOS_Tests: type: bundle.unit-test From 7f7b3d3d94fe536254a61f068100e13496a4170f Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 20:08:48 +1000 Subject: [PATCH 07/12] add xcpretty to output --- .circleci/config.yml | 4 ++-- Tests/Fixtures/TestProject/build.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 611c3cf8..918d861b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,7 +10,7 @@ jobs: command: swift build - run: name: Test - command: swift test + command: swift test 2>&1 | xcpretty - run: name: Build release command: make build @@ -28,7 +28,7 @@ jobs: # disabled till UUID's are stable # - run: # name: Test - # command: swift test + # command: swift test 2>&1 | xcpretty - run: name: Build release command: make build diff --git a/Tests/Fixtures/TestProject/build.sh b/Tests/Fixtures/TestProject/build.sh index b34016a0..884a5a1e 100755 --- a/Tests/Fixtures/TestProject/build.sh +++ b/Tests/Fixtures/TestProject/build.sh @@ -2,4 +2,4 @@ set -e carthage bootstrap --cache-builds -xcodebuild -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO +xcodebuild -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO | xcpretty From ab8f43f587f9d441eaccbda8143b9adbdcc49293 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 20:29:50 +1000 Subject: [PATCH 08/12] build TestProject macOS app --- .../TestProject/App_macOS/AppDelegate.swift | 25 + .../AppIcon.appiconset/Contents.json | 58 ++ .../App_macOS/Assets.xcassets/Contents.json | 6 + .../App_macOS/Base.lproj/Main.storyboard | 717 +++++++++++++++++ .../Fixtures/TestProject/App_macOS/Info.plist | 30 + .../App_macOS/ViewController.swift | 26 + .../Project.xcodeproj/project.pbxproj | 745 ++++++++++++++---- Tests/Fixtures/TestProject/build.sh | 5 + Tests/Fixtures/TestProject/project.yml | 7 +- 9 files changed, 1455 insertions(+), 164 deletions(-) create mode 100644 Tests/Fixtures/TestProject/App_macOS/AppDelegate.swift create mode 100644 Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/Contents.json create mode 100644 Tests/Fixtures/TestProject/App_macOS/Base.lproj/Main.storyboard create mode 100644 Tests/Fixtures/TestProject/App_macOS/Info.plist create mode 100644 Tests/Fixtures/TestProject/App_macOS/ViewController.swift diff --git a/Tests/Fixtures/TestProject/App_macOS/AppDelegate.swift b/Tests/Fixtures/TestProject/App_macOS/AppDelegate.swift new file mode 100644 index 00000000..c4068e8a --- /dev/null +++ b/Tests/Fixtures/TestProject/App_macOS/AppDelegate.swift @@ -0,0 +1,25 @@ +// +// AppDelegate.swift +// dfg +// +// Created by Yonas Kolb on 29/9/18. +// + +import Cocoa + +@NSApplicationMain +class AppDelegate: NSObject, NSApplicationDelegate { + + + + func applicationDidFinishLaunching(_ aNotification: Notification) { + // Insert code here to initialize your application + } + + func applicationWillTerminate(_ aNotification: Notification) { + // Insert code here to tear down your application + } + + +} + diff --git a/Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..2db2b1c7 --- /dev/null +++ b/Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images" : [ + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/Contents.json b/Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Tests/Fixtures/TestProject/App_macOS/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Tests/Fixtures/TestProject/App_macOS/Base.lproj/Main.storyboard b/Tests/Fixtures/TestProject/App_macOS/Base.lproj/Main.storyboard new file mode 100644 index 00000000..bf7fd51b --- /dev/null +++ b/Tests/Fixtures/TestProject/App_macOS/Base.lproj/Main.storyboard @@ -0,0 +1,717 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Fixtures/TestProject/App_macOS/Info.plist b/Tests/Fixtures/TestProject/App_macOS/Info.plist new file mode 100644 index 00000000..e40caef4 --- /dev/null +++ b/Tests/Fixtures/TestProject/App_macOS/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Tests/Fixtures/TestProject/App_macOS/ViewController.swift b/Tests/Fixtures/TestProject/App_macOS/ViewController.swift new file mode 100644 index 00000000..bb6301bf --- /dev/null +++ b/Tests/Fixtures/TestProject/App_macOS/ViewController.swift @@ -0,0 +1,26 @@ +// +// ViewController.swift +// dfg +// +// Created by Yonas Kolb on 29/9/18. +// + +import Cocoa + +class ViewController: NSViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + override var representedObject: Any? { + didSet { + // Update the view, if already loaded. + } + } + + +} + diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 43a667da..fbd3b463 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -23,13 +23,18 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + BF_119005558336 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; BF_138356261076 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_363921640403 /* InterfaceController.swift */; }; BF_140777424236 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; + BF_143559378694 = {isa = PBXBuildFile; fileRef = FR_919543414727 /* StaticLibrary_ObjC.a */; }; + BF_150525852574 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; + BF_159058095963 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_167705969896 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_145531354566 /* TestProjectUITests.swift */; }; BF_182635022050 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_830053537293 /* Assets.xcassets */; }; BF_184447863946 = {isa = PBXBuildFile; fileRef = FR_935153865209 /* iMessageApp.app */; }; BF_186245454304 /* LocalizedStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_118219888726 /* LocalizedStoryboard.storyboard */; }; BF_190684453680 = {isa = PBXBuildFile; fileRef = FR_376569054786 /* XPC Service.xpc */; }; + BF_190695186098 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; BF_206432481076 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_340586388409 /* ExtensionDelegate.swift */; }; BF_211435872001 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = VG_473000061463 /* Localizable.strings */; }; BF_212221512596 /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_470929579339 /* StaticLibrary.swift */; }; @@ -44,21 +49,25 @@ BF_280535243540 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_609193904586 /* Main.storyboard */; }; BF_284620660317 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = FR_238161558082 /* MyBundle.bundle */; }; BF_292474606791 = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; }; + BF_294676705190 = {isa = PBXBuildFile; fileRef = FR_530818555464 /* StaticLibrary_ObjC.a */; }; BF_303822704662 = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; }; BF_304637845091 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_151462316179 /* main.m */; }; BF_308631758818 /* XPC Service.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_376569054786 /* XPC Service.xpc */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_309594709686 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_511515916115 /* Assets.xcassets */; }; BF_314868376788 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = VG_746876637628 /* Localizable.stringsdict */; }; BF_324363145049 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; }; BF_331192862207 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_481575785861 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; BF_334321520545 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_377082606829 /* Assets.xcassets */; }; BF_334778067417 = {isa = PBXBuildFile; fileRef = FR_783122899910 /* App_iOS_Tests.xctest */; }; - BF_337656089700 = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; BF_360196406184 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_722239415598 /* TestProjectTests.swift */; }; + BF_387462025786 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_202279841299 /* Main.storyboard */; }; BF_425679397292 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_434838320682 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; BF_441538117869 /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; BF_455187765496 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_131384036341 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_456457948943 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; BF_461044234706 /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_463608041925 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; BF_474063668246 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; }; BF_496472559782 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_503484983186 /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_196911129660 /* MoreUnder.swift */; }; @@ -69,17 +78,20 @@ BF_552913093094 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_561304997165 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; BF_563614389392 = {isa = PBXBuildFile; fileRef = FR_618687462494 /* iMessageExtension.appex */; }; + BF_575042573791 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_597639300414 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; }; - BF_607543323797 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; + BF_606517090398 = {isa = PBXBuildFile; fileRef = FR_281269793733 /* StaticLibrary_ObjC.a */; }; BF_612351978356 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_264279911176 /* Interface.storyboard */; }; BF_624802436672 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; + BF_628591712051 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_629554450880 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; }; - BF_632297340262 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; BF_647038614509 /* iMessageApp.app in Resources */ = {isa = PBXBuildFile; fileRef = FR_935153865209 /* iMessageApp.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; BF_650026899468 = {isa = PBXBuildFile; fileRef = FR_602719163962 /* XPC_Service.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_664393732795 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_281269793733 /* StaticLibrary_ObjC.a */; }; BF_670499288392 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = VG_229021855709 /* Model.xcdatamodeld */; settings = {COMPILER_FLAGS = "-Werror"; }; }; BF_681504666330 = {isa = PBXBuildFile; fileRef = FR_825232110500 /* App_iOS.app */; }; BF_695553653993 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; + BF_698752059275 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_285483315484 /* AppDelegate.swift */; }; BF_703054643820 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_310979699934 /* MessagesViewController.swift */; }; BF_704149935229 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; BF_721498080533 /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = FR_257073931060 /* ResourceFolder */; }; @@ -87,29 +99,33 @@ BF_732745079658 = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; }; BF_734036107922 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_747443236192 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - BF_752022362638 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_752504835660 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_669811003841 /* Result.framework */; }; BF_757906110813 = {isa = PBXBuildFile; fileRef = FR_662315837182 /* Framework.framework */; }; - BF_770495922915 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; + BF_767750315119 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; BF_780116576846 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + BF_781565567230 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_786389356145 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; BF_803757127643 = {isa = PBXBuildFile; fileRef = FR_739513596122 /* XPC_ServiceProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_804650723499 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; BF_807556340853 /* Empty.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_837374194182 /* Empty.h */; }; BF_813358525536 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_826731453953 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_131384036341 /* Result.framework */; }; BF_828878846239 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_201160695646 /* MainInterface.storyboard */; }; BF_830383951771 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_304712043717 /* NotificationController.swift */; }; + BF_849675970921 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_919543414727 /* StaticLibrary_ObjC.a */; }; BF_854463933379 = {isa = PBXBuildFile; fileRef = FR_438704538506 /* Framework.framework */; }; BF_855988705556 /* XPC_Service.m in Sources */ = {isa = PBXBuildFile; fileRef = FR_602719163945 /* XPC_Service.m */; }; BF_860391087135 /* StandaloneAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_408537768279 /* StandaloneAssets.xcassets */; }; BF_870702193513 /* iMessageExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_618687462494 /* iMessageExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; BF_874851989284 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_131384036341 /* Result.framework */; }; BF_892119987440 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_854336462818 /* AppDelegate.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; + BF_895856588273 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; BF_901390118565 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; + BF_901508574566 = {isa = PBXBuildFile; fileRef = FR_704531614016 /* StaticLibrary_ObjC.a */; }; + BF_903574875171 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_777446672298 /* ViewController.swift */; }; BF_905038616071 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_472296042419 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_905617636654 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; BF_940936137577 = {isa = PBXBuildFile; fileRef = FR_123503999387 /* App_iOS_UITests.xctest */; }; - BF_943177036061 /* StaticLibrary_ObjC.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_399755008402 /* StaticLibrary_ObjC.a */; }; BF_997494126001 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ @@ -121,6 +137,20 @@ remoteGlobalIDString = NT_472296042419; remoteInfo = Framework_iOS; }; + CIP_14121946807 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_8448771205358 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_281269793733; + remoteInfo = StaticLibrary_ObjC_macOS; + }; + CIP_15961934258 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_8448771205358 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_281269793733; + remoteInfo = StaticLibrary_ObjC_macOS; + }; CIP_19329118292 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; @@ -135,6 +165,13 @@ remoteGlobalIDString = NT_825232110500; remoteInfo = App_iOS; }; + CIP_23215045448 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_8448771205358 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_919543414727; + remoteInfo = StaticLibrary_ObjC_iOS; + }; CIP_23558050412 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; @@ -156,26 +193,19 @@ remoteGlobalIDString = NT_618687462494; remoteInfo = iMessageExtension; }; - CIP_33710394010 /* PBXContainerItemProxy */ = { + CIP_58718468645 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; + remoteGlobalIDString = NT_704531614016; + remoteInfo = StaticLibrary_ObjC_tvOS; }; - CIP_62903878492 /* PBXContainerItemProxy */ = { + CIP_66582851615 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; - CIP_66745555235 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; + remoteGlobalIDString = NT_919543414727; + remoteInfo = StaticLibrary_ObjC_iOS; }; CIP_67619158112 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -184,13 +214,6 @@ remoteGlobalIDString = NT_825232110500; remoteInfo = App_iOS; }; - CIP_72152212817 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; CIP_74378499241 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; @@ -205,13 +228,6 @@ remoteGlobalIDString = NT_472296042419; remoteInfo = Framework_iOS; }; - CIP_78441234790 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = P_8448771205358 /* Project object */; - proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; - }; CIP_82410178775 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; @@ -226,16 +242,27 @@ remoteGlobalIDString = NT_825232110500; remoteInfo = App_iOS; }; - CIP_95747640947 /* PBXContainerItemProxy */ = { + CIP_90821786544 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; proxyType = 1; - remoteGlobalIDString = NT_399755008402; - remoteInfo = StaticLibrary_ObjC; + remoteGlobalIDString = NT_530818555464; + remoteInfo = StaticLibrary_ObjC_watchOS; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ + CFBP_1101127867 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + BF_190695186098 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_159058095963 /* module.modulemap in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CFBP_2836118931 /* Embed Watch Content */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -247,14 +274,25 @@ name = "Embed Watch Content"; runOnlyForDeploymentPostprocessing = 0; }; - CFBP_3265670993 /* CopyFiles */ = { + CFBP_3044397014 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = "include/$(PRODUCT_NAME)"; dstSubfolderSpec = 16; files = ( - BF_607543323797 /* StaticLibrary_ObjC.h in CopyFiles */, - BF_752022362638 /* module.modulemap in CopyFiles */, + BF_463608041925 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_781565567230 /* module.modulemap in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CFBP_3864293855 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + BF_119005558336 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_628591712051 /* module.modulemap in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -336,6 +374,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CFBP_7637809077 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + BF_767750315119 /* StaticLibrary_ObjC.h in CopyFiles */, + BF_575042573791 /* module.modulemap in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CFBP_8368933518 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -355,10 +404,12 @@ FR_131384036341 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_145531354566 /* TestProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectUITests.swift; sourceTree = ""; }; FR_151462316179 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + FR_160440456271 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_172952167809 /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; FR_183521624014 /* MyFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyFramework.h; sourceTree = ""; }; FR_196911129660 /* MoreUnder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoreUnder.swift; sourceTree = ""; }; FR_201160695646 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; + FR_202279841299 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; FR_229826849033 /* SomeXPCService.xpc */ = {isa = PBXFileReference; path = SomeXPCService.xpc; sourceTree = ""; }; FR_232605427418 /* Mintfile */ = {isa = PBXFileReference; path = Mintfile; sourceTree = ""; }; FR_238161558082 /* MyBundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = MyBundle.bundle; sourceTree = ""; }; @@ -367,6 +418,8 @@ FR_257073931060 /* ResourceFolder */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ResourceFolder; path = Resources/ResourceFolder; sourceTree = SOURCE_ROOT; }; FR_263408310401 /* Model 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 3.xcdatamodel"; sourceTree = ""; }; FR_264279911176 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; + FR_281269793733 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_285483315484 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; FR_293137352077 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_304712043717 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; FR_310979699934 /* MessagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = ""; }; @@ -375,7 +428,6 @@ FR_363921640403 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; FR_376569054786 /* XPC Service.xpc */ = {isa = PBXFileReference; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; FR_377082606829 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - FR_399755008402 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_408537768279 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; FR_437179166843 /* StaticLibrary_Swift.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_Swift.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_438704538506 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -389,7 +441,9 @@ FR_500792082643 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LocalizedStoryboard.strings; sourceTree = ""; }; FR_505327409380 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_507023492251 /* App_watchOS Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "App_watchOS Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_511515916115 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; FR_525119120469 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_530818555464 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_530852296303 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_570918052822 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; FR_584425140013 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; @@ -410,6 +464,7 @@ FR_675266829517 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; FR_698230898030 /* StaticLibrary_ObjC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StaticLibrary_ObjC.h; sourceTree = ""; }; "FR_698230898030-1" /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; + FR_704531614016 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_722239415598 /* TestProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectTests.swift; sourceTree = ""; }; FR_725187762757 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_739513596122 /* XPC_ServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPC_ServiceProtocol.h; sourceTree = ""; }; @@ -418,6 +473,7 @@ FR_763057275314 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_771029596306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; FR_775316160345 /* SomeFile */ = {isa = PBXFileReference; path = SomeFile; sourceTree = ""; }; + FR_777446672298 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; FR_783122899910 /* App_iOS_Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; FR_796781152159 /* Model 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Model 2.xcdatamodel"; sourceTree = ""; }; FR_803921963291 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -427,6 +483,7 @@ FR_837374194182 /* Empty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Empty.h; sourceTree = ""; }; FR_854336462818 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; FR_868653349092 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FR_919543414727 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_935153865209 /* iMessageApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = iMessageApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; FR_948931241088 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_987043315473 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -463,7 +520,7 @@ files = ( BF_597639300414 /* Framework.framework in Frameworks */, BF_874851989284 /* Result.framework in Frameworks */, - BF_770495922915 /* StaticLibrary_ObjC.a in Frameworks */, + BF_664393732795 /* StaticLibrary_ObjC.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -497,7 +554,7 @@ files = ( BF_324363145049 /* Framework.framework in Frameworks */, BF_474063668246 /* Result.framework in Frameworks */, - BF_943177036061 /* StaticLibrary_ObjC.a in Frameworks */, + BF_849675970921 /* StaticLibrary_ObjC.a in Frameworks */, BF_215463341392 /* SomeFramework.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -636,6 +693,18 @@ path = Vendor; sourceTree = ""; }; + G_4809821167898 /* App_macOS */ = { + isa = PBXGroup; + children = ( + FR_285483315484 /* AppDelegate.swift */, + FR_511515916115 /* Assets.xcassets */, + FR_160440456271 /* Info.plist */, + VG_202279841299 /* Main.storyboard */, + FR_777446672298 /* ViewController.swift */, + ); + path = App_macOS; + sourceTree = ""; + }; G_5070234922517 /* App_watchOS Extension */ = { isa = PBXGroup; children = ( @@ -742,6 +811,7 @@ G_8252321105004 /* App */, G_7831228999101 /* App_iOS_Tests */, G_1235039993875 /* App_iOS_UITests */, + G_4809821167898 /* App_macOS */, G_3246710779368 /* App_watchOS */, G_5070234922517 /* App_watchOS Extension */, G_8340618952527 /* Configs */, @@ -784,7 +854,10 @@ FR_472296042419 /* Framework.framework */, FR_935153865209 /* iMessageApp.app */, FR_618687462494 /* iMessageExtension.appex */, - FR_399755008402 /* StaticLibrary_ObjC.a */, + FR_530818555464 /* StaticLibrary_ObjC.a */, + FR_704531614016 /* StaticLibrary_ObjC.a */, + FR_919543414727 /* StaticLibrary_ObjC.a */, + FR_281269793733 /* StaticLibrary_ObjC.a */, FR_437179166843 /* StaticLibrary_Swift.a */, FR_376569054786 /* XPC Service.xpc */, ); @@ -874,6 +947,22 @@ productReference = FR_123503999387 /* App_iOS_UITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; + NT_281269793733 /* StaticLibrary_ObjC_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_281269793733 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */; + buildPhases = ( + SBP_28126979373 /* Sources */, + CFBP_3044397014 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_macOS; + productName = StaticLibrary_ObjC_macOS; + productReference = FR_281269793733 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; NT_324671077936 /* App_watchOS */ = { isa = PBXNativeTarget; buildConfigurationList = CL_324671077936 /* Build configuration list for PBXNativeTarget "App_watchOS" */; @@ -909,22 +998,6 @@ productReference = FR_376569054786 /* XPC Service.xpc */; productType = "com.apple.product-type.xpc-service"; }; - NT_399755008402 /* StaticLibrary_ObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = CL_399755008402 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC" */; - buildPhases = ( - SBP_39975500840 /* Sources */, - CFBP_3265670993 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StaticLibrary_ObjC; - productName = StaticLibrary_ObjC; - productReference = FR_399755008402 /* StaticLibrary_ObjC.a */; - productType = "com.apple.product-type.library.static"; - }; NT_437179166843 /* StaticLibrary_Swift */ = { isa = PBXNativeTarget; buildConfigurationList = CL_437179166843 /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */; @@ -953,7 +1026,7 @@ buildRules = ( ); dependencies = ( - TD_784412347908 /* PBXTargetDependency */, + TD_908217865445 /* PBXTargetDependency */, ); name = Framework_watchOS; productName = Framework_watchOS; @@ -972,7 +1045,7 @@ buildRules = ( ); dependencies = ( - TD_667455552356 /* PBXTargetDependency */, + TD_665828516151 /* PBXTargetDependency */, ); name = Framework_iOS; productName = Framework_iOS; @@ -984,6 +1057,7 @@ buildConfigurationList = CL_480982116789 /* Build configuration list for PBXNativeTarget "App_macOS" */; buildPhases = ( SBP_48098211678 /* Sources */, + RBP_48098211678 /* Resources */, CFBP_8368933518 /* CopyFiles */, FBP_48098211678 /* Frameworks */, CFBP_4930089528 /* Embed Frameworks */, @@ -992,7 +1066,7 @@ ); dependencies = ( TD_235580504123 /* PBXTargetDependency */, - TD_629038784927 /* PBXTargetDependency */, + TD_159619342582 /* PBXTargetDependency */, TD_743784992411 /* PBXTargetDependency */, ); name = App_macOS; @@ -1029,13 +1103,29 @@ buildRules = ( ); dependencies = ( - TD_337103940101 /* PBXTargetDependency */, + TD_141219468074 /* PBXTargetDependency */, ); name = Framework_macOS; productName = Framework_macOS; productReference = FR_525119120469 /* Framework.framework */; productType = "com.apple.product-type.framework"; }; + NT_530818555464 /* StaticLibrary_ObjC_watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_530818555464 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_watchOS" */; + buildPhases = ( + SBP_53081855546 /* Sources */, + CFBP_3864293855 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_watchOS; + productName = StaticLibrary_ObjC_watchOS; + productReference = FR_530818555464 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; NT_618687462494 /* iMessageExtension */ = { isa = PBXNativeTarget; buildConfigurationList = CL_618687462494 /* Build configuration list for PBXNativeTarget "iMessageExtension" */; @@ -1064,13 +1154,29 @@ buildRules = ( ); dependencies = ( - TD_957476409477 /* PBXTargetDependency */, + TD_587184686458 /* PBXTargetDependency */, ); name = Framework_tvOS; productName = Framework_tvOS; productReference = FR_662315837182 /* Framework.framework */; productType = "com.apple.product-type.framework"; }; + NT_704531614016 /* StaticLibrary_ObjC_tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_704531614016 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */; + buildPhases = ( + SBP_70453161401 /* Sources */, + CFBP_7637809077 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_tvOS; + productName = StaticLibrary_ObjC_tvOS; + productReference = FR_704531614016 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; NT_783122899910 /* App_iOS_Tests */ = { isa = PBXNativeTarget; buildConfigurationList = CL_783122899910 /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; @@ -1107,7 +1213,7 @@ dependencies = ( TD_824101787753 /* PBXTargetDependency */, TD_109724965966 /* PBXTargetDependency */, - TD_721522128177 /* PBXTargetDependency */, + TD_232150454486 /* PBXTargetDependency */, TD_288560876254 /* PBXTargetDependency */, ); name = App_iOS; @@ -1115,6 +1221,22 @@ productReference = FR_825232110500 /* App_iOS.app */; productType = "com.apple.product-type.application"; }; + NT_919543414727 /* StaticLibrary_ObjC_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_919543414727 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_iOS" */; + buildPhases = ( + SBP_91954341472 /* Sources */, + CFBP_1101127867 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StaticLibrary_ObjC_iOS; + productName = StaticLibrary_ObjC_iOS; + productReference = FR_919543414727 /* StaticLibrary_ObjC.a */; + productType = "com.apple.product-type.library.static"; + }; NT_935153865209 /* iMessageApp */ = { isa = PBXNativeTarget; buildConfigurationList = CL_935153865209 /* Build configuration list for PBXNativeTarget "iMessageApp" */; @@ -1178,7 +1300,10 @@ NT_662315837182 /* Framework_tvOS */, NT_438704538506 /* Framework_watchOS */, LT_479264660374 /* Legacy */, - NT_399755008402 /* StaticLibrary_ObjC */, + NT_919543414727 /* StaticLibrary_ObjC_iOS */, + NT_281269793733 /* StaticLibrary_ObjC_macOS */, + NT_704531614016 /* StaticLibrary_ObjC_tvOS */, + NT_530818555464 /* StaticLibrary_ObjC_watchOS */, NT_437179166843 /* StaticLibrary_Swift */, AT_445731917037 /* SuperTarget */, NT_376569054786 /* XPC Service */, @@ -1198,6 +1323,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + RBP_48098211678 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_309594709686 /* Assets.xcassets in Resources */, + BF_387462025786 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; RBP_50702349225 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1400,6 +1534,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_28126979373 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_804650723499 /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_32467107793 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1416,14 +1558,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - SBP_39975500840 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BF_632297340262 /* StaticLibrary_ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; SBP_43717916684 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1459,7 +1593,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + BF_698752059275 /* AppDelegate.swift in Sources */, BF_704149935229 /* Standalone.swift in Sources */, + BF_903574875171 /* ViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1481,6 +1617,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_53081855546 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_150525852574 /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_61868746249 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1497,6 +1641,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_70453161401 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_895856588273 /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_78312289991 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1517,6 +1669,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_91954341472 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_434838320682 /* StaticLibrary_ObjC.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_93515386520 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1532,6 +1692,16 @@ target = NT_472296042419 /* Framework_iOS */; targetProxy = CIP_10972496596 /* PBXContainerItemProxy */; }; + TD_141219468074 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = NT_281269793733 /* StaticLibrary_ObjC_macOS */; + targetProxy = CIP_14121946807 /* PBXContainerItemProxy */; + }; + TD_159619342582 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = NT_281269793733 /* StaticLibrary_ObjC_macOS */; + targetProxy = CIP_15961934258 /* PBXContainerItemProxy */; + }; TD_193291182921 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = NT_507023492251 /* App_watchOS Extension */; @@ -1542,6 +1712,11 @@ target = NT_825232110500 /* App_iOS */; targetProxy = CIP_20801090045 /* PBXContainerItemProxy */; }; + TD_232150454486 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = NT_919543414727 /* StaticLibrary_ObjC_iOS */; + targetProxy = CIP_23215045448 /* PBXContainerItemProxy */; + }; TD_235580504123 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = NT_525119120469 /* Framework_macOS */; @@ -1557,31 +1732,21 @@ target = NT_618687462494 /* iMessageExtension */; targetProxy = CIP_31792113134 /* PBXContainerItemProxy */; }; - TD_337103940101 /* PBXTargetDependency */ = { + TD_587184686458 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_33710394010 /* PBXContainerItemProxy */; + target = NT_704531614016 /* StaticLibrary_ObjC_tvOS */; + targetProxy = CIP_58718468645 /* PBXContainerItemProxy */; }; - TD_629038784927 /* PBXTargetDependency */ = { + TD_665828516151 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_62903878492 /* PBXContainerItemProxy */; - }; - TD_667455552356 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_66745555235 /* PBXContainerItemProxy */; + target = NT_919543414727 /* StaticLibrary_ObjC_iOS */; + targetProxy = CIP_66582851615 /* PBXContainerItemProxy */; }; TD_676191581124 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = NT_825232110500 /* App_iOS */; targetProxy = CIP_67619158112 /* PBXContainerItemProxy */; }; - TD_721522128177 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_72152212817 /* PBXContainerItemProxy */; - }; TD_743784992411 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = NT_376569054786 /* XPC Service */; @@ -1592,11 +1757,6 @@ target = NT_472296042419 /* Framework_iOS */; targetProxy = CIP_74741847386 /* PBXContainerItemProxy */; }; - TD_784412347908 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_78441234790 /* PBXContainerItemProxy */; - }; TD_824101787753 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = NT_324671077936 /* App_watchOS */; @@ -1607,10 +1767,10 @@ target = NT_825232110500 /* App_iOS */; targetProxy = CIP_88714386547 /* PBXContainerItemProxy */; }; - TD_957476409477 /* PBXTargetDependency */ = { + TD_908217865445 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = NT_399755008402 /* StaticLibrary_ObjC */; - targetProxy = CIP_95747640947 /* PBXContainerItemProxy */; + target = NT_530818555464 /* StaticLibrary_ObjC_watchOS */; + targetProxy = CIP_90821786544 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -1632,6 +1792,14 @@ name = MainInterface.storyboard; sourceTree = ""; }; + VG_202279841299 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + FR_202279841299 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; VG_256263906698 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -1759,6 +1927,18 @@ }; name = "Test Release"; }; + BC_142190149658 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Production Debug"; + }; BC_167564962969 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1771,6 +1951,42 @@ }; name = "Staging Release"; }; + BC_192293528117 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; + BC_192679864336 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Test Debug"; + }; + BC_208278321332 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Production Debug"; + }; BC_210307580165 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2015,7 +2231,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + INFOPLIST_FILE = App_macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; OTHER_LDFLAGS = ( "$(inherited)", @@ -2123,6 +2339,18 @@ }; name = "Production Release"; }; + BC_338399173120 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Test Release"; + }; BC_351179072988 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2370,16 +2598,17 @@ }; name = "Production Debug"; }; - BC_464603633927 /* Test Release */ = { + BC_462061816889 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; }; - name = "Test Release"; + name = "Staging Release"; }; BC_467730755629 /* Production Release */ = { isa = XCBuildConfiguration; @@ -2425,6 +2654,18 @@ }; name = "Test Release"; }; + BC_479820670317 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Staging Release"; + }; BC_480688547948 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2485,6 +2726,17 @@ }; name = "Production Release"; }; + BC_495401711721 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Debug"; + }; BC_499325041919 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2579,6 +2831,17 @@ }; name = "Production Debug"; }; + BC_530610845178 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Staging Release"; + }; BC_530755208334 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2638,6 +2901,18 @@ }; name = "Staging Debug"; }; + BC_556794548954 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; BC_563308786207 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2672,7 +2947,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + INFOPLIST_FILE = App_macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; OTHER_LDFLAGS = ( "$(inherited)", @@ -2779,16 +3054,16 @@ }; name = "Test Release"; }; - BC_592419322448 /* Production Release */ = { + BC_580113529988 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 4; }; - name = "Production Release"; + name = "Test Release"; }; BC_594849660073 /* Production Release */ = { isa = XCBuildConfiguration; @@ -2815,6 +3090,30 @@ }; name = "Production Release"; }; + BC_601792226085 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + BC_602034372772 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Production Release"; + }; BC_609023497374 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2849,6 +3148,17 @@ }; name = "Production Release"; }; + BC_611527832268 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Production Release"; + }; BC_612244244384 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2891,7 +3201,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + INFOPLIST_FILE = App_macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; OTHER_LDFLAGS = ( "$(inherited)", @@ -2902,17 +3212,6 @@ }; name = "Production Release"; }; - BC_629891546665 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; BC_634896623305 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3003,6 +3302,18 @@ }; name = "Staging Release"; }; + BC_682637821562 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = "Test Release"; + }; BC_685135820012 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3044,6 +3355,18 @@ }; name = "Staging Release"; }; + BC_699627374397 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; BC_702596407424 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3107,7 +3430,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + INFOPLIST_FILE = App_macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; OTHER_LDFLAGS = ( "$(inherited)", @@ -3177,14 +3500,15 @@ }; name = "Production Debug"; }; - BC_724654958001 /* Staging Debug */ = { + BC_716189724726 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-macOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = macosx; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; }; name = "Staging Debug"; }; @@ -3288,6 +3612,18 @@ }; name = "Test Debug"; }; + BC_758688409542 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Staging Debug"; + }; BC_760168680599 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3350,6 +3686,18 @@ }; name = "Staging Debug"; }; + BC_767358549642 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = "Test Debug"; + }; BC_769258280401 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3367,17 +3715,6 @@ }; name = "Staging Debug"; }; - BC_776042221288 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; BC_790711614758 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3418,6 +3755,18 @@ }; name = "Test Release"; }; + BC_796723710441 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; BC_799591451484 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3461,6 +3810,29 @@ }; name = "Production Debug"; }; + BC_806236101497 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-iOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; + BC_806582710863 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Production Debug"; + }; BC_823301630526 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3621,16 +3993,17 @@ }; name = "Staging Debug"; }; - BC_866329197584 /* Test Debug */ = { + BC_865955650456 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC"; - SDKROOT = iphoneos; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-tvOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = appletvos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 3; }; - name = "Test Debug"; + name = "Production Release"; }; BC_866352849045 /* Test Debug */ = { isa = XCBuildConfiguration; @@ -3642,7 +4015,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + INFOPLIST_FILE = App_macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; OTHER_LDFLAGS = ( "$(inherited)", @@ -3678,6 +4051,17 @@ }; name = "Staging Debug"; }; + BC_901772102479 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_BUNDLE_IDENTIFIER = "com.project.StaticLibrary-ObjC-watchOS"; + PRODUCT_NAME = StaticLibrary_ObjC; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = "Test Debug"; + }; BC_906683798476 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3699,7 +4083,7 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", ); - INFOPLIST_FILE = Vendor/SomeXPCService.xpc/Contents/Info.plist; + INFOPLIST_FILE = App_macOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; OTHER_LDFLAGS = ( "$(inherited)", @@ -3726,6 +4110,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; + CL_281269793733 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_142190149658 /* Production Debug */, + BC_602034372772 /* Production Release */, + BC_716189724726 /* Staging Debug */, + BC_462061816889 /* Staging Release */, + BC_192679864336 /* Test Debug */, + BC_682637821562 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_324671077936 /* Build configuration list for PBXNativeTarget "App_watchOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3752,19 +4149,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; - CL_399755008402 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BC_629891546665 /* Production Debug */, - BC_592419322448 /* Production Release */, - BC_724654958001 /* Staging Debug */, - BC_776042221288 /* Staging Release */, - BC_866329197584 /* Test Debug */, - BC_464603633927 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ""; - }; CL_437179166843 /* Build configuration list for PBXNativeTarget "StaticLibrary_Swift" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3869,6 +4253,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; + CL_530818555464 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_806582710863 /* Production Debug */, + BC_611527832268 /* Production Release */, + BC_495401711721 /* Staging Debug */, + BC_530610845178 /* Staging Release */, + BC_901772102479 /* Test Debug */, + BC_580113529988 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_618687462494 /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3895,6 +4292,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; + CL_704531614016 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_208278321332 /* Production Debug */, + BC_865955650456 /* Production Release */, + BC_758688409542 /* Staging Debug */, + BC_479820670317 /* Staging Release */, + BC_767358549642 /* Test Debug */, + BC_338399173120 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_783122899910 /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3934,6 +4344,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; + CL_919543414727 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_796723710441 /* Production Debug */, + BC_192293528117 /* Production Release */, + BC_556794548954 /* Staging Debug */, + BC_699627374397 /* Staging Release */, + BC_601792226085 /* Test Debug */, + BC_806236101497 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_935153865209 /* Build configuration list for PBXNativeTarget "iMessageApp" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Tests/Fixtures/TestProject/build.sh b/Tests/Fixtures/TestProject/build.sh index 884a5a1e..ad36f73a 100755 --- a/Tests/Fixtures/TestProject/build.sh +++ b/Tests/Fixtures/TestProject/build.sh @@ -2,4 +2,9 @@ set -e carthage bootstrap --cache-builds +echo " +Building iOS app" xcodebuild -project Project.xcodeproj -scheme "App_iOS Test" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO | xcpretty +echo " +Building macOS app" +xcodebuild -project Project.xcodeproj -scheme "App_macOS" -configuration "Test Debug" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO | xcpretty diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index ab05ac4b..cc98a20c 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -29,6 +29,7 @@ targets: attributes: ProvisioningStyle: Automatic sources: + - path: App_macOS - path: StandaloneFiles/Standalone.swift - path: Vendor/SomeXPCService.xpc dependencies: @@ -70,7 +71,7 @@ targets: PRODUCT_BUNDLE_IDENTIFIER: com.project.app dependencies: - target: Framework_iOS - - target: StaticLibrary_ObjC + - target: StaticLibrary_ObjC_iOS - carthage: Result - target: App_watchOS - target: iMessageApp @@ -134,7 +135,7 @@ targets: StaticLibrary_ObjC: type: library.static - platform: iOS + platform: [iOS, tvOS, watchOS, macOS] sources: StaticLibrary_ObjC StaticLibrary_Swift: @@ -158,7 +159,7 @@ targets: path: scripts/script.sh dependencies: - carthage: Result - - target: StaticLibrary_ObjC + - target: StaticLibrary_ObjC_$platform App_iOS_Tests: type: bundle.unit-test platform: iOS From d5b72bce4f9b361da182f30ff08974efd6380c14 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 20:48:11 +1000 Subject: [PATCH 09/12] check fixtures using git diff --- .circleci/config.yml | 20 ++++++++++++------- .../ProjectFixtureTests.swift | 16 +-------------- .../ProjectGeneratorTests.swift | 15 +++++++------- diff-fixtures.sh | 13 ++++++++++++ 4 files changed, 34 insertions(+), 30 deletions(-) create mode 100755 diff-fixtures.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index 918d861b..aa03700f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,11 +12,14 @@ jobs: name: Test command: swift test 2>&1 | xcpretty - run: - name: Build release - command: make build + name: Check Project Diff + command: ./diff-fixtures.sh - run: name: Build Test Project command: ./build-fixtures.sh + - run: + name: Build release + command: make build macOS_swift_4.2: macos: xcode: "10.0.0" @@ -25,16 +28,19 @@ jobs: - run: name: Build command: swift build + - run: + name: Test + command: swift test 2>&1 | xcpretty # disabled till UUID's are stable # - run: - # name: Test - # command: swift test 2>&1 | xcpretty - - run: - name: Build release - command: make build + # name: Check Project Diff + # command: ./diff-fixtures.sh - run: name: Build Test Project command: ./build-fixtures.sh + - run: + name: Build release + command: make build workflows: version: 2 workflow: diff --git a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift index b66e50b3..028c7173 100644 --- a/Tests/XcodeGenKitTests/ProjectFixtureTests.swift +++ b/Tests/XcodeGenKitTests/ProjectFixtureTests.swift @@ -62,21 +62,7 @@ fileprivate func generateXcodeProject(specPath: Path, projectPath: Path, file: S let project = try Project(path: specPath) let generator = ProjectGenerator(project: project) let xcodeProject = try generator.generateXcodeProject() - let oldProject = try XcodeProj(path: projectPath) - let pbxProjPath = projectPath + XcodeProj.pbxprojPath(projectPath) - let oldProjectString: String = try pbxProjPath.read() try xcodeProject.write(path: projectPath, override: true) - let newProjectString: String = try pbxProjPath.read() - let newProject = try XcodeProj(path: projectPath) - let stringDiff = newProjectString != oldProjectString - if newProject != oldProject || stringDiff { - var message = "\(projectPath.string) has changed. If change is legitimate commit the change and run test again" - if stringDiff { - message += ":\n\n\(pbxProjPath):\n\(prettyFirstDifferenceBetweenStrings(oldProjectString, newProjectString))" - } - throw failure(message, file: file, line: line) - } - - return newProject + return xcodeProject } diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 7e5e624d..df246301 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -733,15 +733,14 @@ class ProjectGeneratorTests: XCTestCase { } let buildPhases = nativeTarget.buildPhases - let scripts = pbxProject.objects.shellScriptBuildPhases.objectReferences - let script1 = scripts[0] - let script2 = scripts[1] - try expect(scripts.count) == 2 - try expect(buildPhases.first) == script1.reference - try expect(buildPhases.last) == script2.reference + let scripts = pbxProject.objects.shellScriptBuildPhases + let script1 = scripts.first { $0.value.shellScript == "script1" } + let script2 = scripts.first { $0.value.shellScript == "script2" } - try expect(script1.object.shellScript) == "script1" - try expect(script2.object.shellScript) == "script2" + try expect(scripts.count) == 2 + + try expect(buildPhases.first) == script1?.key + try expect(buildPhases.last) == script2?.key } $0.it("generates targets with cylical dependencies") { diff --git a/diff-fixtures.sh b/diff-fixtures.sh new file mode 100755 index 00000000..183a9bdd --- /dev/null +++ b/diff-fixtures.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -e + +if [[ `git status --porcelain Tests/Fixtures/TestProject` ]]; then + echo "" + echo "⚠️ Generated TestProject has changed." + echo "⚠️ If this is a valid change please run the tests and commit the updated TestProject." + echo "" + git --no-pager diff --color=always Tests/Fixtures/TestProject + exit 1 +else + echo "✅ Generated TestProject has not changed." +fi From aa37eb0538fb35842bfbae02a6062e48281ded84 Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 21:57:51 +1000 Subject: [PATCH 10/12] fix warning in TestProject --- .../TestProject/App_watchOS Extension/InterfaceController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift b/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift index 2d82f8a6..73cc697f 100644 --- a/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift +++ b/Tests/Fixtures/TestProject/App_watchOS Extension/InterfaceController.swift @@ -6,7 +6,7 @@ class InterfaceController: WKInterfaceController { override func awake(withContext context: Any?) { super.awake(withContext: context) - let result: Result = .success("value") + _ = Result.success("value") // Configure interface objects here. } From e921c1090206517e6988ef2ad90c462c807bd7bb Mon Sep 17 00:00:00 2001 From: Yonas Kolb Date: Sat, 29 Sep 2018 22:25:04 +1000 Subject: [PATCH 11/12] remove iOS codesigning sdk restriction --- SettingPresets/Product_Platform/application_iOS.yml | 2 +- .../TestProject/Project.xcodeproj/project.pbxproj | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/SettingPresets/Product_Platform/application_iOS.yml b/SettingPresets/Product_Platform/application_iOS.yml index 31225146..db2ffe0a 100644 --- a/SettingPresets/Product_Platform/application_iOS.yml +++ b/SettingPresets/Product_Platform/application_iOS.yml @@ -1,2 +1,2 @@ -CODE_SIGN_IDENTITY[sdk=iphoneos*]: iPhone Developer +CODE_SIGN_IDENTITY: iPhone Developer ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index fbd3b463..04b21e05 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -1882,7 +1882,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -2167,7 +2167,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -2671,7 +2671,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -2847,7 +2847,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -3594,7 +3594,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -3782,7 +3782,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", From ab0d71d96f89562197258ff2f08ded8896c0eb91 Mon Sep 17 00:00:00 2001 From: Alvar Hansen Date: Fri, 28 Sep 2018 16:46:46 +0300 Subject: [PATCH 12/12] Add framework weak linking setting --- CHANGELOG.md | 6 + Docs/ProjectSpec.md | 1 + Sources/ProjectSpec/Dependency.swift | 8 +- Sources/XcodeGenKit/PBXProjGenerator.swift | 23 +- .../Project.xcodeproj/project.pbxproj | 729 +++++++++++++++++- Tests/Fixtures/TestProject/project.yml | 11 + .../ProjectGeneratorTests.swift | 42 +- Tests/XcodeGenKitTests/SpecLoadingTests.swift | 4 +- 8 files changed, 810 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a2e1f1f..1b6fb0e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## Master + +#### Added +- Added `weak` Weak linking setting for dependencies [411](https://github.com/yonaskolb/XcodeGen/pull/411) @alvarhansen + + ## 1.11.2 If XcodeGen is compiled with Swift 4.2, then UUID's in the generated project will not be deterministic. This will be fixed in an upcoming release with an update to xcodeproj 6.0 diff --git a/Docs/ProjectSpec.md b/Docs/ProjectSpec.md index 4042dfb5..5117b78e 100644 --- a/Docs/ProjectSpec.md +++ b/Docs/ProjectSpec.md @@ -328,6 +328,7 @@ These only applied to `target` and `framework` dependencies. - [ ] **link**: **Bool** - Whether to link the dependency. Defaults to `true` depending on the type of the dependency and the type of the target (e.g. static libraries will only link to executables by default). - [ ] **codeSign**: **Bool** - Whether the `codeSignOnCopy` setting is applied when embedding framework. Defaults to true - [ ] **removeHeaders**: **Bool** - Whether the `removeHeadersOnCopy` setting is applied when embedding the framework. Defaults to true +- [ ] **weak**: **Bool** - Whether the `Weak` setting is applied when linking the framework. Defaults to false **Implicit Framework options**: diff --git a/Sources/ProjectSpec/Dependency.swift b/Sources/ProjectSpec/Dependency.swift index 324f703a..537bd46f 100644 --- a/Sources/ProjectSpec/Dependency.swift +++ b/Sources/ProjectSpec/Dependency.swift @@ -11,6 +11,7 @@ public struct Dependency: Equatable { public var removeHeaders: Bool = true public var link: Bool? public var implicit: Bool = false + public var weakLink: Bool = false public init( type: DependencyType, @@ -18,7 +19,8 @@ public struct Dependency: Equatable { embed: Bool? = nil, codeSign: Bool? = nil, link: Bool? = nil, - implicit: Bool = false + implicit: Bool = false, + weakLink: Bool = false ) { self.type = type self.reference = reference @@ -26,6 +28,7 @@ public struct Dependency: Equatable { self.codeSign = codeSign self.link = link self.implicit = implicit + self.weakLink = weakLink } public enum DependencyType { @@ -61,5 +64,8 @@ extension Dependency: JSONObjectConvertible { if let bool: Bool = jsonDictionary.json(atKeyPath: "implicit") { implicit = bool } + if let bool: Bool = jsonDictionary.json(atKeyPath: "weak") { + weakLink = bool + } } } diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index de814fd0..262a46aa 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -459,6 +459,14 @@ public class PBXProjGenerator { return ["ATTRIBUTES": embedAttributes] } + func getDependencyFrameworkSettings(dependency: Dependency) -> [String: Any]? { + var linkingAttributes: [String] = [] + if dependency.weakLink { + linkingAttributes.append("Weak") + } + return !linkingAttributes.isEmpty ? ["ATTRIBUTES": linkingAttributes] : nil + } + for dependency in targetDependencies { let embed = dependency.embed ?? target.shouldEmbedDependencies @@ -482,7 +490,10 @@ public class PBXProjGenerator { let dependencyBuildFile = targetBuildFiles[dependencyTargetName]! let buildFile = createObject( id: dependencyBuildFile.reference + target.name, - PBXBuildFile(fileRef: dependencyBuildFile.object.fileRef!) + PBXBuildFile( + fileRef: dependencyBuildFile.object.fileRef!, + settings: getDependencyFrameworkSettings(dependency: dependency) + ) ) targetFrameworkBuildFiles.append(buildFile.reference) @@ -538,7 +549,10 @@ public class PBXProjGenerator { let buildFile = createObject( id: "framework" + fileReference + target.name, - PBXBuildFile(fileRef: fileReference) + PBXBuildFile( + fileRef: fileReference, + settings: getDependencyFrameworkSettings(dependency: dependency) + ) ) targetFrameworkBuildFiles.append(buildFile.reference) @@ -569,7 +583,10 @@ public class PBXProjGenerator { let buildFile = createObject( id: "carthage" + fileReference + target.name, - PBXBuildFile(fileRef: fileReference) + PBXBuildFile( + fileRef: fileReference, + settings: getDependencyFrameworkSettings(dependency: dependency) + ) ) carthageFrameworksByPlatform[target.platform.carthageDirectoryName, default: []].insert(fileReference) diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index fbd3b463..4802c460 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -27,7 +27,9 @@ BF_138356261076 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_363921640403 /* InterfaceController.swift */; }; BF_140777424236 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_584425140013 /* Result.framework */; }; BF_143559378694 = {isa = PBXBuildFile; fileRef = FR_919543414727 /* StaticLibrary_ObjC.a */; }; + BF_149117711530 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; BF_150525852574 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; + BF_156245390034 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_159058095963 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_167705969896 /* TestProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_145531354566 /* TestProjectUITests.swift */; }; BF_182635022050 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_830053537293 /* Assets.xcassets */; }; @@ -39,10 +41,12 @@ BF_211435872001 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = VG_473000061463 /* Localizable.strings */; }; BF_212221512596 /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_470929579339 /* StaticLibrary.swift */; }; BF_215463341392 /* SomeFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; }; + BF_219605708533 = {isa = PBXBuildFile; fileRef = FR_563193937230 /* Framework2.framework */; }; BF_225293845818 = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; }; BF_237760701422 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_987043315473 /* Assets.xcassets */; }; BF_239684316986 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; BF_243071719122 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; + BF_250927007176 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_259448131292 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; BF_268392110450 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_587738154368 /* Assets.xcassets */; }; BF_279581961655 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_868653349092 /* Assets.xcassets */; }; @@ -59,8 +63,10 @@ BF_331192862207 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_481575785861 /* ViewController.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; BF_334321520545 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FR_377082606829 /* Assets.xcassets */; }; BF_334778067417 = {isa = PBXBuildFile; fileRef = FR_783122899910 /* App_iOS_Tests.xctest */; }; + BF_341452282021 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_360196406184 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_722239415598 /* TestProjectTests.swift */; }; BF_387462025786 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_202279841299 /* Main.storyboard */; }; + BF_391366142497 /* Framework2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_662897337290 /* Framework2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_425679397292 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_434838320682 /* StaticLibrary_ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = "FR_698230898030-1" /* StaticLibrary_ObjC.m */; }; BF_441538117869 /* App_watchOS Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = FR_507023492251 /* App_watchOS Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -69,12 +75,18 @@ BF_461044234706 /* SomeFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_654302359039 /* SomeFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_463608041925 /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_698230898030 /* StaticLibrary_ObjC.h */; }; BF_474063668246 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; }; + BF_479713239854 = {isa = PBXBuildFile; fileRef = FR_105280345645 /* Framework2.framework */; }; BF_496472559782 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_503484983186 /* MoreUnder.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_196911129660 /* MoreUnder.swift */; }; BF_510053944904 /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = FR_815403394914 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_515435124777 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; + BF_517043434617 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; BF_518775144316 /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_229826849033 /* SomeXPCService.xpc */; }; BF_526105569599 = {isa = PBXBuildFile; fileRef = FR_437179166843 /* StaticLibrary_Swift.a */; }; + BF_529143086177 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF_532861652809 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; BF_538515166673 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_256263906698 /* LaunchScreen.storyboard */; }; + BF_550502704373 = {isa = PBXBuildFile; fileRef = FR_662897337290 /* Framework2.framework */; }; BF_552913093094 /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; BF_561304997165 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; BF_563614389392 = {isa = PBXBuildFile; fileRef = FR_618687462494 /* iMessageExtension.appex */; }; @@ -82,6 +94,7 @@ BF_597639300414 /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_525119120469 /* Framework.framework */; }; BF_606517090398 = {isa = PBXBuildFile; fileRef = FR_281269793733 /* StaticLibrary_ObjC.a */; }; BF_612351978356 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = VG_264279911176 /* Interface.storyboard */; }; + BF_616519281451 /* Framework2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_662897337290 /* Framework2.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; BF_624802436672 /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_172952167809 /* FrameworkFile.swift */; }; BF_628591712051 /* module.modulemap in CopyFiles */ = {isa = PBXBuildFile; fileRef = FR_665156855283 /* module.modulemap */; }; BF_629554450880 /* Result.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FR_763057275314 /* Result.framework */; }; @@ -96,6 +109,7 @@ BF_704149935229 /* Standalone.swift in Sources */ = {isa = PBXBuildFile; fileRef = FR_675266829517 /* Standalone.swift */; }; BF_721498080533 /* ResourceFolder in Resources */ = {isa = PBXBuildFile; fileRef = FR_257073931060 /* ResourceFolder */; }; BF_725992639588 = {isa = PBXBuildFile; fileRef = FR_480982116789 /* App_macOS.app */; }; + BF_726199177939 = {isa = PBXBuildFile; fileRef = FR_651103371726 /* Framework2.framework */; }; BF_732745079658 = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; }; BF_734036107922 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = FR_183521624014 /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; BF_747443236192 /* App_watchOS.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = FR_324671077936 /* App_watchOS.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -179,6 +193,13 @@ remoteGlobalIDString = NT_525119120469; remoteInfo = Framework_macOS; }; + CIP_23609521734 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = P_8448771205358 /* Project object */; + proxyType = 1; + remoteGlobalIDString = NT_662897337290; + remoteInfo = Framework2_iOS; + }; CIP_28856087625 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = P_8448771205358 /* Project object */; @@ -358,6 +379,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + BF_391366142497 /* Framework2.framework in Embed Frameworks */, BF_905038616071 /* Framework.framework in Embed Frameworks */, BF_461044234706 /* SomeFramework.framework in Embed Frameworks */, ); @@ -399,6 +421,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + FR_105280345645 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_118219888726 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LocalizedStoryboard.storyboard; sourceTree = ""; }; FR_123503999387 /* App_iOS_UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = App_iOS_UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; FR_131384036341 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; @@ -445,6 +468,7 @@ FR_525119120469 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_530818555464 /* StaticLibrary_ObjC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = StaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; FR_530852296303 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_563193937230 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_570918052822 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; FR_584425140013 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_587738154368 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -455,10 +479,12 @@ FR_618687462494 /* iMessageExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = iMessageExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; FR_635802719871 /* base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = base.xcconfig; sourceTree = ""; }; FR_643034527839 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FR_651103371726 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_654302359039 /* SomeFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SomeFramework.framework; path = Vendor/SomeFramework.framework; sourceTree = ""; }; FR_655678458041 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; FR_660690926982 /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; FR_662315837182 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FR_662897337290 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FR_665156855283 /* module.modulemap */ = {isa = PBXFileReference; path = module.modulemap; sourceTree = ""; }; FR_669811003841 /* Result.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Result.framework; sourceTree = ""; }; FR_675266829517 /* Standalone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Standalone.swift; sourceTree = ""; }; @@ -552,6 +578,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + BF_616519281451 /* Framework2.framework in Frameworks */, BF_324363145049 /* Framework.framework in Frameworks */, BF_474063668246 /* Result.framework in Frameworks */, BF_849675970921 /* StaticLibrary_ObjC.a in Frameworks */, @@ -848,16 +875,20 @@ FR_480982116789 /* App_macOS.app */, FR_507023492251 /* App_watchOS Extension.appex */, FR_324671077936 /* App_watchOS.app */, - FR_525119120469 /* Framework.framework */, - FR_662315837182 /* Framework.framework */, - FR_438704538506 /* Framework.framework */, FR_472296042419 /* Framework.framework */, + FR_525119120469 /* Framework.framework */, + FR_438704538506 /* Framework.framework */, + FR_662315837182 /* Framework.framework */, + FR_105280345645 /* Framework2.framework */, + FR_563193937230 /* Framework2.framework */, + FR_662897337290 /* Framework2.framework */, + FR_651103371726 /* Framework2.framework */, FR_935153865209 /* iMessageApp.app */, FR_618687462494 /* iMessageExtension.appex */, - FR_530818555464 /* StaticLibrary_ObjC.a */, - FR_704531614016 /* StaticLibrary_ObjC.a */, FR_919543414727 /* StaticLibrary_ObjC.a */, FR_281269793733 /* StaticLibrary_ObjC.a */, + FR_704531614016 /* StaticLibrary_ObjC.a */, + FR_530818555464 /* StaticLibrary_ObjC.a */, FR_437179166843 /* StaticLibrary_Swift.a */, FR_376569054786 /* XPC Service.xpc */, ); @@ -875,6 +906,14 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + HBP_10528034564 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_529143086177 /* MyFramework.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; HBP_43870453850 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -902,6 +941,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + HBP_56319393723 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_156245390034 /* MyFramework.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + HBP_65110337172 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_250927007176 /* MyFramework.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; HBP_66231583718 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -911,6 +966,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + HBP_66289733729 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_341452282021 /* MyFramework.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXLegacyTarget section */ @@ -930,6 +993,22 @@ /* End PBXLegacyTarget section */ /* Begin PBXNativeTarget section */ + NT_105280345645 /* Framework2_watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_105280345645 /* Build configuration list for PBXNativeTarget "Framework2_watchOS" */; + buildPhases = ( + HBP_10528034564 /* Headers */, + SBP_10528034564 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_watchOS; + productName = Framework2_watchOS; + productReference = FR_105280345645 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; NT_123503999387 /* App_iOS_UITests */ = { isa = PBXNativeTarget; buildConfigurationList = CL_123503999387 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; @@ -1126,6 +1205,22 @@ productReference = FR_530818555464 /* StaticLibrary_ObjC.a */; productType = "com.apple.product-type.library.static"; }; + NT_563193937230 /* Framework2_tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_563193937230 /* Build configuration list for PBXNativeTarget "Framework2_tvOS" */; + buildPhases = ( + HBP_56319393723 /* Headers */, + SBP_56319393723 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_tvOS; + productName = Framework2_tvOS; + productReference = FR_563193937230 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; NT_618687462494 /* iMessageExtension */ = { isa = PBXNativeTarget; buildConfigurationList = CL_618687462494 /* Build configuration list for PBXNativeTarget "iMessageExtension" */; @@ -1142,6 +1237,22 @@ productReference = FR_618687462494 /* iMessageExtension.appex */; productType = "com.apple.product-type.app-extension.messages"; }; + NT_651103371726 /* Framework2_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_651103371726 /* Build configuration list for PBXNativeTarget "Framework2_macOS" */; + buildPhases = ( + HBP_65110337172 /* Headers */, + SBP_65110337172 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_macOS; + productName = Framework2_macOS; + productReference = FR_651103371726 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; NT_662315837182 /* Framework_tvOS */ = { isa = PBXNativeTarget; buildConfigurationList = CL_662315837182 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; @@ -1161,6 +1272,22 @@ productReference = FR_662315837182 /* Framework.framework */; productType = "com.apple.product-type.framework"; }; + NT_662897337290 /* Framework2_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = CL_662897337290 /* Build configuration list for PBXNativeTarget "Framework2_iOS" */; + buildPhases = ( + HBP_66289733729 /* Headers */, + SBP_66289733729 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Framework2_iOS; + productName = Framework2_iOS; + productReference = FR_662897337290 /* Framework2.framework */; + productType = "com.apple.product-type.framework"; + }; NT_704531614016 /* StaticLibrary_ObjC_tvOS */ = { isa = PBXNativeTarget; buildConfigurationList = CL_704531614016 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */; @@ -1212,6 +1339,7 @@ ); dependencies = ( TD_824101787753 /* PBXTargetDependency */, + TD_236095217340 /* PBXTargetDependency */, TD_109724965966 /* PBXTargetDependency */, TD_232150454486 /* PBXTargetDependency */, TD_288560876254 /* PBXTargetDependency */, @@ -1295,6 +1423,10 @@ NT_480982116789 /* App_macOS */, NT_324671077936 /* App_watchOS */, NT_507023492251 /* App_watchOS Extension */, + NT_662897337290 /* Framework2_iOS */, + NT_651103371726 /* Framework2_macOS */, + NT_563193937230 /* Framework2_tvOS */, + NT_105280345645 /* Framework2_watchOS */, NT_472296042419 /* Framework_iOS */, NT_525119120469 /* Framework_macOS */, NT_662315837182 /* Framework_tvOS */, @@ -1526,6 +1658,14 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + SBP_10528034564 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_532861652809 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_12350399938 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1625,6 +1765,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_56319393723 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_517043434617 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_61868746249 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1633,6 +1781,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_65110337172 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_515435124777 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_66231583718 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1641,6 +1797,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + SBP_66289733729 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF_149117711530 /* FrameworkFile.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; SBP_70453161401 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1722,6 +1886,11 @@ target = NT_525119120469 /* Framework_macOS */; targetProxy = CIP_23558050412 /* PBXContainerItemProxy */; }; + TD_236095217340 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = NT_662897337290 /* Framework2_iOS */; + targetProxy = CIP_23609521734 /* PBXContainerItemProxy */; + }; TD_288560876254 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = NT_935153865209 /* iMessageApp */; @@ -1927,6 +2096,27 @@ }; name = "Test Release"; }; + BC_132887277508 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; BC_142190149658 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1939,6 +2129,27 @@ }; name = "Production Debug"; }; + BC_162130726969 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; BC_167564962969 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2039,6 +2250,27 @@ }; name = "Production Debug"; }; + BC_233005332042 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; BC_240587562436 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2242,6 +2474,27 @@ }; name = "Production Debug"; }; + BC_282993316269 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; BC_282993554784 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2267,6 +2520,27 @@ }; name = "Production Release"; }; + BC_283605270658 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; BC_296138297674 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2332,6 +2606,26 @@ }; name = "Staging Debug"; }; + BC_317429236477 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; BC_334821934458 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2351,6 +2645,27 @@ }; name = "Test Release"; }; + BC_345911583907 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; BC_351179072988 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2620,6 +2935,27 @@ }; name = "Production Release"; }; + BC_469509245400 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; BC_470682595853 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2701,6 +3037,27 @@ }; name = "Production Debug"; }; + BC_493052429980 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; BC_493052431451 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2737,6 +3094,26 @@ }; name = "Staging Debug"; }; + BC_496162047138 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; BC_499325041919 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2789,6 +3166,27 @@ }; name = "Production Debug"; }; + BC_516808329453 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; BC_517306343059 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2901,6 +3299,26 @@ }; name = "Staging Debug"; }; + BC_536614240472 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; BC_556794548954 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3002,6 +3420,27 @@ }; name = "Production Release"; }; + BC_572479882124 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; BC_575374366235 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3090,6 +3529,27 @@ }; name = "Production Release"; }; + BC_598666093104 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; BC_601792226085 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3255,6 +3715,48 @@ }; name = "Staging Release"; }; + BC_649616542112 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; + BC_650615721579 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-iOS"; + PRODUCT_NAME = Framework2; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; BC_655752097950 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3280,6 +3782,26 @@ }; name = "Test Debug"; }; + BC_659994766813 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; BC_667304541586 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3395,6 +3917,27 @@ }; name = "Test Debug"; }; + BC_704319259740 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; BC_705279564212 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3420,6 +3963,27 @@ }; name = "Production Debug"; }; + BC_706746828714 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; BC_707904794064 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3512,6 +4076,26 @@ }; name = "Staging Debug"; }; + BC_721815976999 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; BC_730521266150 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3800,6 +4384,27 @@ }; name = "Production Debug"; }; + BC_800851631390 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; BC_805283956103 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4026,6 +4631,48 @@ }; name = "Test Debug"; }; + BC_870421557533 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-macOS"; + PRODUCT_NAME = Framework2; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; + BC_878673788752 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-tvOS"; + PRODUCT_NAME = Framework2; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; BC_879000441352 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4094,9 +4741,42 @@ }; name = "Staging Release"; }; + BC_990974077989 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Framework/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.project.Framework2-watchOS"; + PRODUCT_NAME = Framework2; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + CL_105280345645 /* Build configuration list for PBXNativeTarget "Framework2_watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_721815976999 /* Production Debug */, + BC_317429236477 /* Production Release */, + BC_990974077989 /* Staging Debug */, + BC_659994766813 /* Staging Release */, + BC_496162047138 /* Test Debug */, + BC_536614240472 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_123503999387 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -4266,6 +4946,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; + CL_563193937230 /* Build configuration list for PBXNativeTarget "Framework2_tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_132887277508 /* Production Debug */, + BC_282993316269 /* Production Release */, + BC_704319259740 /* Staging Debug */, + BC_598666093104 /* Staging Release */, + BC_878673788752 /* Test Debug */, + BC_233005332042 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_618687462494 /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -4279,6 +4972,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; + CL_651103371726 /* Build configuration list for PBXNativeTarget "Framework2_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_469509245400 /* Production Debug */, + BC_870421557533 /* Production Release */, + BC_800851631390 /* Staging Debug */, + BC_649616542112 /* Staging Release */, + BC_706746828714 /* Test Debug */, + BC_516808329453 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_662315837182 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -4292,6 +4998,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = ""; }; + CL_662897337290 /* Build configuration list for PBXNativeTarget "Framework2_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BC_572479882124 /* Production Debug */, + BC_493052429980 /* Production Release */, + BC_283605270658 /* Staging Debug */, + BC_345911583907 /* Staging Release */, + BC_650615721579 /* Test Debug */, + BC_162130726969 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ""; + }; CL_704531614016 /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index cc98a20c..2afae046 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -73,6 +73,8 @@ targets: - target: Framework_iOS - target: StaticLibrary_ObjC_iOS - carthage: Result + - target: Framework2_iOS + weak: true - target: App_watchOS - target: iMessageApp - framework: Vendor/SomeFramework.framework @@ -160,6 +162,15 @@ targets: dependencies: - carthage: Result - target: StaticLibrary_ObjC_$platform + + Framework2: + type: framework + platform: [iOS, tvOS, watchOS, macOS] + sources: + - path: Framework + excludes: + - "*.xcodeproj" + App_iOS_Tests: type: bundle.unit-test platform: iOS diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index df246301..5db24c36 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -21,6 +21,12 @@ fileprivate let framework = Target( settings: Settings(buildSettings: ["SETTING_2": "VALUE"]) ) +fileprivate let optionalFramework = Target( + name: "MyOptionalFramework", + type: .framework, + platform: .iOS +) + fileprivate let uiTest = Target( name: "MyAppUITests", type: .uiTestBundle, @@ -29,7 +35,7 @@ fileprivate let uiTest = Target( dependencies: [Dependency(type: .target, reference: "MyApp")] ) -fileprivate let targets = [app, framework, uiTest] +fileprivate let targets = [app, framework, optionalFramework, uiTest] class ProjectGeneratorTests: XCTestCase { @@ -230,10 +236,11 @@ class ProjectGeneratorTests: XCTestCase { $0.it("generates targets") { let pbxProject = try project.generatePbxProj() let nativeTargets = pbxProject.objects.nativeTargets.referenceValues - try expect(nativeTargets.count) == 3 + try expect(nativeTargets.count) == 4 try expect(nativeTargets.contains { $0.name == app.name }).beTrue() try expect(nativeTargets.contains { $0.name == framework.name }).beTrue() try expect(nativeTargets.contains { $0.name == uiTest.name }).beTrue() + try expect(nativeTargets.contains { $0.name == optionalFramework.name }).beTrue() } $0.it("generates target attributes") { @@ -243,7 +250,7 @@ class ProjectGeneratorTests: XCTestCase { var testTargetWithAttributes = uiTest testTargetWithAttributes.settings.buildSettings["CODE_SIGN_STYLE"] = "Manual" - let project = Project(basePath: "", name: "test", targets: [appTargetWithAttributes, framework, testTargetWithAttributes]) + let project = Project(basePath: "", name: "test", targets: [appTargetWithAttributes, framework, optionalFramework, testTargetWithAttributes]) let pbxProject = try project.generatePbxProj() guard let targetAttributes = pbxProject.objects.projects.referenceValues.first?.attributes["TargetAttributes"] as? [String: [String: Any]] else { @@ -804,6 +811,35 @@ class ProjectGeneratorTests: XCTestCase { try expect(second.outputFiles) == [] try expect(second.outputFilesCompilerFlags) == [] } + + $0.it("generates dependency build file settings") { + let app = Target( + name: "MyApp", + type: .application, + platform: .iOS, + dependencies: [ + Dependency(type: .target, reference: "MyFramework"), + Dependency(type: .target, reference: "MyOptionalFramework", weakLink: true) + ] + ) + + let project = Project(basePath: "", name: "test", targets: [app, framework, optionalFramework, uiTest]) + let pbxProject = try project.generatePbxProj() + + guard let nativeTarget = pbxProject.objects.nativeTargets.referenceValues.first(where: { $0.name == app.name }) else { + throw failure("PBXNativeTarget for \(app.name) not found") + } + let buildPhases = nativeTarget.buildPhases + let frameworkPhases = pbxProject.objects.frameworksBuildPhases.objectReferences.filter { buildPhases.contains($0.reference) } + + let frameworkBuildFiles = frameworkPhases[0].object.files.compactMap { pbxProject.objects.buildFiles[$0] } + let buildFileSettings = frameworkBuildFiles.map { $0.settings } + + try expect(frameworkBuildFiles.count) == 2 + try expect(buildFileSettings.compactMap({ $0 }).count) == 1 + try expect(buildFileSettings.compactMap({ $0?["ATTRIBUTES"] }).count) == 1 + try expect(buildFileSettings.compactMap({ $0?["ATTRIBUTES"] as? [String] }).first) == ["Weak"] + } } } diff --git a/Tests/XcodeGenKitTests/SpecLoadingTests.swift b/Tests/XcodeGenKitTests/SpecLoadingTests.swift index a6d47476..ce9836d2 100644 --- a/Tests/XcodeGenKitTests/SpecLoadingTests.swift +++ b/Tests/XcodeGenKitTests/SpecLoadingTests.swift @@ -146,13 +146,13 @@ class SpecLoadingTests: XCTestCase { targetDictionary["dependencies"] = [ ["target": "name", "embed": false], ["carthage": "name"], - ["framework": "path"], + ["framework": "path", "weak": true], ] let target = try Target(name: "test", jsonDictionary: targetDictionary) try expect(target.dependencies.count) == 3 try expect(target.dependencies[0]) == Dependency(type: .target, reference: "name", embed: false) try expect(target.dependencies[1]) == Dependency(type: .carthage, reference: "name") - try expect(target.dependencies[2]) == Dependency(type: .framework, reference: "path") + try expect(target.dependencies[2]) == Dependency(type: .framework, reference: "path", weakLink: true) } $0.it("parses cross platform targets") {