You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove deprecated AssetsLibrary and non-functional Video/MapKit/Photos SPM traits
- Remove AssetsLibrary (deprecated iOS 9.0)
- Remove Video/MapKit/Photos traits that don't work with Swift via SPM
- Update documentation explaining SPM limitations with conditional compilation
- Recommend CocoaPods/Carthage for users needing these features
Technical details:
Objective-C classes wrapped in preprocessor conditionals (#if AS_USE_VIDEO)
are not exported in Swift module interface, making these traits non-functional
for Swift users even when enabled.
Tests: spm-texture-basic and spm-texture-iglistkit pass
- TextNode2 (modern text rendering, replaces legacy TextNode)
50
49
51
-
**No trait configuration needed** - all these features work out of the box!
50
+
**Optional Features (enable via traits):**
51
+
- IGListKit integration (advanced collection views with modern Swift API)
52
+
53
+
**⚠️ SPM Limitations:**
54
+
Video (ASVideoNode), MapKit (ASMapNode), and Photos features are **not available** via Swift Package Manager due to technical limitations. These Objective-C classes are wrapped in conditional compilation directives (`#if AS_USE_VIDEO`) which prevents them from being exported in the Swift module interface.
55
+
56
+
**If you need Video/MapKit/Photos features:**
57
+
- Use **CocoaPods** or **Carthage** (full feature support)
58
+
- Or use these features from **Objective-C code** (.m files)
59
+
60
+
**Future directions:** We're exploring solutions like Swift wrapper modules (TextureVideoExtensions, TextureMapKitExtensions) to provide Swift API for these features via SPM.
52
61
53
62
#### Advanced Usage: IGListKit Integration
54
63
@@ -95,16 +104,18 @@ If you're migrating from CocoaPods, here's how the subspecs map to SPM features:
95
104
|---------|-----------|-----|-------|
96
105
|**Core**|`pod 'Texture'` (default) |`.product(name: "AsyncDisplayKit", ...)`| ✅ Always included |
97
106
|**PINRemoteImage**| Included by default | Always included | ✅ Same behavior |
98
-
|**Video**| Included by default |Default trait (enabled) | ✅ Same behavior|
99
-
|**MapKit**| Included by default |Default trait (enabled) | ✅ Same behavior|
100
-
|**Photos**| Included by default |Default trait (enabled) | ✅ Same behavior|
101
-
|**AssetsLibrary**| Included by default |Default trait (enabled) | ✅ Same behavior|
**Note:** Video (ASVideoNode), MapKit (ASMapNode), and Photos features are **not available** via SPM due to Swift Package Manager limitations with conditionally compiled Objective-C classes. These features remain available via CocoaPods and Carthage.
16
16
17
-
```bash
18
-
swift build
19
-
```
17
+
## Running Tests
20
18
21
-
## Running
19
+
From the repository root:
22
20
23
21
```bash
24
-
swift run
22
+
./build.sh spm-texture-basic
25
23
```
26
24
27
-
Expected output:
28
-
```
29
-
✓ Texture (AsyncDisplayKit) imported successfully via SPM!
30
-
Creating basic nodes...
31
-
✓ ASDisplayNode created
32
-
✓ ASImageNode created
33
-
✓ ASTextNode created
34
-
35
-
✅ All basic Texture features are working with SPM!
0 commit comments