@10play/expo-air 0.13.2 → 0.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ios/ExpoAir.podspec +1 -1
- package/ios/WidgetRuntime.mm +30 -0
- package/package.json +2 -5
package/ios/ExpoAir.podspec
CHANGED
|
@@ -32,7 +32,7 @@ Pod::Spec.new do |s|
|
|
|
32
32
|
s.pod_target_xcconfig = {
|
|
33
33
|
'DEFINES_MODULE' => 'YES',
|
|
34
34
|
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++20',
|
|
35
|
-
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/React-RCTAppDelegate" "$(PODS_ROOT)/Headers/Public/ReactAppDependencyProvider" "$(PODS_ROOT)/Headers/Public/React-defaultsnativemodule" "$(PODS_ROOT)/Headers/Public/ReactCommon" "$(PODS_ROOT)/Headers/Public/React-NativeModulesApple" "$(PODS_ROOT)/Headers/Public/React-callinvoker"',
|
|
35
|
+
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/React-RCTAppDelegate" "$(PODS_ROOT)/Headers/Public/ReactAppDependencyProvider" "$(PODS_ROOT)/Headers/Public/React-defaultsnativemodule" "$(PODS_ROOT)/Headers/Public/ReactCommon" "$(PODS_ROOT)/Headers/Public/React-NativeModulesApple" "$(PODS_ROOT)/Headers/Public/React-callinvoker" "$(PODS_ROOT)/Headers/Public/React-featureflags"',
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
|
package/ios/WidgetRuntime.mm
CHANGED
|
@@ -13,6 +13,32 @@
|
|
|
13
13
|
#import <react/nativemodule/defaults/DefaultTurboModules.h>
|
|
14
14
|
#import <React/RCTBridge+Private.h>
|
|
15
15
|
#import <objc/runtime.h>
|
|
16
|
+
#import <react/featureflags/ReactNativeFeatureFlags.h>
|
|
17
|
+
#import <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
|
|
18
|
+
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Feature flags provider that ensures microtasks are enabled for the widget's
|
|
21
|
+
// Hermes runtime. The main app may use old architecture (bridge mode) which
|
|
22
|
+
// leaves enableBridgelessArchitecture=false, but our widget always needs
|
|
23
|
+
// bridgeless + microtasks to function with React 19.
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
namespace {
|
|
26
|
+
class WidgetFeatureFlagsProvider : public facebook::react::ReactNativeFeatureFlagsDefaults {
|
|
27
|
+
public:
|
|
28
|
+
bool enableBridgelessArchitecture() override { return true; }
|
|
29
|
+
};
|
|
30
|
+
} // namespace
|
|
31
|
+
|
|
32
|
+
static void ensureBridgelessFeatureFlags(void) {
|
|
33
|
+
static dispatch_once_t onceToken;
|
|
34
|
+
dispatch_once(&onceToken, ^{
|
|
35
|
+
if (!facebook::react::ReactNativeFeatureFlags::enableBridgelessArchitecture()) {
|
|
36
|
+
facebook::react::ReactNativeFeatureFlags::dangerouslyForceOverride(
|
|
37
|
+
std::make_unique<WidgetFeatureFlagsProvider>());
|
|
38
|
+
NSLog(@"[WidgetRuntime] Force-enabled bridgeless feature flags for widget microtask support");
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
16
42
|
|
|
17
43
|
// ---------------------------------------------------------------------------
|
|
18
44
|
// Swizzle RCTHost's didReceiveReloadCommand so the widget host can opt out
|
|
@@ -70,6 +96,10 @@ static void swizzleReloadOnce(void) {
|
|
|
70
96
|
|
|
71
97
|
NSLog(@"[WidgetRuntime] Starting with bundle URL: %@", _bundleURL);
|
|
72
98
|
|
|
99
|
+
// Ensure bridgeless feature flags are enabled so Hermes creates
|
|
100
|
+
// its runtime with microtask support (required by React 19).
|
|
101
|
+
ensureBridgelessFeatureFlags();
|
|
102
|
+
|
|
73
103
|
// Swizzle before the factory creates the RCTHost
|
|
74
104
|
swizzleReloadOnce();
|
|
75
105
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@10play/expo-air",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.3",
|
|
4
4
|
"description": "Vibe Coding for React-Native",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -79,10 +79,7 @@
|
|
|
79
79
|
"localtunnel": "^2.0.2",
|
|
80
80
|
"plist": "^3.1.0",
|
|
81
81
|
"tree-kill": "^1.2.2",
|
|
82
|
-
"ws": "^8.18.0"
|
|
83
|
-
"expo": "~54.0.32",
|
|
84
|
-
"react": "19.1.0",
|
|
85
|
-
"react-native": "0.81.5"
|
|
82
|
+
"ws": "^8.18.0"
|
|
86
83
|
},
|
|
87
84
|
"devDependencies": {
|
|
88
85
|
"@types/localtunnel": "^2.0.4",
|