Skip to content

Commit 0955cfc

Browse files
authored
All-new implementation, API, and module (#207)
1 parent 5b3f399 commit 0955cfc

File tree

117 files changed

+6360
-271
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+6360
-271
lines changed

.github/workflows/cd.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,23 @@ on:
88
jobs:
99
deploy:
1010
runs-on: macos-latest
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
podspec:
15+
- Introspect.podspec
16+
- SwiftUIIntrospect.podspec
1117
steps:
1218
- name: Git Checkout
1319
uses: actions/checkout@v3
1420
with:
1521
fetch-depth: 0 # required to be able to find Git tags
1622

17-
- name: Deploy to CocoaPods Trunk
23+
- name: Deploy to CocoaPods Trunk (${{ matrix.podspec }})
1824
run: |
1925
set -eo pipefail
2026
export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`)
21-
pod lib lint --allow-warnings
22-
pod trunk push --allow-warnings
27+
pod lib lint ${{ matrix.podspec }} --allow-warnings
28+
pod trunk push ${{ matrix.podspec }} --allow-warnings
2329
env:
2430
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}

.github/workflows/ci.yml

Lines changed: 67 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -13,93 +13,119 @@ concurrency:
1313
cancel-in-progress: true
1414

1515
jobs:
16-
lint-podspec:
17-
name: lint podspec
16+
lint-podspecs:
17+
name: lint podspecs
1818
runs-on: macos-latest
1919
steps:
2020
- name: Git Checkout
2121
uses: actions/checkout@v3
2222
with:
2323
fetch-depth: 0 # required to be able to find Git tags
2424

25-
- name: Lint Podspec
25+
- name: Lint Introspect.podspec
2626
run: |
2727
set -eo pipefail
2828
export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`)
29-
pod lib lint --allow-warnings
29+
pod lib lint Introspect.podspec --allow-warnings
30+
31+
- name: Lint SwiftUIIntrospect.podspec
32+
run: |
33+
set -eo pipefail
34+
export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`)
35+
pod lib lint SwiftUIIntrospect.podspec --allow-warnings
3036
3137
ci:
3238
name: ${{ matrix.platform[0] }} ${{ matrix.platform[1] }}
33-
runs-on: ${{ matrix.os }}
39+
runs-on: ${{ matrix.os || 'macos-13' }}
3440
strategy:
3541
fail-fast: false
3642
matrix:
3743
platform:
44+
- [ios, 13]
3845
- [ios, 14]
3946
- [ios, 15]
4047
- [ios, 16]
4148

49+
- [tvos, 13]
4250
- [tvos, 14]
4351
- [tvos, 15]
4452
- [tvos, 16]
4553

4654
- [macos, 11]
4755
- [macos, 12]
56+
- [macos, 13]
4857
include:
58+
- platform: [ios, 13]
59+
runtime: iOS 13.7
60+
install: true
4961
- platform: [ios, 14]
50-
os: macos-11
51-
xcode_version: 13.2.1
52-
sdk: [12.5.1, iPhoneOS, iOS, 14.5]
53-
- platform: [tvos, 14]
54-
os: macos-11
55-
xcode_version: 13.2.1
56-
sdk: [12.5.1, AppleTVOS, tvOS, 14.5]
57-
62+
runtime: iOS 14.5
63+
install: true
5864
- platform: [ios, 15]
59-
os: macos-12
60-
xcode_version: 14.2
61-
sdk: [13.4.1, iPhoneOS, iOS, 15.5]
62-
- platform: [tvos, 15]
63-
os: macos-12
64-
xcode_version: 14.2
65-
sdk: [13.4.1, AppleTVOS, tvOS, 15.5]
66-
65+
runtime: iOS 15.5
66+
install: true
6767
- platform: [ios, 16]
68-
os: macos-12
69-
xcode_version: 14.2
68+
runtime: iOS 16.4
69+
install: false
70+
71+
- platform: [tvos, 13]
72+
runtime: tvOS 13.4
73+
install: true
74+
- platform: [tvos, 14]
75+
runtime: tvOS 14.5
76+
install: true
77+
- platform: [tvos, 15]
78+
runtime: tvOS 15.4
79+
install: true
7080
- platform: [tvos, 16]
71-
os: macos-12
72-
xcode_version: 14.2
81+
runtime: tvOS 16.4
82+
install: false
7383

7484
- platform: [macos, 11]
7585
os: macos-11
76-
xcode_version: 13.2.1
86+
xcode: 13.2.1
87+
install: false
7788
- platform: [macos, 12]
7889
os: macos-12
79-
xcode_version: 14.2
90+
xcode: 14.2
91+
install: false
92+
- platform: [macos, 13]
93+
os: macos-13
94+
xcode: 14.3
95+
install: false
8096
steps:
8197
- name: Git Checkout
8298
uses: actions/checkout@v3
8399

84100
- name: Select Xcode version
85101
uses: maxim-lobanov/setup-xcode@v1
86102
with:
87-
xcode-version: ${{ matrix.xcode_version }}
103+
xcode-version: ${{ matrix.xcode || '14.3' }}
88104

89-
- if: ${{ matrix.sdk }}
90-
name: Symlink SDK
105+
- name: Install xcbeautify
106+
run: brew install xcbeautify
107+
108+
- if: ${{ matrix.install }}
109+
name: Install Required Runtime
91110
run: |
92-
echo "Creating Runtimes folder if needed..."
93-
sudo mkdir -p /Library/Developer/CoreSimulator/Profiles/Runtimes
111+
brew install xcodesorg/made/xcodes
112+
sudo xcodes runtimes install '${{ matrix.runtime }}'
94113
95-
echo "Creating symlink of the ${{ matrix.sdk[2] }} ${{ matrix.sdk[3] }} runtime..."
96-
sudo ln -s /Applications/Xcode_${{ matrix.sdk[0] }}.app/Contents/Developer/Platforms/${{ matrix.sdk[1] }}.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/${{ matrix.sdk[2] }}.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/${{ matrix.sdk[2] }}\ ${{ matrix.sdk[3] }}.simruntime
114+
- name: List Available Simulators
115+
run: xcrun simctl list devices available
97116

98-
- name: Install Homebrew dependencies
99-
run: brew install xcbeautify
117+
- if: ${{ join(matrix.platform, ' ') != 'macos 11' }}
118+
name: Build Showcase
119+
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:Showcase
120+
121+
- if: ${{ join(matrix.platform, ' ') != 'ios 13' && join(matrix.platform, ' ') != 'tvos 13' }}
122+
name: Run Tests (Introspect)
123+
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:Introspect
124+
125+
- if: ${{ join(matrix.platform, ' ') != 'macos 11' }}
126+
name: Run Tests (SwiftUIIntrospect, Debug)
127+
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectTests configuration:Debug
100128

101-
- name: Run Tests
102-
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }}
103-
env:
104-
SKIP_SLOW_FASTLANE_WARNINGS: 1
105-
FASTLANE_SKIP_UPDATE_CHECK: 1
129+
- if: ${{ join(matrix.platform, ' ') != 'macos 11' }}
130+
name: Run Tests (SwiftUIIntrospect, Release)
131+
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectTests configuration:Release

Examples/Showcase/Showcase.xcodeproj/project.pbxproj

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,20 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 56;
6+
objectVersion = 55;
77
objects = {
88

99
/* Begin PBXBuildFile section */
1010
D53071F729983CEF00F1936C /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = D53071F629983CEF00F1936C /* App.swift */; };
1111
D53071F929983CEF00F1936C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D53071F829983CEF00F1936C /* ContentView.swift */; };
12-
D53071FB29983CF000F1936C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D53071FA29983CF000F1936C /* Assets.xcassets */; };
13-
D53071FE29983CF000F1936C /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D53071FD29983CF000F1936C /* Preview Assets.xcassets */; };
14-
D530720729983DCA00F1936C /* Introspect in Frameworks */ = {isa = PBXBuildFile; productRef = D530720629983DCA00F1936C /* Introspect */; };
1512
D5B829752999738200920EBD /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5B829742999738200920EBD /* Helpers.swift */; };
13+
D5E3180329C132B6005847DC /* SwiftUIIntrospect in Frameworks */ = {isa = PBXBuildFile; productRef = D5E3180229C132B6005847DC /* SwiftUIIntrospect */; };
1614
/* End PBXBuildFile section */
1715

1816
/* Begin PBXFileReference section */
1917
D53071F329983CEF00F1936C /* Showcase.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Showcase.app; sourceTree = BUILT_PRODUCTS_DIR; };
2018
D53071F629983CEF00F1936C /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = "<group>"; };
2119
D53071F829983CEF00F1936C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
22-
D53071FA29983CF000F1936C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
23-
D53071FD29983CF000F1936C /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
2420
D530720429983D9300F1936C /* Showcase.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Showcase.entitlements; sourceTree = "<group>"; };
2521
D5B829742999738200920EBD /* Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helpers.swift; sourceTree = "<group>"; };
2622
/* End PBXFileReference section */
@@ -30,7 +26,7 @@
3026
isa = PBXFrameworksBuildPhase;
3127
buildActionMask = 2147483647;
3228
files = (
33-
D530720729983DCA00F1936C /* Introspect in Frameworks */,
29+
D5E3180329C132B6005847DC /* SwiftUIIntrospect in Frameworks */,
3430
);
3531
runOnlyForDeploymentPostprocessing = 0;
3632
};
@@ -61,20 +57,10 @@
6157
D53071F629983CEF00F1936C /* App.swift */,
6258
D53071F829983CEF00F1936C /* ContentView.swift */,
6359
D5B829742999738200920EBD /* Helpers.swift */,
64-
D53071FA29983CF000F1936C /* Assets.xcassets */,
65-
D53071FC29983CF000F1936C /* Preview Content */,
6660
);
6761
path = Showcase;
6862
sourceTree = "<group>";
6963
};
70-
D53071FC29983CF000F1936C /* Preview Content */ = {
71-
isa = PBXGroup;
72-
children = (
73-
D53071FD29983CF000F1936C /* Preview Assets.xcassets */,
74-
);
75-
path = "Preview Content";
76-
sourceTree = "<group>";
77-
};
7864
D530720529983DCA00F1936C /* Frameworks */ = {
7965
isa = PBXGroup;
8066
children = (
@@ -99,7 +85,7 @@
9985
);
10086
name = Showcase;
10187
packageProductDependencies = (
102-
D530720629983DCA00F1936C /* Introspect */,
88+
D5E3180229C132B6005847DC /* SwiftUIIntrospect */,
10389
);
10490
productName = Showcase;
10591
productReference = D53071F329983CEF00F1936C /* Showcase.app */;
@@ -121,7 +107,7 @@
121107
};
122108
};
123109
buildConfigurationList = D53071EE29983CEF00F1936C /* Build configuration list for PBXProject "Showcase" */;
124-
compatibilityVersion = "Xcode 14.0";
110+
compatibilityVersion = "Xcode 13.0";
125111
developmentRegion = en;
126112
hasScannedForEncodings = 0;
127113
knownRegions = (
@@ -143,8 +129,6 @@
143129
isa = PBXResourcesBuildPhase;
144130
buildActionMask = 2147483647;
145131
files = (
146-
D53071FE29983CF000F1936C /* Preview Assets.xcassets in Resources */,
147-
D53071FB29983CF000F1936C /* Assets.xcassets in Resources */,
148132
);
149133
runOnlyForDeploymentPostprocessing = 0;
150134
};
@@ -167,6 +151,7 @@
167151
D53071FF29983CF000F1936C /* Debug */ = {
168152
isa = XCBuildConfiguration;
169153
buildSettings = {
154+
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
170155
ALWAYS_SEARCH_USER_PATHS = NO;
171156
CLANG_ANALYZER_NONNULL = YES;
172157
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -214,20 +199,24 @@
214199
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
215200
GCC_WARN_UNUSED_FUNCTION = YES;
216201
GCC_WARN_UNUSED_VARIABLE = YES;
217-
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
202+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
203+
MACOSX_DEPLOYMENT_TARGET = 11.0;
218204
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
219205
MTL_FAST_MATH = YES;
220206
ONLY_ACTIVE_ARCH = YES;
221207
SDKROOT = iphoneos;
208+
SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos appletvsimulator appletvos";
209+
SUPPORTS_MACCATALYST = YES;
222210
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
223211
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
224-
TVOS_DEPLOYMENT_TARGET = 14.0;
212+
TVOS_DEPLOYMENT_TARGET = 13.0;
225213
};
226214
name = Debug;
227215
};
228216
D530720029983CF000F1936C /* Release */ = {
229217
isa = XCBuildConfiguration;
230218
buildSettings = {
219+
ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES;
231220
ALWAYS_SEARCH_USER_PATHS = NO;
232221
CLANG_ANALYZER_NONNULL = YES;
233222
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -269,32 +258,33 @@
269258
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
270259
GCC_WARN_UNUSED_FUNCTION = YES;
271260
GCC_WARN_UNUSED_VARIABLE = YES;
272-
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
261+
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
262+
MACOSX_DEPLOYMENT_TARGET = 11.0;
273263
MTL_ENABLE_DEBUG_INFO = NO;
274264
MTL_FAST_MATH = YES;
275265
SDKROOT = iphoneos;
266+
SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos appletvsimulator appletvos";
267+
SUPPORTS_MACCATALYST = YES;
276268
SWIFT_COMPILATION_MODE = wholemodule;
277269
SWIFT_OPTIMIZATION_LEVEL = "-O";
278-
TVOS_DEPLOYMENT_TARGET = 14.0;
270+
TVOS_DEPLOYMENT_TARGET = 13.0;
279271
VALIDATE_PRODUCT = YES;
280272
};
281273
name = Release;
282274
};
283275
D530720229983CF000F1936C /* Debug */ = {
284276
isa = XCBuildConfiguration;
285277
buildSettings = {
286-
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
287278
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
288279
CODE_SIGN_ENTITLEMENTS = Showcase/Showcase.entitlements;
289280
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
290281
CODE_SIGN_STYLE = Automatic;
291282
CURRENT_PROJECT_VERSION = 1;
292-
DEVELOPMENT_ASSET_PATHS = "\"Showcase/Preview Content\"";
293283
ENABLE_PREVIEWS = YES;
294284
GENERATE_INFOPLIST_FILE = YES;
295-
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
296285
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
297286
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
287+
INFOPLIST_KEY_UILaunchStoryboardName = "";
298288
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
299289
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
300290
LD_RUNPATH_SEARCH_PATHS = (
@@ -304,7 +294,6 @@
304294
MARKETING_VERSION = 1.0;
305295
PRODUCT_BUNDLE_IDENTIFIER = com.siteline.Showcase;
306296
PRODUCT_NAME = "$(TARGET_NAME)";
307-
SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator";
308297
SUPPORTS_MACCATALYST = YES;
309298
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
310299
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -316,18 +305,16 @@
316305
D530720329983CF000F1936C /* Release */ = {
317306
isa = XCBuildConfiguration;
318307
buildSettings = {
319-
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
320308
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
321309
CODE_SIGN_ENTITLEMENTS = Showcase/Showcase.entitlements;
322310
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
323311
CODE_SIGN_STYLE = Automatic;
324312
CURRENT_PROJECT_VERSION = 1;
325-
DEVELOPMENT_ASSET_PATHS = "\"Showcase/Preview Content\"";
326313
ENABLE_PREVIEWS = YES;
327314
GENERATE_INFOPLIST_FILE = YES;
328-
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
329315
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
330316
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
317+
INFOPLIST_KEY_UILaunchStoryboardName = "";
331318
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
332319
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
333320
LD_RUNPATH_SEARCH_PATHS = (
@@ -337,7 +324,6 @@
337324
MARKETING_VERSION = 1.0;
338325
PRODUCT_BUNDLE_IDENTIFIER = com.siteline.Showcase;
339326
PRODUCT_NAME = "$(TARGET_NAME)";
340-
SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator";
341327
SUPPORTS_MACCATALYST = YES;
342328
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
343329
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -370,9 +356,9 @@
370356
/* End XCConfigurationList section */
371357

372358
/* Begin XCSwiftPackageProductDependency section */
373-
D530720629983DCA00F1936C /* Introspect */ = {
359+
D5E3180229C132B6005847DC /* SwiftUIIntrospect */ = {
374360
isa = XCSwiftPackageProductDependency;
375-
productName = Introspect;
361+
productName = SwiftUIIntrospect;
376362
};
377363
/* End XCSwiftPackageProductDependency section */
378364
};

0 commit comments

Comments
 (0)