Skip to content

Commit b2a01a9

Browse files
committed
Add support for accessibilityIdentifiers in userDefinedRuntimeAttributes
1 parent 4ad6079 commit b2a01a9

File tree

5 files changed

+55
-3
lines changed

5 files changed

+55
-3
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
xcuserdata
33
*.xccheckout
44
ResourceApp/rswift
5-
R.generated.swift
5+
*.generated.swift
66
ResourceApp/rswift.log
77
ResourceApp/rswift-tv.log
88
ResourceApp/rswift-watchos.log
@@ -15,4 +15,4 @@ rswift.xcarchive
1515
rswift.xcodeproj
1616
.build
1717
build
18-
DerivedData
18+
DerivedData

ResourceApp/ResourceApp.xcodeproj/project.pbxproj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
D5E513BE1B8E111A0035ECAA /* GdyBkltter1911.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D5E513B91B8E111A0035ECAA /* GdyBkltter1911.ttf */; };
7474
D5E513C01B8E11810035ECAA /* FontsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E513BF1B8E11810035ECAA /* FontsTests.swift */; };
7575
D5EB32701B63AD6B005C7B47 /* ValidationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5EB326E1B63AD6B005C7B47 /* ValidationTests.swift */; };
76+
D5EE1B5622DEEF3E00A901EC /* TabBarItem.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5EE1B5522DEEF3E00A901EC /* TabBarItem.storyboard */; };
7677
D5F05D3F1BB3CDF3003AE55E /* The App Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D3E1BB3CDF3003AE55E /* The App Icon.png */; };
7778
D5F05D421BB52002003AE55E /* Some.json in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D411BB52002003AE55E /* Some.json */; };
7879
D5F05D441BB52063003AE55E /* Duplicate.json in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D431BB52063003AE55E /* Duplicate.json */; };
@@ -244,6 +245,8 @@
244245
D5E513BF1B8E11810035ECAA /* FontsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontsTests.swift; sourceTree = "<group>"; };
245246
D5EB326D1B63AD6B005C7B47 /* ImagesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ImagesTests.swift; path = ../ResourceAppTests/ImagesTests.swift; sourceTree = "<group>"; };
246247
D5EB326E1B63AD6B005C7B47 /* ValidationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationTests.swift; sourceTree = "<group>"; };
248+
D5EE1B5522DEEF3E00A901EC /* TabBarItem.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TabBarItem.storyboard; sourceTree = "<group>"; };
249+
D5EE1B5722DEEFBF00A901EC /* R.UITest.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = R.UITest.generated.swift; sourceTree = "<group>"; };
247250
D5F05D3E1BB3CDF3003AE55E /* The App Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "The App Icon.png"; sourceTree = "<group>"; };
248251
D5F05D411BB52002003AE55E /* Some.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Some.json; sourceTree = "<group>"; };
249252
D5F05D431BB52063003AE55E /* Duplicate.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Duplicate.json; sourceTree = "<group>"; };
@@ -429,6 +432,7 @@
429432
isa = PBXGroup;
430433
children = (
431434
D5DE480D1B5E1CC7000F6A85 /* R.generated.swift */,
435+
D5EE1B5722DEEFBF00A901EC /* R.UITest.generated.swift */,
432436
D55C6CBA1B5D757300301B0D /* ResourceApp */,
433437
D55C6CD21B5D757300301B0D /* ResourceAppTests */,
434438
DEF559981CA4873D009B8C51 /* ResourceApp-tvOS */,
@@ -485,6 +489,7 @@
485489
C378DD791C68C2BF003598B8 /* SupplementaryElement.xib */,
486490
E22070761C92E137007A090B /* WhitespaceReuseIdentifer.xib */,
487491
E20983251D585F8C005ACBAA /* Xib with ViewController.xib */,
492+
D5EE1B5522DEEF3E00A901EC /* TabBarItem.storyboard */,
488493
D5F05D401BB51FEA003AE55E /* Files */,
489494
D5E513B41B8E10F90035ECAA /* Fonts */,
490495
D51E60BF1BB13612004BB376 /* Images */,
@@ -828,6 +833,7 @@
828833
D5AD5C941B78FC4E00A8B96C /* Duplicate.xib in Resources */,
829834
E2CD68671D7CADEA00BEBE59 /* hello.txt in Resources */,
830835
D55C6CC51B5D757300301B0D /* Main.storyboard in Resources */,
836+
D5EE1B5622DEEF3E00A901EC /* TabBarItem.storyboard in Resources */,
831837
E29693581CAD64B500401D53 /* __FILE__ in Resources */,
832838
A3D0897420CF6FDA007ED462 /* Keep.dont.ignoreme.png in Resources */,
833839
A3D0897620CF6FE4007ED462 /* ExplicitInclude.ignoreme.png in Resources */,
@@ -1065,10 +1071,11 @@
10651071
name = R.swift;
10661072
outputPaths = (
10671073
"$(SRCROOT)/R.generated.swift",
1074+
"$(SRCROOT)/R.UITest.generated.swift",
10681075
);
10691076
runOnlyForDeploymentPostprocessing = 0;
10701077
shellPath = /bin/sh;
1071-
shellScript = "\"$SRCROOT/../build/Debug/rswift\" generate \"--import\" \"SWRevealViewController\" \"$SRCROOT/R.generated.swift\" > \"$SRCROOT/rswift.log\"\n";
1078+
shellScript = "\"$SRCROOT/../build/Debug/rswift\" generate --generateUITestFile \"$SRCROOT/R.UITest.generated.swift\" --import SWRevealViewController \"$SRCROOT/R.generated.swift\" > \"$SRCROOT/rswift.log\"\n";
10721079
};
10731080
DEF559A61CA487D6009B8C51 /* R.swift */ = {
10741081
isa = PBXShellScriptBuildPhase;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
3+
<device id="retina6_1" orientation="portrait">
4+
<adaptation id="fullscreen"/>
5+
</device>
6+
<dependencies>
7+
<deployment identifier="iOS"/>
8+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
9+
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
10+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11+
</dependencies>
12+
<scenes>
13+
<!--Item-->
14+
<scene sceneID="kV3-3f-uTy">
15+
<objects>
16+
<viewController id="n5a-DO-Hpk" sceneMemberID="viewController">
17+
<view key="view" contentMode="scaleToFill" id="BeB-20-Kyk">
18+
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
19+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
20+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
21+
<viewLayoutGuide key="safeArea" id="djj-2M-vFE"/>
22+
</view>
23+
<tabBarItem key="tabBarItem" title="Item" id="S7E-R5-eaQ">
24+
<userDefinedRuntimeAttributes>
25+
<userDefinedRuntimeAttribute type="string" keyPath="accessibilityIdentifier" value="tabBarItem"/>
26+
</userDefinedRuntimeAttributes>
27+
</tabBarItem>
28+
<simulatedTabBarMetrics key="simulatedBottomBarMetrics"/>
29+
</viewController>
30+
<placeholder placeholderIdentifier="IBFirstResponder" id="iNP-U2-061" userLabel="First Responder" sceneMemberID="firstResponder"/>
31+
</objects>
32+
<point key="canvasLocation" x="330" y="-313"/>
33+
</scene>
34+
</scenes>
35+
</document>

Sources/RswiftCore/ResourceTypes/Nib.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ internal class NibParserDelegate: NSObject, XMLParserDelegate {
9090
usedAccessibilityIdentifiers.append(accessibilityIdentifier)
9191
}
9292

93+
case "userDefinedRuntimeAttribute":
94+
if let accessibilityIdentifier = attributeDict["value"], "accessibilityIdentifier" == attributeDict["keyPath"] && "string" == attributeDict["type"] {
95+
usedAccessibilityIdentifiers.append(accessibilityIdentifier)
96+
}
97+
9398
default:
9499
if let rootView = viewWithAttributes(attributeDict, elementName: elementName),
95100
levelSinceObjectsTagOpened == 1 && ignoredRootViewElements.allSatisfy({ $0 != elementName }) {

Sources/RswiftCore/ResourceTypes/Storyboard.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,11 @@ private class StoryboardParserDelegate: NSObject, XMLParserDelegate {
180180
usedAccessibilityIdentifiers.append(accessibilityIdentifier)
181181
}
182182

183+
case "userDefinedRuntimeAttribute":
184+
if let accessibilityIdentifier = attributeDict["value"], "accessibilityIdentifier" == attributeDict["keyPath"] && "string" == attributeDict["type"] {
185+
usedAccessibilityIdentifiers.append(accessibilityIdentifier)
186+
}
187+
183188
case "viewControllerPlaceholder":
184189
if let id = attributeDict["id"] , attributeDict["sceneMemberID"] == "viewController" {
185190
let placeholder = Storyboard.ViewControllerPlaceholder(

0 commit comments

Comments
 (0)