Skip to content

Commit 2333878

Browse files
committed
Added a new test target for taking App Store screenshots and an associated fastlane lane.
1 parent 173637f commit 2333878

File tree

10 files changed

+572
-1
lines changed

10 files changed

+572
-1
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,6 @@ fastlane/report.xml
6666
fastlane/Preview.html
6767
fastlane/screenshots/**/*.png
6868
fastlane/test_output
69+
70+
# fastlane snapshot
71+
screenshots/

TallestTowers.xcodeproj/project.pbxproj

+126-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
5519C171234E33440022E332 /* TowerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5519C170234E33440022E332 /* TowerTests.swift */; };
1919
5519C17C234E33440022E332 /* TallestTowersUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5519C17B234E33440022E332 /* TallestTowersUITests.swift */; };
2020
5519C18A234E35880022E332 /* Tower.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5519C189234E35880022E332 /* Tower.swift */; };
21+
5535C79A2382FF7B00E65B03 /* TallestTowersScreenshots.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5535C7992382FF7B00E65B03 /* TallestTowersScreenshots.swift */; };
22+
5535C7A22382FFD400E65B03 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5535C7A12382FFD400E65B03 /* SnapshotHelper.swift */; };
2123
55CFADD6235F44390067DBB7 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 55CFADD5235F44380067DBB7 /* README.md */; };
2224
55CFADD8235F860E0067DBB7 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 55CFADD7235F860E0067DBB7 /* LICENSE */; };
2325
/* End PBXBuildFile section */
@@ -37,6 +39,13 @@
3739
remoteGlobalIDString = 5519C155234E33420022E332;
3840
remoteInfo = TallestTowers;
3941
};
42+
5535C79C2382FF7B00E65B03 /* PBXContainerItemProxy */ = {
43+
isa = PBXContainerItemProxy;
44+
containerPortal = 5519C14E234E33420022E332 /* Project object */;
45+
proxyType = 1;
46+
remoteGlobalIDString = 5519C155234E33420022E332;
47+
remoteInfo = TallestTowers;
48+
};
4049
/* End PBXContainerItemProxy section */
4150

4251
/* Begin PBXFileReference section */
@@ -60,6 +69,11 @@
6069
552B707D236B5D9300ACC210 /* Pluginfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Pluginfile; sourceTree = "<group>"; };
6170
552B707E236B5D9300ACC210 /* Appfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Appfile; sourceTree = "<group>"; };
6271
552B707F236B5D9300ACC210 /* Fastfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Fastfile; sourceTree = "<group>"; };
72+
5535C7972382FF7B00E65B03 /* TallestTowersScreenshots.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TallestTowersScreenshots.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
73+
5535C7992382FF7B00E65B03 /* TallestTowersScreenshots.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TallestTowersScreenshots.swift; sourceTree = "<group>"; };
74+
5535C79B2382FF7B00E65B03 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
75+
5535C7A12382FFD400E65B03 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = "<group>"; };
76+
5535C7A32383038C00E65B03 /* Snapfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Snapfile; sourceTree = "<group>"; };
6377
55AE65672360A0D60064B1AB /* semaphore.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = semaphore.yml; sourceTree = "<group>"; };
6478
55CFADD5235F44380067DBB7 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
6579
55CFADD7235F860E0067DBB7 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
@@ -87,6 +101,13 @@
87101
);
88102
runOnlyForDeploymentPostprocessing = 0;
89103
};
104+
5535C7942382FF7B00E65B03 /* Frameworks */ = {
105+
isa = PBXFrameworksBuildPhase;
106+
buildActionMask = 2147483647;
107+
files = (
108+
);
109+
runOnlyForDeploymentPostprocessing = 0;
110+
};
90111
/* End PBXFrameworksBuildPhase section */
91112

92113
/* Begin PBXGroup section */
@@ -128,6 +149,7 @@
128149
5519C158234E33420022E332 /* TallestTowers */,
129150
5519C16F234E33440022E332 /* TallestTowersTests */,
130151
5519C17A234E33440022E332 /* TallestTowersUITests */,
152+
5535C7982382FF7B00E65B03 /* TallestTowersScreenshots */,
131153
5519C157234E33420022E332 /* Products */,
132154
);
133155
sourceTree = "<group>";
@@ -138,6 +160,7 @@
138160
5519C156234E33420022E332 /* TallestTowers.app */,
139161
5519C16C234E33440022E332 /* TallestTowersTests.xctest */,
140162
5519C177234E33440022E332 /* TallestTowersUITests.xctest */,
163+
5535C7972382FF7B00E65B03 /* TallestTowersScreenshots.xctest */,
141164
);
142165
name = Products;
143166
sourceTree = "<group>";
@@ -178,11 +201,22 @@
178201
children = (
179202
552B707E236B5D9300ACC210 /* Appfile */,
180203
552B707F236B5D9300ACC210 /* Fastfile */,
204+
5535C7A32383038C00E65B03 /* Snapfile */,
181205
552B707D236B5D9300ACC210 /* Pluginfile */,
182206
);
183207
path = fastlane;
184208
sourceTree = "<group>";
185209
};
210+
5535C7982382FF7B00E65B03 /* TallestTowersScreenshots */ = {
211+
isa = PBXGroup;
212+
children = (
213+
5535C7A12382FFD400E65B03 /* SnapshotHelper.swift */,
214+
5535C7992382FF7B00E65B03 /* TallestTowersScreenshots.swift */,
215+
5535C79B2382FF7B00E65B03 /* Info.plist */,
216+
);
217+
path = TallestTowersScreenshots;
218+
sourceTree = "<group>";
219+
};
186220
55AE65662360A0D60064B1AB /* .semaphore */ = {
187221
isa = PBXGroup;
188222
children = (
@@ -247,13 +281,31 @@
247281
productReference = 5519C177234E33440022E332 /* TallestTowersUITests.xctest */;
248282
productType = "com.apple.product-type.bundle.ui-testing";
249283
};
284+
5535C7962382FF7B00E65B03 /* TallestTowersScreenshots */ = {
285+
isa = PBXNativeTarget;
286+
buildConfigurationList = 5535C7A02382FF7B00E65B03 /* Build configuration list for PBXNativeTarget "TallestTowersScreenshots" */;
287+
buildPhases = (
288+
5535C7932382FF7B00E65B03 /* Sources */,
289+
5535C7942382FF7B00E65B03 /* Frameworks */,
290+
5535C7952382FF7B00E65B03 /* Resources */,
291+
);
292+
buildRules = (
293+
);
294+
dependencies = (
295+
5535C79D2382FF7B00E65B03 /* PBXTargetDependency */,
296+
);
297+
name = TallestTowersScreenshots;
298+
productName = TallestTowersScreenshots;
299+
productReference = 5535C7972382FF7B00E65B03 /* TallestTowersScreenshots.xctest */;
300+
productType = "com.apple.product-type.bundle.ui-testing";
301+
};
250302
/* End PBXNativeTarget section */
251303

252304
/* Begin PBXProject section */
253305
5519C14E234E33420022E332 /* Project object */ = {
254306
isa = PBXProject;
255307
attributes = {
256-
LastSwiftUpdateCheck = 1110;
308+
LastSwiftUpdateCheck = 1120;
257309
LastUpgradeCheck = 1110;
258310
ORGANIZATIONNAME = "Semaphore CI";
259311
TargetAttributes = {
@@ -268,6 +320,10 @@
268320
CreatedOnToolsVersion = 11.1;
269321
TestTargetID = 5519C155234E33420022E332;
270322
};
323+
5535C7962382FF7B00E65B03 = {
324+
CreatedOnToolsVersion = 11.2.1;
325+
TestTargetID = 5519C155234E33420022E332;
326+
};
271327
};
272328
};
273329
buildConfigurationList = 5519C151234E33420022E332 /* Build configuration list for PBXProject "TallestTowers" */;
@@ -286,6 +342,7 @@
286342
5519C155234E33420022E332 /* TallestTowers */,
287343
5519C16B234E33440022E332 /* TallestTowersTests */,
288344
5519C176234E33440022E332 /* TallestTowersUITests */,
345+
5535C7962382FF7B00E65B03 /* TallestTowersScreenshots */,
289346
);
290347
};
291348
/* End PBXProject section */
@@ -316,6 +373,13 @@
316373
);
317374
runOnlyForDeploymentPostprocessing = 0;
318375
};
376+
5535C7952382FF7B00E65B03 /* Resources */ = {
377+
isa = PBXResourcesBuildPhase;
378+
buildActionMask = 2147483647;
379+
files = (
380+
);
381+
runOnlyForDeploymentPostprocessing = 0;
382+
};
319383
/* End PBXResourcesBuildPhase section */
320384

321385
/* Begin PBXSourcesBuildPhase section */
@@ -349,6 +413,15 @@
349413
);
350414
runOnlyForDeploymentPostprocessing = 0;
351415
};
416+
5535C7932382FF7B00E65B03 /* Sources */ = {
417+
isa = PBXSourcesBuildPhase;
418+
buildActionMask = 2147483647;
419+
files = (
420+
5535C79A2382FF7B00E65B03 /* TallestTowersScreenshots.swift in Sources */,
421+
5535C7A22382FFD400E65B03 /* SnapshotHelper.swift in Sources */,
422+
);
423+
runOnlyForDeploymentPostprocessing = 0;
424+
};
352425
/* End PBXSourcesBuildPhase section */
353426

354427
/* Begin PBXTargetDependency section */
@@ -362,6 +435,11 @@
362435
target = 5519C155234E33420022E332 /* TallestTowers */;
363436
targetProxy = 5519C178234E33440022E332 /* PBXContainerItemProxy */;
364437
};
438+
5535C79D2382FF7B00E65B03 /* PBXTargetDependency */ = {
439+
isa = PBXTargetDependency;
440+
target = 5519C155234E33420022E332 /* TallestTowers */;
441+
targetProxy = 5535C79C2382FF7B00E65B03 /* PBXContainerItemProxy */;
442+
};
365443
/* End PBXTargetDependency section */
366444

367445
/* Begin PBXVariantGroup section */
@@ -608,6 +686,44 @@
608686
};
609687
name = Release;
610688
};
689+
5535C79E2382FF7B00E65B03 /* Debug */ = {
690+
isa = XCBuildConfiguration;
691+
buildSettings = {
692+
CODE_SIGN_STYLE = Automatic;
693+
INFOPLIST_FILE = TallestTowersScreenshots/Info.plist;
694+
IPHONEOS_DEPLOYMENT_TARGET = 13.2;
695+
LD_RUNPATH_SEARCH_PATHS = (
696+
"$(inherited)",
697+
"@executable_path/Frameworks",
698+
"@loader_path/Frameworks",
699+
);
700+
PRODUCT_BUNDLE_IDENTIFIER = com.semaphoreci.TallestTowersScreenshots;
701+
PRODUCT_NAME = "$(TARGET_NAME)";
702+
SWIFT_VERSION = 5.0;
703+
TARGETED_DEVICE_FAMILY = "1,2";
704+
TEST_TARGET_NAME = TallestTowers;
705+
};
706+
name = Debug;
707+
};
708+
5535C79F2382FF7B00E65B03 /* Release */ = {
709+
isa = XCBuildConfiguration;
710+
buildSettings = {
711+
CODE_SIGN_STYLE = Automatic;
712+
INFOPLIST_FILE = TallestTowersScreenshots/Info.plist;
713+
IPHONEOS_DEPLOYMENT_TARGET = 13.2;
714+
LD_RUNPATH_SEARCH_PATHS = (
715+
"$(inherited)",
716+
"@executable_path/Frameworks",
717+
"@loader_path/Frameworks",
718+
);
719+
PRODUCT_BUNDLE_IDENTIFIER = com.semaphoreci.TallestTowersScreenshots;
720+
PRODUCT_NAME = "$(TARGET_NAME)";
721+
SWIFT_VERSION = 5.0;
722+
TARGETED_DEVICE_FAMILY = "1,2";
723+
TEST_TARGET_NAME = TallestTowers;
724+
};
725+
name = Release;
726+
};
611727
/* End XCBuildConfiguration section */
612728

613729
/* Begin XCConfigurationList section */
@@ -647,6 +763,15 @@
647763
defaultConfigurationIsVisible = 0;
648764
defaultConfigurationName = Release;
649765
};
766+
5535C7A02382FF7B00E65B03 /* Build configuration list for PBXNativeTarget "TallestTowersScreenshots" */ = {
767+
isa = XCConfigurationList;
768+
buildConfigurations = (
769+
5535C79E2382FF7B00E65B03 /* Debug */,
770+
5535C79F2382FF7B00E65B03 /* Release */,
771+
);
772+
defaultConfigurationIsVisible = 0;
773+
defaultConfigurationName = Release;
774+
};
650775
/* End XCConfigurationList section */
651776
};
652777
rootObject = 5519C14E234E33420022E332 /* Project object */;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1120"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "NO"
13+
buildForArchiving = "NO"
14+
buildForAnalyzing = "NO">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "5535C7962382FF7B00E65B03"
18+
BuildableName = "TallestTowersScreenshots.xctest"
19+
BlueprintName = "TallestTowersScreenshots"
20+
ReferencedContainer = "container:TallestTowers.xcodeproj">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
24+
</BuildAction>
25+
<TestAction
26+
buildConfiguration = "Debug"
27+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
shouldUseLaunchSchemeArgsEnv = "YES">
30+
<Testables>
31+
<TestableReference
32+
skipped = "NO">
33+
<BuildableReference
34+
BuildableIdentifier = "primary"
35+
BlueprintIdentifier = "5535C7962382FF7B00E65B03"
36+
BuildableName = "TallestTowersScreenshots.xctest"
37+
BlueprintName = "TallestTowersScreenshots"
38+
ReferencedContainer = "container:TallestTowers.xcodeproj">
39+
</BuildableReference>
40+
</TestableReference>
41+
</Testables>
42+
</TestAction>
43+
<LaunchAction
44+
buildConfiguration = "Debug"
45+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
46+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
47+
launchStyle = "0"
48+
useCustomWorkingDirectory = "NO"
49+
ignoresPersistentStateOnLaunch = "NO"
50+
debugDocumentVersioning = "YES"
51+
debugServiceExtension = "internal"
52+
allowLocationSimulation = "YES">
53+
</LaunchAction>
54+
<ProfileAction
55+
buildConfiguration = "Release"
56+
shouldUseLaunchSchemeArgsEnv = "YES"
57+
savedToolIdentifier = ""
58+
useCustomWorkingDirectory = "NO"
59+
debugDocumentVersioning = "YES">
60+
<MacroExpansion>
61+
<BuildableReference
62+
BuildableIdentifier = "primary"
63+
BlueprintIdentifier = "5535C7962382FF7B00E65B03"
64+
BuildableName = "TallestTowersScreenshots.xctest"
65+
BlueprintName = "TallestTowersScreenshots"
66+
ReferencedContainer = "container:TallestTowers.xcodeproj">
67+
</BuildableReference>
68+
</MacroExpansion>
69+
</ProfileAction>
70+
<AnalyzeAction
71+
buildConfiguration = "Debug">
72+
</AnalyzeAction>
73+
<ArchiveAction
74+
buildConfiguration = "Release"
75+
revealArchiveInOrganizer = "YES">
76+
</ArchiveAction>
77+
</Scheme>

TallestTowersScreenshots/Info.plist

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>CFBundleDevelopmentRegion</key>
6+
<string>$(DEVELOPMENT_LANGUAGE)</string>
7+
<key>CFBundleExecutable</key>
8+
<string>$(EXECUTABLE_NAME)</string>
9+
<key>CFBundleIdentifier</key>
10+
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11+
<key>CFBundleInfoDictionaryVersion</key>
12+
<string>6.0</string>
13+
<key>CFBundleName</key>
14+
<string>$(PRODUCT_NAME)</string>
15+
<key>CFBundlePackageType</key>
16+
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
17+
<key>CFBundleShortVersionString</key>
18+
<string>1.0</string>
19+
<key>CFBundleVersion</key>
20+
<string>1</string>
21+
</dict>
22+
</plist>

0 commit comments

Comments
 (0)