├── .eslintrc.js
├── .gitignore
├── .npmignore
├── README.md
├── example
├── .gitignore
├── App.tsx
├── app.json
├── assets
│ ├── adaptive-icon.png
│ ├── favicon.png
│ ├── icon.png
│ └── splash.png
├── babel.config.js
├── ios
│ ├── .gitignore
│ ├── .xcode.env
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Podfile.properties.json
│ ├── sweetsfsymbolsexample.xcodeproj
│ │ ├── project.pbxproj
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── sweetsfsymbolsexample.xcscheme
│ ├── sweetsfsymbolsexample.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── sweetsfsymbolsexample
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.mm
│ │ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── App-Icon-1024x1024@1x.png
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ ├── SplashScreen.imageset
│ │ │ ├── Contents.json
│ │ │ └── image.png
│ │ └── SplashScreenBackground.imageset
│ │ │ ├── Contents.json
│ │ │ └── image.png
│ │ ├── Info.plist
│ │ ├── SplashScreen.storyboard
│ │ ├── Supporting
│ │ └── Expo.plist
│ │ ├── main.m
│ │ ├── noop-file.swift
│ │ ├── sweetsfsymbolsexample-Bridging-Header.h
│ │ └── sweetsfsymbolsexample.entitlements
├── metro.config.js
├── package-lock.json
├── package.json
├── tsconfig.json
└── webpack.config.js
├── expo-module.config.json
├── ios
├── SweetSFSymbols.podspec
├── SweetSFSymbolsExpoView.swift
├── SweetSFSymbolsModifiers.swift
├── SweetSFSymbolsModule.swift
├── SweetSFSymbolsProps.swift
└── SweetSFSymbolsView.swift
├── package-lock.json
├── package.json
├── src
├── SweetSFSymbols.types.ts
├── SweetSFSymbolsView.ios.tsx
├── SweetSFSymbolsView.ts
└── index.ts
└── tsconfig.json
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['universe/native', 'universe/web'],
4 | ignorePatterns: ['build'],
5 | };
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # VSCode
6 | .vscode/
7 | jsconfig.json
8 |
9 | # Xcode
10 | #
11 | build/
12 | *.pbxuser
13 | !default.pbxuser
14 | *.mode1v3
15 | !default.mode1v3
16 | *.mode2v3
17 | !default.mode2v3
18 | *.perspectivev3
19 | !default.perspectivev3
20 | xcuserdata
21 | *.xccheckout
22 | *.moved-aside
23 | DerivedData
24 | *.hmap
25 | *.ipa
26 | *.xcuserstate
27 | project.xcworkspace
28 |
29 | # Android/IJ
30 | #
31 | .classpath
32 | .cxx
33 | .gradle
34 | .idea
35 | .project
36 | .settings
37 | local.properties
38 | android.iml
39 | android/app/libs
40 | android/keystores/debug.keystore
41 |
42 | # Cocoapods
43 | #
44 | example/ios/Pods
45 |
46 | # Ruby
47 | example/vendor/
48 |
49 | # node.js
50 | #
51 | node_modules/
52 | npm-debug.log
53 | yarn-debug.log
54 | yarn-error.log
55 |
56 | # Expo
57 | .expo/*
58 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | # Exclude all top-level hidden directories by convention
2 | /.*/
3 |
4 | __mocks__
5 | __tests__
6 |
7 | /babel.config.js
8 | /android/src/androidTest/
9 | /android/src/test/
10 | /android/build/
11 | /example/
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://www.buymeacoffee.com/hugemathguy)
2 |
3 | # Sweet SF Symbols
4 |
5 | [SF Symbols](https://developer.apple.com/design/human-interface-guidelines/foundations/sf-symbols) are a set of over 5,000 consistent, highly configurable symbols you can use in your app. SF Symbols are designed to integrate seamlessly with the San Francisco system font, so the symbols automatically ensure optical vertical alignment with text for all weights and sizes.
6 |
7 | ## Highlights
8 |
9 | - :fire: Built with [Expo's Module API](https://docs.expo.dev/modules/module-api/)
10 | - :art: [Rendering modes](https://developer.apple.com/design/human-interface-guidelines/foundations/sf-symbols#rendering-modes)
11 | - :art: [Variable color values](https://developer.apple.com/design/human-interface-guidelines/foundations/sf-symbols#variable-color)
12 | - :no_bell: [Symbol Variants](https://developer.apple.com/design/human-interface-guidelines/sf-symbols#Design-variants)
13 | - :tada: [Symbol Effects](https://developer.apple.com/design/human-interface-guidelines/sf-symbols#Animations)
14 | - :apple: iOS only ([see why](https://developer.apple.com/design/human-interface-guidelines/foundations/sf-symbols#custom-symbols))
15 |
16 | ## Installation
17 |
18 | Sweet SFSymbols requires Expo SDK 46+ and Xcode 15+.
19 |
20 | ### Expo
21 |
22 | Install the library:
23 |
24 | ```console
25 | npx expo install sweet-sfsymbols
26 | ```
27 |
28 | Then rebuild your app:
29 |
30 | ```bash
31 | # Using EAS? run a build in the cloud!
32 | eas build --platform ios
33 |
34 | # Otherwise, prebuild and run a local build
35 | npx expo prebuild -p ios --clean
36 | npx expo run:ios
37 | ```
38 |
39 | > **_NOTE:_** This library will not work with Expo Go. Use a [development build](https://docs.expo.dev/develop/development-builds/create-a-build/) instead!
40 |
41 | ## Usage
42 |
43 | See the [example app](/example).
44 |
45 | ## ``
46 |
47 | The `SFSymbol` component uses SwiftUI's `Image` view to render SF Symbols.
48 |
49 | ### `Props`
50 |
51 | #### `name`
52 |
53 | The name of the symbol.
54 |
55 | > required: yes
56 | >
57 | > type: [`SystemName`](./src/SweetSFSymbols.types.ts)
58 | >
59 | > default: `""`
60 |
61 | #### `colors`
62 |
63 | The colors of the symbol. For monochrome and hierarchical rendering modes, this is a single color. For palette rendering mode, this is an array of colors. For multicolor rendering mode, this is ignored and system default values are used. This supports hex, hsl(a), rgb(a), web standard color names, PlatformColor and DynamicColorIOS values.
64 |
65 | > required: no
66 | >
67 | > type: `(string | OpaqueColorValue)[]`
68 | >
69 | > default: `[]`
70 |
71 | #### `weight`
72 |
73 | The weight of the symbol.
74 |
75 | > required: no
76 | >
77 | > type: `"thin" | "ultraLight" | "light" | "regular" | "medium" | "semibold" | "bold" | "heavy" | "black"`
78 | >
79 | > default: `"regular"`
80 |
81 | #### `scale`
82 |
83 | The scale of the symbol.
84 |
85 | > required: no
86 | >
87 | > type: `"small" | "medium" | "large"`
88 | >
89 | > default: `"medium"`
90 |
91 | #### `renderingMode` (iOS 15+)
92 |
93 | The rendering mode of the symbol. Learn more about rendering modes [here](https://developer.apple.com/design/human-interface-guidelines/sf-symbols#Rendering-modes).
94 |
95 | > required: no
96 | >
97 | > type: `"monochrome" | "hierarchical" | "palette" | "multicolor"`
98 | >
99 | > default: `"monochrome"`
100 |
101 | #### `size`
102 |
103 | The size of the symbol. This deifines the frame of the image view.
104 |
105 | > required: no
106 | >
107 | > type: `number`
108 | >
109 | > default: `50`
110 |
111 | #### `variableValue` (iOS 16+)
112 |
113 | The variable value of the symbol. Only some symbols support variable values, ususally those that represent a change in value (like `speaker.wave.3`) The variable value determines what percentage of the symbol is filled in. Learn more about variable values [here](https://developer.apple.com/design/human-interface-guidelines/sf-symbols#Variable-color).
114 |
115 | > required: no
116 | >
117 | > type: `number`
118 | >
119 | > default: `1.0`
120 |
121 | #### `variant` (iOS 15+)
122 |
123 | The variant of the symbol. This is an alternate way to modify the symbol's appearance without modifying the symbol name. Learn more about symbol variants [here](https://developer.apple.com/design/human-interface-guidelines/sf-symbols#Design-variants).
124 |
125 | > required: no
126 | >
127 | > type: [SymbolVariant](./src/SweetSFSymbols.types.ts)
128 | >
129 | > default: `none`
130 |
131 | #### `symbolEffect` (iOS 17+)
132 |
133 | The symbol effect of the symbol. Adds an animation to the symbol. Learn more about symbol effects [here](https://blorenzop.medium.com/how-to-animate-sf-symbols-in-swiftui-c3b504af4f44).
134 |
135 | > required: no
136 | >
137 | > type: [`SymbolEffect`](./src/SweetSFSymbols.types.ts)
138 | >
139 | > default: `undefined`
140 |
141 | #### `style`
142 |
143 | The style of the symbol.
144 |
145 | > required: no
146 | >
147 | > type: `ViewStyle`
148 | >
149 | > default: `undefined`
150 |
151 | ## Disclaimer
152 |
153 | It's your responsibility to check Apple's rules about when and where certain icons can be used. You can check the [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/sf-symbols) and use the [official SF Symbols app](https://developer.apple.com/sf-symbols/) to check for any restrictions on the icons you want to use.
154 |
155 | This library isn't associated with Apple, and only exposes a way to use them within React Native apps on iOS.
156 |
157 | ## Symbol names not up to date?
158 |
159 | If you notice that the symbol names are not up to date, either submit an issue or a PR with the updated symbol names!
160 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
2 |
3 | # dependencies
4 | node_modules/
5 |
6 | # Expo
7 | .expo/
8 | dist/
9 | web-build/
10 |
11 | # Native
12 | *.orig.*
13 | *.jks
14 | *.p8
15 | *.p12
16 | *.key
17 | *.mobileprovision
18 |
19 | # Metro
20 | .metro-health-check*
21 |
22 | # debug
23 | npm-debug.*
24 | yarn-debug.*
25 | yarn-error.*
26 |
27 | # macOS
28 | .DS_Store
29 | *.pem
30 |
31 | # local env files
32 | .env*.local
33 |
34 | # typescript
35 | *.tsbuildinfo
36 |
--------------------------------------------------------------------------------
/example/App.tsx:
--------------------------------------------------------------------------------
1 | import { useState } from "react";
2 | import {
3 | Button,
4 | PlatformColor,
5 | ScrollView,
6 | StyleSheet,
7 | Text,
8 | TouchableOpacity,
9 | View,
10 | } from "react-native";
11 | import SweetSFSymbol from "sweet-sfsymbols";
12 |
13 | export default function App() {
14 | const [appearIsActive, setAppearIsActive] = useState(false);
15 | const [disappearIsActive, setDisappearIsActive] = useState(false);
16 | const [bounceValue, setBounceValue] = useState(false);
17 | const [pulseValue, setPulseValue] = useState(0);
18 | const [pulseIsActive, setPulseIsActive] = useState(false);
19 | const [scaleIsActive, setScaleIsActive] = useState(false);
20 | const [variableColorIsActive, setVariableColorIsActive] = useState(false);
21 | const [variableColorValue, setVariableColorValue] = useState(0);
22 | const [replaceIsActive, setReplaceIsActive] = useState(false);
23 | const [variableValue, setVariableValue] = useState(0);
24 |
25 | return (
26 |
27 |
28 | {/* Symbol Variants */}
29 | Symbol Variants
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | {/* Rendering Modes */}
38 | Rendering Modes
39 |
40 | Palette
41 |
46 |
47 |
48 | Hierarchical
49 |
54 |
55 |
56 | Monochrome
57 |
62 |
63 |
64 | Multicolor
65 |
70 |
71 | {/* Variable Value */}
72 | Variable Values
73 |
74 |
75 | setVariableValue(variableValue + 0.1)}
78 | onDecrement={() => setVariableValue(variableValue - 0.1)}
79 | />
80 |
85 |
86 | {/* Symbol Effect */}
87 | Discrete Symbol Effect
88 |
89 |
90 | Bounce
91 |
234 |
235 | );
236 | }
237 |
238 | const styles = StyleSheet.create({
239 | container: {
240 | flex: 1,
241 | paddingVertical: 100,
242 | backgroundColor: "#fff",
243 | alignItems: "center",
244 | justifyContent: "center",
245 | gap: 20,
246 | },
247 | heading: {
248 | fontSize: 30,
249 | fontWeight: "bold",
250 | textAlign: "center",
251 | marginTop: 50,
252 | },
253 | subHeading: {
254 | fontSize: 20,
255 | },
256 | hstack: {
257 | flexDirection: "row",
258 | alignItems: "center",
259 | gap: 10,
260 | },
261 | stepperContainer: {
262 | flexDirection: "row",
263 | alignItems: "center",
264 | },
265 | stepperButton: {
266 | backgroundColor: "black",
267 | borderRadius: 8,
268 | paddingHorizontal: 10,
269 | paddingVertical: 5,
270 | },
271 | stepperButtonText: {
272 | color: "white",
273 | fontSize: 30,
274 | fontWeight: "bold",
275 | },
276 | stepperText: {
277 | fontSize: 20,
278 | fontWeight: "bold",
279 | width: 50,
280 | textAlign: "center",
281 | },
282 | divider: {
283 | height: 1,
284 | width: "80%",
285 | backgroundColor: "lightgray",
286 | },
287 | });
288 |
289 | const Divider = () => ;
290 |
291 | const Stepper = ({
292 | value,
293 | onIncrement,
294 | onDecrement,
295 | }: {
296 | value: number;
297 | onIncrement: () => void;
298 | onDecrement: () => void;
299 | }) => (
300 |
301 |
302 |
303 |
304 | {value.toFixed(1)}
305 |
306 |
307 |
308 |
309 | );
310 |
--------------------------------------------------------------------------------
/example/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "sweet-sfsymbols-example",
4 | "slug": "sweet-sfsymbols-example",
5 | "version": "1.0.0",
6 | "orientation": "portrait",
7 | "icon": "./assets/icon.png",
8 | "userInterfaceStyle": "light",
9 | "splash": {
10 | "image": "./assets/splash.png",
11 | "resizeMode": "contain",
12 | "backgroundColor": "#ffffff"
13 | },
14 | "assetBundlePatterns": [
15 | "**/*"
16 | ],
17 | "ios": {
18 | "supportsTablet": true,
19 | "bundleIdentifier": "expo.modules.sweetsfsymbols.example"
20 | },
21 | "android": {
22 | "adaptiveIcon": {
23 | "foregroundImage": "./assets/adaptive-icon.png",
24 | "backgroundColor": "#ffffff"
25 | },
26 | "package": "expo.modules.sweetsfsymbols.example"
27 | },
28 | "web": {
29 | "favicon": "./assets/favicon.png"
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/example/assets/adaptive-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/assets/adaptive-icon.png
--------------------------------------------------------------------------------
/example/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/assets/favicon.png
--------------------------------------------------------------------------------
/example/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/assets/icon.png
--------------------------------------------------------------------------------
/example/assets/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/assets/splash.png
--------------------------------------------------------------------------------
/example/babel.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | module.exports = function (api) {
3 | api.cache(true);
4 | return {
5 | presets: ['babel-preset-expo'],
6 | plugins: [
7 | [
8 | 'module-resolver',
9 | {
10 | extensions: ['.tsx', '.ts', '.js', '.json'],
11 | alias: {
12 | // For development, we want to alias the library to the source
13 | 'sweet-sfsymbols': path.join(__dirname, '..', 'src', 'index.ts'),
14 | },
15 | },
16 | ],
17 | ],
18 | };
19 | };
20 |
--------------------------------------------------------------------------------
/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 | .xcode.env.local
25 |
26 | # Bundle artifacts
27 | *.jsbundle
28 |
29 | # CocoaPods
30 | /Pods/
31 |
--------------------------------------------------------------------------------
/example/ios/.xcode.env:
--------------------------------------------------------------------------------
1 | # This `.xcode.env` file is versioned and is used to source the environment
2 | # used when running script phases inside Xcode.
3 | # To customize your local environment, you can create an `.xcode.env.local`
4 | # file that is not versioned.
5 |
6 | # NODE_BINARY variable contains the PATH to the node executable.
7 | #
8 | # Customize the NODE_BINARY variable here.
9 | # For example, to use nvm with brew, add the following line
10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use
11 | export NODE_BINARY=$(command -v node)
12 |
--------------------------------------------------------------------------------
/example/ios/Podfile:
--------------------------------------------------------------------------------
1 | require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
2 | require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
3 |
4 | require 'json'
5 | podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
6 |
7 | ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'
8 | ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
9 |
10 | platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4'
11 | install! 'cocoapods',
12 | :deterministic_uuids => false
13 |
14 | prepare_react_native_project!
15 |
16 | # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
17 | # because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,
18 | # you can also exclude `react-native-flipper` in `react-native.config.js`
19 | #
20 | # ```js
21 | # module.exports = {
22 | # dependencies: {
23 | # ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
24 | # }
25 | # }
26 | # ```
27 | flipper_config = FlipperConfiguration.disabled
28 | if ENV['NO_FLIPPER'] == '1' then
29 | # Explicitly disabled through environment variables
30 | flipper_config = FlipperConfiguration.disabled
31 | elsif podfile_properties.key?('ios.flipper') then
32 | # Configure Flipper in Podfile.properties.json
33 | if podfile_properties['ios.flipper'] == 'true' then
34 | flipper_config = FlipperConfiguration.enabled(["Debug", "Release"])
35 | elsif podfile_properties['ios.flipper'] != 'false' then
36 | flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] })
37 | end
38 | end
39 |
40 | target 'sweetsfsymbolsexample' do
41 | use_expo_modules!
42 | config = use_native_modules!
43 |
44 | use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
45 | use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']
46 |
47 | use_react_native!(
48 | :path => config[:reactNativePath],
49 | :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',
50 | # An absolute path to your application root.
51 | :app_path => "#{Pod::Config.instance.installation_root}/..",
52 | # Note that if you have use_frameworks! enabled, Flipper will not work if enabled
53 | :flipper_configuration => flipper_config
54 | )
55 |
56 | post_install do |installer|
57 | react_native_post_install(
58 | installer,
59 | config[:reactNativePath],
60 | :mac_catalyst_enabled => false
61 | )
62 |
63 | # This is necessary for Xcode 14, because it signs resource bundles by default
64 | # when building for devices.
65 | installer.target_installation_results.pod_target_installation_results
66 | .each do |pod_name, target_installation_result|
67 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target|
68 | resource_bundle_target.build_configurations.each do |config|
69 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
70 | end
71 | end
72 | end
73 | end
74 |
75 | post_integrate do |installer|
76 | begin
77 | expo_patch_react_imports!(installer)
78 | rescue => e
79 | Pod::UI.warn e
80 | end
81 | end
82 | end
83 |
--------------------------------------------------------------------------------
/example/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost (1.83.0)
3 | - DoubleConversion (1.1.6)
4 | - EXConstants (15.4.5):
5 | - ExpoModulesCore
6 | - EXFont (11.10.3):
7 | - ExpoModulesCore
8 | - Expo (50.0.14):
9 | - ExpoModulesCore
10 | - ExpoFileSystem (16.0.8):
11 | - ExpoModulesCore
12 | - ExpoKeepAwake (12.8.2):
13 | - ExpoModulesCore
14 | - ExpoModulesCore (1.11.12):
15 | - glog
16 | - RCT-Folly (= 2022.05.16.00)
17 | - React-Core
18 | - React-NativeModulesApple
19 | - React-RCTAppDelegate
20 | - ReactCommon/turbomodule/core
21 | - EXSplashScreen (0.26.4):
22 | - ExpoModulesCore
23 | - glog
24 | - RCT-Folly (= 2022.05.16.00)
25 | - React-Core
26 | - FBLazyVector (0.73.4)
27 | - FBReactNativeSpec (0.73.4):
28 | - RCT-Folly (= 2022.05.16.00)
29 | - RCTRequired (= 0.73.4)
30 | - RCTTypeSafety (= 0.73.4)
31 | - React-Core (= 0.73.4)
32 | - React-jsi (= 0.73.4)
33 | - ReactCommon/turbomodule/core (= 0.73.4)
34 | - fmt (6.2.1)
35 | - glog (0.3.5)
36 | - hermes-engine (0.73.4):
37 | - hermes-engine/Pre-built (= 0.73.4)
38 | - hermes-engine/Pre-built (0.73.4)
39 | - libevent (2.1.12)
40 | - RCT-Folly (2022.05.16.00):
41 | - boost
42 | - DoubleConversion
43 | - fmt (~> 6.2.1)
44 | - glog
45 | - RCT-Folly/Default (= 2022.05.16.00)
46 | - RCT-Folly/Default (2022.05.16.00):
47 | - boost
48 | - DoubleConversion
49 | - fmt (~> 6.2.1)
50 | - glog
51 | - RCT-Folly/Fabric (2022.05.16.00):
52 | - boost
53 | - DoubleConversion
54 | - fmt (~> 6.2.1)
55 | - glog
56 | - RCT-Folly/Futures (2022.05.16.00):
57 | - boost
58 | - DoubleConversion
59 | - fmt (~> 6.2.1)
60 | - glog
61 | - libevent
62 | - RCTRequired (0.73.4)
63 | - RCTTypeSafety (0.73.4):
64 | - FBLazyVector (= 0.73.4)
65 | - RCTRequired (= 0.73.4)
66 | - React-Core (= 0.73.4)
67 | - React (0.73.4):
68 | - React-Core (= 0.73.4)
69 | - React-Core/DevSupport (= 0.73.4)
70 | - React-Core/RCTWebSocket (= 0.73.4)
71 | - React-RCTActionSheet (= 0.73.4)
72 | - React-RCTAnimation (= 0.73.4)
73 | - React-RCTBlob (= 0.73.4)
74 | - React-RCTImage (= 0.73.4)
75 | - React-RCTLinking (= 0.73.4)
76 | - React-RCTNetwork (= 0.73.4)
77 | - React-RCTSettings (= 0.73.4)
78 | - React-RCTText (= 0.73.4)
79 | - React-RCTVibration (= 0.73.4)
80 | - React-callinvoker (0.73.4)
81 | - React-Codegen (0.73.4):
82 | - DoubleConversion
83 | - FBReactNativeSpec
84 | - glog
85 | - hermes-engine
86 | - RCT-Folly
87 | - RCTRequired
88 | - RCTTypeSafety
89 | - React-Core
90 | - React-jsi
91 | - React-jsiexecutor
92 | - React-NativeModulesApple
93 | - React-rncore
94 | - ReactCommon/turbomodule/bridging
95 | - ReactCommon/turbomodule/core
96 | - React-Core (0.73.4):
97 | - glog
98 | - hermes-engine
99 | - RCT-Folly (= 2022.05.16.00)
100 | - React-Core/Default (= 0.73.4)
101 | - React-cxxreact
102 | - React-hermes
103 | - React-jsi
104 | - React-jsiexecutor
105 | - React-perflogger
106 | - React-runtimescheduler
107 | - React-utils
108 | - SocketRocket (= 0.6.1)
109 | - Yoga
110 | - React-Core/CoreModulesHeaders (0.73.4):
111 | - glog
112 | - hermes-engine
113 | - RCT-Folly (= 2022.05.16.00)
114 | - React-Core/Default
115 | - React-cxxreact
116 | - React-hermes
117 | - React-jsi
118 | - React-jsiexecutor
119 | - React-perflogger
120 | - React-runtimescheduler
121 | - React-utils
122 | - SocketRocket (= 0.6.1)
123 | - Yoga
124 | - React-Core/Default (0.73.4):
125 | - glog
126 | - hermes-engine
127 | - RCT-Folly (= 2022.05.16.00)
128 | - React-cxxreact
129 | - React-hermes
130 | - React-jsi
131 | - React-jsiexecutor
132 | - React-perflogger
133 | - React-runtimescheduler
134 | - React-utils
135 | - SocketRocket (= 0.6.1)
136 | - Yoga
137 | - React-Core/DevSupport (0.73.4):
138 | - glog
139 | - hermes-engine
140 | - RCT-Folly (= 2022.05.16.00)
141 | - React-Core/Default (= 0.73.4)
142 | - React-Core/RCTWebSocket (= 0.73.4)
143 | - React-cxxreact
144 | - React-hermes
145 | - React-jsi
146 | - React-jsiexecutor
147 | - React-jsinspector (= 0.73.4)
148 | - React-perflogger
149 | - React-runtimescheduler
150 | - React-utils
151 | - SocketRocket (= 0.6.1)
152 | - Yoga
153 | - React-Core/RCTActionSheetHeaders (0.73.4):
154 | - glog
155 | - hermes-engine
156 | - RCT-Folly (= 2022.05.16.00)
157 | - React-Core/Default
158 | - React-cxxreact
159 | - React-hermes
160 | - React-jsi
161 | - React-jsiexecutor
162 | - React-perflogger
163 | - React-runtimescheduler
164 | - React-utils
165 | - SocketRocket (= 0.6.1)
166 | - Yoga
167 | - React-Core/RCTAnimationHeaders (0.73.4):
168 | - glog
169 | - hermes-engine
170 | - RCT-Folly (= 2022.05.16.00)
171 | - React-Core/Default
172 | - React-cxxreact
173 | - React-hermes
174 | - React-jsi
175 | - React-jsiexecutor
176 | - React-perflogger
177 | - React-runtimescheduler
178 | - React-utils
179 | - SocketRocket (= 0.6.1)
180 | - Yoga
181 | - React-Core/RCTBlobHeaders (0.73.4):
182 | - glog
183 | - hermes-engine
184 | - RCT-Folly (= 2022.05.16.00)
185 | - React-Core/Default
186 | - React-cxxreact
187 | - React-hermes
188 | - React-jsi
189 | - React-jsiexecutor
190 | - React-perflogger
191 | - React-runtimescheduler
192 | - React-utils
193 | - SocketRocket (= 0.6.1)
194 | - Yoga
195 | - React-Core/RCTImageHeaders (0.73.4):
196 | - glog
197 | - hermes-engine
198 | - RCT-Folly (= 2022.05.16.00)
199 | - React-Core/Default
200 | - React-cxxreact
201 | - React-hermes
202 | - React-jsi
203 | - React-jsiexecutor
204 | - React-perflogger
205 | - React-runtimescheduler
206 | - React-utils
207 | - SocketRocket (= 0.6.1)
208 | - Yoga
209 | - React-Core/RCTLinkingHeaders (0.73.4):
210 | - glog
211 | - hermes-engine
212 | - RCT-Folly (= 2022.05.16.00)
213 | - React-Core/Default
214 | - React-cxxreact
215 | - React-hermes
216 | - React-jsi
217 | - React-jsiexecutor
218 | - React-perflogger
219 | - React-runtimescheduler
220 | - React-utils
221 | - SocketRocket (= 0.6.1)
222 | - Yoga
223 | - React-Core/RCTNetworkHeaders (0.73.4):
224 | - glog
225 | - hermes-engine
226 | - RCT-Folly (= 2022.05.16.00)
227 | - React-Core/Default
228 | - React-cxxreact
229 | - React-hermes
230 | - React-jsi
231 | - React-jsiexecutor
232 | - React-perflogger
233 | - React-runtimescheduler
234 | - React-utils
235 | - SocketRocket (= 0.6.1)
236 | - Yoga
237 | - React-Core/RCTSettingsHeaders (0.73.4):
238 | - glog
239 | - hermes-engine
240 | - RCT-Folly (= 2022.05.16.00)
241 | - React-Core/Default
242 | - React-cxxreact
243 | - React-hermes
244 | - React-jsi
245 | - React-jsiexecutor
246 | - React-perflogger
247 | - React-runtimescheduler
248 | - React-utils
249 | - SocketRocket (= 0.6.1)
250 | - Yoga
251 | - React-Core/RCTTextHeaders (0.73.4):
252 | - glog
253 | - hermes-engine
254 | - RCT-Folly (= 2022.05.16.00)
255 | - React-Core/Default
256 | - React-cxxreact
257 | - React-hermes
258 | - React-jsi
259 | - React-jsiexecutor
260 | - React-perflogger
261 | - React-runtimescheduler
262 | - React-utils
263 | - SocketRocket (= 0.6.1)
264 | - Yoga
265 | - React-Core/RCTVibrationHeaders (0.73.4):
266 | - glog
267 | - hermes-engine
268 | - RCT-Folly (= 2022.05.16.00)
269 | - React-Core/Default
270 | - React-cxxreact
271 | - React-hermes
272 | - React-jsi
273 | - React-jsiexecutor
274 | - React-perflogger
275 | - React-runtimescheduler
276 | - React-utils
277 | - SocketRocket (= 0.6.1)
278 | - Yoga
279 | - React-Core/RCTWebSocket (0.73.4):
280 | - glog
281 | - hermes-engine
282 | - RCT-Folly (= 2022.05.16.00)
283 | - React-Core/Default (= 0.73.4)
284 | - React-cxxreact
285 | - React-hermes
286 | - React-jsi
287 | - React-jsiexecutor
288 | - React-perflogger
289 | - React-runtimescheduler
290 | - React-utils
291 | - SocketRocket (= 0.6.1)
292 | - Yoga
293 | - React-CoreModules (0.73.4):
294 | - RCT-Folly (= 2022.05.16.00)
295 | - RCTTypeSafety (= 0.73.4)
296 | - React-Codegen
297 | - React-Core/CoreModulesHeaders (= 0.73.4)
298 | - React-jsi (= 0.73.4)
299 | - React-NativeModulesApple
300 | - React-RCTBlob
301 | - React-RCTImage (= 0.73.4)
302 | - ReactCommon
303 | - SocketRocket (= 0.6.1)
304 | - React-cxxreact (0.73.4):
305 | - boost (= 1.83.0)
306 | - DoubleConversion
307 | - fmt (~> 6.2.1)
308 | - glog
309 | - hermes-engine
310 | - RCT-Folly (= 2022.05.16.00)
311 | - React-callinvoker (= 0.73.4)
312 | - React-debug (= 0.73.4)
313 | - React-jsi (= 0.73.4)
314 | - React-jsinspector (= 0.73.4)
315 | - React-logger (= 0.73.4)
316 | - React-perflogger (= 0.73.4)
317 | - React-runtimeexecutor (= 0.73.4)
318 | - React-debug (0.73.4)
319 | - React-Fabric (0.73.4):
320 | - DoubleConversion
321 | - fmt (~> 6.2.1)
322 | - glog
323 | - hermes-engine
324 | - RCT-Folly/Fabric (= 2022.05.16.00)
325 | - RCTRequired
326 | - RCTTypeSafety
327 | - React-Core
328 | - React-cxxreact
329 | - React-debug
330 | - React-Fabric/animations (= 0.73.4)
331 | - React-Fabric/attributedstring (= 0.73.4)
332 | - React-Fabric/componentregistry (= 0.73.4)
333 | - React-Fabric/componentregistrynative (= 0.73.4)
334 | - React-Fabric/components (= 0.73.4)
335 | - React-Fabric/core (= 0.73.4)
336 | - React-Fabric/imagemanager (= 0.73.4)
337 | - React-Fabric/leakchecker (= 0.73.4)
338 | - React-Fabric/mounting (= 0.73.4)
339 | - React-Fabric/scheduler (= 0.73.4)
340 | - React-Fabric/telemetry (= 0.73.4)
341 | - React-Fabric/templateprocessor (= 0.73.4)
342 | - React-Fabric/textlayoutmanager (= 0.73.4)
343 | - React-Fabric/uimanager (= 0.73.4)
344 | - React-graphics
345 | - React-jsi
346 | - React-jsiexecutor
347 | - React-logger
348 | - React-rendererdebug
349 | - React-runtimescheduler
350 | - React-utils
351 | - ReactCommon/turbomodule/core
352 | - React-Fabric/animations (0.73.4):
353 | - DoubleConversion
354 | - fmt (~> 6.2.1)
355 | - glog
356 | - hermes-engine
357 | - RCT-Folly/Fabric (= 2022.05.16.00)
358 | - RCTRequired
359 | - RCTTypeSafety
360 | - React-Core
361 | - React-cxxreact
362 | - React-debug
363 | - React-graphics
364 | - React-jsi
365 | - React-jsiexecutor
366 | - React-logger
367 | - React-rendererdebug
368 | - React-runtimescheduler
369 | - React-utils
370 | - ReactCommon/turbomodule/core
371 | - React-Fabric/attributedstring (0.73.4):
372 | - DoubleConversion
373 | - fmt (~> 6.2.1)
374 | - glog
375 | - hermes-engine
376 | - RCT-Folly/Fabric (= 2022.05.16.00)
377 | - RCTRequired
378 | - RCTTypeSafety
379 | - React-Core
380 | - React-cxxreact
381 | - React-debug
382 | - React-graphics
383 | - React-jsi
384 | - React-jsiexecutor
385 | - React-logger
386 | - React-rendererdebug
387 | - React-runtimescheduler
388 | - React-utils
389 | - ReactCommon/turbomodule/core
390 | - React-Fabric/componentregistry (0.73.4):
391 | - DoubleConversion
392 | - fmt (~> 6.2.1)
393 | - glog
394 | - hermes-engine
395 | - RCT-Folly/Fabric (= 2022.05.16.00)
396 | - RCTRequired
397 | - RCTTypeSafety
398 | - React-Core
399 | - React-cxxreact
400 | - React-debug
401 | - React-graphics
402 | - React-jsi
403 | - React-jsiexecutor
404 | - React-logger
405 | - React-rendererdebug
406 | - React-runtimescheduler
407 | - React-utils
408 | - ReactCommon/turbomodule/core
409 | - React-Fabric/componentregistrynative (0.73.4):
410 | - DoubleConversion
411 | - fmt (~> 6.2.1)
412 | - glog
413 | - hermes-engine
414 | - RCT-Folly/Fabric (= 2022.05.16.00)
415 | - RCTRequired
416 | - RCTTypeSafety
417 | - React-Core
418 | - React-cxxreact
419 | - React-debug
420 | - React-graphics
421 | - React-jsi
422 | - React-jsiexecutor
423 | - React-logger
424 | - React-rendererdebug
425 | - React-runtimescheduler
426 | - React-utils
427 | - ReactCommon/turbomodule/core
428 | - React-Fabric/components (0.73.4):
429 | - DoubleConversion
430 | - fmt (~> 6.2.1)
431 | - glog
432 | - hermes-engine
433 | - RCT-Folly/Fabric (= 2022.05.16.00)
434 | - RCTRequired
435 | - RCTTypeSafety
436 | - React-Core
437 | - React-cxxreact
438 | - React-debug
439 | - React-Fabric/components/inputaccessory (= 0.73.4)
440 | - React-Fabric/components/legacyviewmanagerinterop (= 0.73.4)
441 | - React-Fabric/components/modal (= 0.73.4)
442 | - React-Fabric/components/rncore (= 0.73.4)
443 | - React-Fabric/components/root (= 0.73.4)
444 | - React-Fabric/components/safeareaview (= 0.73.4)
445 | - React-Fabric/components/scrollview (= 0.73.4)
446 | - React-Fabric/components/text (= 0.73.4)
447 | - React-Fabric/components/textinput (= 0.73.4)
448 | - React-Fabric/components/unimplementedview (= 0.73.4)
449 | - React-Fabric/components/view (= 0.73.4)
450 | - React-graphics
451 | - React-jsi
452 | - React-jsiexecutor
453 | - React-logger
454 | - React-rendererdebug
455 | - React-runtimescheduler
456 | - React-utils
457 | - ReactCommon/turbomodule/core
458 | - React-Fabric/components/inputaccessory (0.73.4):
459 | - DoubleConversion
460 | - fmt (~> 6.2.1)
461 | - glog
462 | - hermes-engine
463 | - RCT-Folly/Fabric (= 2022.05.16.00)
464 | - RCTRequired
465 | - RCTTypeSafety
466 | - React-Core
467 | - React-cxxreact
468 | - React-debug
469 | - React-graphics
470 | - React-jsi
471 | - React-jsiexecutor
472 | - React-logger
473 | - React-rendererdebug
474 | - React-runtimescheduler
475 | - React-utils
476 | - ReactCommon/turbomodule/core
477 | - React-Fabric/components/legacyviewmanagerinterop (0.73.4):
478 | - DoubleConversion
479 | - fmt (~> 6.2.1)
480 | - glog
481 | - hermes-engine
482 | - RCT-Folly/Fabric (= 2022.05.16.00)
483 | - RCTRequired
484 | - RCTTypeSafety
485 | - React-Core
486 | - React-cxxreact
487 | - React-debug
488 | - React-graphics
489 | - React-jsi
490 | - React-jsiexecutor
491 | - React-logger
492 | - React-rendererdebug
493 | - React-runtimescheduler
494 | - React-utils
495 | - ReactCommon/turbomodule/core
496 | - React-Fabric/components/modal (0.73.4):
497 | - DoubleConversion
498 | - fmt (~> 6.2.1)
499 | - glog
500 | - hermes-engine
501 | - RCT-Folly/Fabric (= 2022.05.16.00)
502 | - RCTRequired
503 | - RCTTypeSafety
504 | - React-Core
505 | - React-cxxreact
506 | - React-debug
507 | - React-graphics
508 | - React-jsi
509 | - React-jsiexecutor
510 | - React-logger
511 | - React-rendererdebug
512 | - React-runtimescheduler
513 | - React-utils
514 | - ReactCommon/turbomodule/core
515 | - React-Fabric/components/rncore (0.73.4):
516 | - DoubleConversion
517 | - fmt (~> 6.2.1)
518 | - glog
519 | - hermes-engine
520 | - RCT-Folly/Fabric (= 2022.05.16.00)
521 | - RCTRequired
522 | - RCTTypeSafety
523 | - React-Core
524 | - React-cxxreact
525 | - React-debug
526 | - React-graphics
527 | - React-jsi
528 | - React-jsiexecutor
529 | - React-logger
530 | - React-rendererdebug
531 | - React-runtimescheduler
532 | - React-utils
533 | - ReactCommon/turbomodule/core
534 | - React-Fabric/components/root (0.73.4):
535 | - DoubleConversion
536 | - fmt (~> 6.2.1)
537 | - glog
538 | - hermes-engine
539 | - RCT-Folly/Fabric (= 2022.05.16.00)
540 | - RCTRequired
541 | - RCTTypeSafety
542 | - React-Core
543 | - React-cxxreact
544 | - React-debug
545 | - React-graphics
546 | - React-jsi
547 | - React-jsiexecutor
548 | - React-logger
549 | - React-rendererdebug
550 | - React-runtimescheduler
551 | - React-utils
552 | - ReactCommon/turbomodule/core
553 | - React-Fabric/components/safeareaview (0.73.4):
554 | - DoubleConversion
555 | - fmt (~> 6.2.1)
556 | - glog
557 | - hermes-engine
558 | - RCT-Folly/Fabric (= 2022.05.16.00)
559 | - RCTRequired
560 | - RCTTypeSafety
561 | - React-Core
562 | - React-cxxreact
563 | - React-debug
564 | - React-graphics
565 | - React-jsi
566 | - React-jsiexecutor
567 | - React-logger
568 | - React-rendererdebug
569 | - React-runtimescheduler
570 | - React-utils
571 | - ReactCommon/turbomodule/core
572 | - React-Fabric/components/scrollview (0.73.4):
573 | - DoubleConversion
574 | - fmt (~> 6.2.1)
575 | - glog
576 | - hermes-engine
577 | - RCT-Folly/Fabric (= 2022.05.16.00)
578 | - RCTRequired
579 | - RCTTypeSafety
580 | - React-Core
581 | - React-cxxreact
582 | - React-debug
583 | - React-graphics
584 | - React-jsi
585 | - React-jsiexecutor
586 | - React-logger
587 | - React-rendererdebug
588 | - React-runtimescheduler
589 | - React-utils
590 | - ReactCommon/turbomodule/core
591 | - React-Fabric/components/text (0.73.4):
592 | - DoubleConversion
593 | - fmt (~> 6.2.1)
594 | - glog
595 | - hermes-engine
596 | - RCT-Folly/Fabric (= 2022.05.16.00)
597 | - RCTRequired
598 | - RCTTypeSafety
599 | - React-Core
600 | - React-cxxreact
601 | - React-debug
602 | - React-graphics
603 | - React-jsi
604 | - React-jsiexecutor
605 | - React-logger
606 | - React-rendererdebug
607 | - React-runtimescheduler
608 | - React-utils
609 | - ReactCommon/turbomodule/core
610 | - React-Fabric/components/textinput (0.73.4):
611 | - DoubleConversion
612 | - fmt (~> 6.2.1)
613 | - glog
614 | - hermes-engine
615 | - RCT-Folly/Fabric (= 2022.05.16.00)
616 | - RCTRequired
617 | - RCTTypeSafety
618 | - React-Core
619 | - React-cxxreact
620 | - React-debug
621 | - React-graphics
622 | - React-jsi
623 | - React-jsiexecutor
624 | - React-logger
625 | - React-rendererdebug
626 | - React-runtimescheduler
627 | - React-utils
628 | - ReactCommon/turbomodule/core
629 | - React-Fabric/components/unimplementedview (0.73.4):
630 | - DoubleConversion
631 | - fmt (~> 6.2.1)
632 | - glog
633 | - hermes-engine
634 | - RCT-Folly/Fabric (= 2022.05.16.00)
635 | - RCTRequired
636 | - RCTTypeSafety
637 | - React-Core
638 | - React-cxxreact
639 | - React-debug
640 | - React-graphics
641 | - React-jsi
642 | - React-jsiexecutor
643 | - React-logger
644 | - React-rendererdebug
645 | - React-runtimescheduler
646 | - React-utils
647 | - ReactCommon/turbomodule/core
648 | - React-Fabric/components/view (0.73.4):
649 | - DoubleConversion
650 | - fmt (~> 6.2.1)
651 | - glog
652 | - hermes-engine
653 | - RCT-Folly/Fabric (= 2022.05.16.00)
654 | - RCTRequired
655 | - RCTTypeSafety
656 | - React-Core
657 | - React-cxxreact
658 | - React-debug
659 | - React-graphics
660 | - React-jsi
661 | - React-jsiexecutor
662 | - React-logger
663 | - React-rendererdebug
664 | - React-runtimescheduler
665 | - React-utils
666 | - ReactCommon/turbomodule/core
667 | - Yoga
668 | - React-Fabric/core (0.73.4):
669 | - DoubleConversion
670 | - fmt (~> 6.2.1)
671 | - glog
672 | - hermes-engine
673 | - RCT-Folly/Fabric (= 2022.05.16.00)
674 | - RCTRequired
675 | - RCTTypeSafety
676 | - React-Core
677 | - React-cxxreact
678 | - React-debug
679 | - React-graphics
680 | - React-jsi
681 | - React-jsiexecutor
682 | - React-logger
683 | - React-rendererdebug
684 | - React-runtimescheduler
685 | - React-utils
686 | - ReactCommon/turbomodule/core
687 | - React-Fabric/imagemanager (0.73.4):
688 | - DoubleConversion
689 | - fmt (~> 6.2.1)
690 | - glog
691 | - hermes-engine
692 | - RCT-Folly/Fabric (= 2022.05.16.00)
693 | - RCTRequired
694 | - RCTTypeSafety
695 | - React-Core
696 | - React-cxxreact
697 | - React-debug
698 | - React-graphics
699 | - React-jsi
700 | - React-jsiexecutor
701 | - React-logger
702 | - React-rendererdebug
703 | - React-runtimescheduler
704 | - React-utils
705 | - ReactCommon/turbomodule/core
706 | - React-Fabric/leakchecker (0.73.4):
707 | - DoubleConversion
708 | - fmt (~> 6.2.1)
709 | - glog
710 | - hermes-engine
711 | - RCT-Folly/Fabric (= 2022.05.16.00)
712 | - RCTRequired
713 | - RCTTypeSafety
714 | - React-Core
715 | - React-cxxreact
716 | - React-debug
717 | - React-graphics
718 | - React-jsi
719 | - React-jsiexecutor
720 | - React-logger
721 | - React-rendererdebug
722 | - React-runtimescheduler
723 | - React-utils
724 | - ReactCommon/turbomodule/core
725 | - React-Fabric/mounting (0.73.4):
726 | - DoubleConversion
727 | - fmt (~> 6.2.1)
728 | - glog
729 | - hermes-engine
730 | - RCT-Folly/Fabric (= 2022.05.16.00)
731 | - RCTRequired
732 | - RCTTypeSafety
733 | - React-Core
734 | - React-cxxreact
735 | - React-debug
736 | - React-graphics
737 | - React-jsi
738 | - React-jsiexecutor
739 | - React-logger
740 | - React-rendererdebug
741 | - React-runtimescheduler
742 | - React-utils
743 | - ReactCommon/turbomodule/core
744 | - React-Fabric/scheduler (0.73.4):
745 | - DoubleConversion
746 | - fmt (~> 6.2.1)
747 | - glog
748 | - hermes-engine
749 | - RCT-Folly/Fabric (= 2022.05.16.00)
750 | - RCTRequired
751 | - RCTTypeSafety
752 | - React-Core
753 | - React-cxxreact
754 | - React-debug
755 | - React-graphics
756 | - React-jsi
757 | - React-jsiexecutor
758 | - React-logger
759 | - React-rendererdebug
760 | - React-runtimescheduler
761 | - React-utils
762 | - ReactCommon/turbomodule/core
763 | - React-Fabric/telemetry (0.73.4):
764 | - DoubleConversion
765 | - fmt (~> 6.2.1)
766 | - glog
767 | - hermes-engine
768 | - RCT-Folly/Fabric (= 2022.05.16.00)
769 | - RCTRequired
770 | - RCTTypeSafety
771 | - React-Core
772 | - React-cxxreact
773 | - React-debug
774 | - React-graphics
775 | - React-jsi
776 | - React-jsiexecutor
777 | - React-logger
778 | - React-rendererdebug
779 | - React-runtimescheduler
780 | - React-utils
781 | - ReactCommon/turbomodule/core
782 | - React-Fabric/templateprocessor (0.73.4):
783 | - DoubleConversion
784 | - fmt (~> 6.2.1)
785 | - glog
786 | - hermes-engine
787 | - RCT-Folly/Fabric (= 2022.05.16.00)
788 | - RCTRequired
789 | - RCTTypeSafety
790 | - React-Core
791 | - React-cxxreact
792 | - React-debug
793 | - React-graphics
794 | - React-jsi
795 | - React-jsiexecutor
796 | - React-logger
797 | - React-rendererdebug
798 | - React-runtimescheduler
799 | - React-utils
800 | - ReactCommon/turbomodule/core
801 | - React-Fabric/textlayoutmanager (0.73.4):
802 | - DoubleConversion
803 | - fmt (~> 6.2.1)
804 | - glog
805 | - hermes-engine
806 | - RCT-Folly/Fabric (= 2022.05.16.00)
807 | - RCTRequired
808 | - RCTTypeSafety
809 | - React-Core
810 | - React-cxxreact
811 | - React-debug
812 | - React-Fabric/uimanager
813 | - React-graphics
814 | - React-jsi
815 | - React-jsiexecutor
816 | - React-logger
817 | - React-rendererdebug
818 | - React-runtimescheduler
819 | - React-utils
820 | - ReactCommon/turbomodule/core
821 | - React-Fabric/uimanager (0.73.4):
822 | - DoubleConversion
823 | - fmt (~> 6.2.1)
824 | - glog
825 | - hermes-engine
826 | - RCT-Folly/Fabric (= 2022.05.16.00)
827 | - RCTRequired
828 | - RCTTypeSafety
829 | - React-Core
830 | - React-cxxreact
831 | - React-debug
832 | - React-graphics
833 | - React-jsi
834 | - React-jsiexecutor
835 | - React-logger
836 | - React-rendererdebug
837 | - React-runtimescheduler
838 | - React-utils
839 | - ReactCommon/turbomodule/core
840 | - React-FabricImage (0.73.4):
841 | - DoubleConversion
842 | - fmt (~> 6.2.1)
843 | - glog
844 | - hermes-engine
845 | - RCT-Folly/Fabric (= 2022.05.16.00)
846 | - RCTRequired (= 0.73.4)
847 | - RCTTypeSafety (= 0.73.4)
848 | - React-Fabric
849 | - React-graphics
850 | - React-ImageManager
851 | - React-jsi
852 | - React-jsiexecutor (= 0.73.4)
853 | - React-logger
854 | - React-rendererdebug
855 | - React-utils
856 | - ReactCommon
857 | - Yoga
858 | - React-graphics (0.73.4):
859 | - glog
860 | - RCT-Folly/Fabric (= 2022.05.16.00)
861 | - React-Core/Default (= 0.73.4)
862 | - React-utils
863 | - React-hermes (0.73.4):
864 | - DoubleConversion
865 | - fmt (~> 6.2.1)
866 | - glog
867 | - hermes-engine
868 | - RCT-Folly (= 2022.05.16.00)
869 | - RCT-Folly/Futures (= 2022.05.16.00)
870 | - React-cxxreact (= 0.73.4)
871 | - React-jsi
872 | - React-jsiexecutor (= 0.73.4)
873 | - React-jsinspector (= 0.73.4)
874 | - React-perflogger (= 0.73.4)
875 | - React-ImageManager (0.73.4):
876 | - glog
877 | - RCT-Folly/Fabric
878 | - React-Core/Default
879 | - React-debug
880 | - React-Fabric
881 | - React-graphics
882 | - React-rendererdebug
883 | - React-utils
884 | - React-jserrorhandler (0.73.4):
885 | - RCT-Folly/Fabric (= 2022.05.16.00)
886 | - React-debug
887 | - React-jsi
888 | - React-Mapbuffer
889 | - React-jsi (0.73.4):
890 | - boost (= 1.83.0)
891 | - DoubleConversion
892 | - fmt (~> 6.2.1)
893 | - glog
894 | - hermes-engine
895 | - RCT-Folly (= 2022.05.16.00)
896 | - React-jsiexecutor (0.73.4):
897 | - DoubleConversion
898 | - fmt (~> 6.2.1)
899 | - glog
900 | - hermes-engine
901 | - RCT-Folly (= 2022.05.16.00)
902 | - React-cxxreact (= 0.73.4)
903 | - React-jsi (= 0.73.4)
904 | - React-perflogger (= 0.73.4)
905 | - React-jsinspector (0.73.4)
906 | - React-logger (0.73.4):
907 | - glog
908 | - React-Mapbuffer (0.73.4):
909 | - glog
910 | - React-debug
911 | - React-nativeconfig (0.73.4)
912 | - React-NativeModulesApple (0.73.4):
913 | - glog
914 | - hermes-engine
915 | - React-callinvoker
916 | - React-Core
917 | - React-cxxreact
918 | - React-jsi
919 | - React-runtimeexecutor
920 | - ReactCommon/turbomodule/bridging
921 | - ReactCommon/turbomodule/core
922 | - React-perflogger (0.73.4)
923 | - React-RCTActionSheet (0.73.4):
924 | - React-Core/RCTActionSheetHeaders (= 0.73.4)
925 | - React-RCTAnimation (0.73.4):
926 | - RCT-Folly (= 2022.05.16.00)
927 | - RCTTypeSafety
928 | - React-Codegen
929 | - React-Core/RCTAnimationHeaders
930 | - React-jsi
931 | - React-NativeModulesApple
932 | - ReactCommon
933 | - React-RCTAppDelegate (0.73.4):
934 | - RCT-Folly
935 | - RCTRequired
936 | - RCTTypeSafety
937 | - React-Core
938 | - React-CoreModules
939 | - React-hermes
940 | - React-nativeconfig
941 | - React-NativeModulesApple
942 | - React-RCTFabric
943 | - React-RCTImage
944 | - React-RCTNetwork
945 | - React-runtimescheduler
946 | - ReactCommon
947 | - React-RCTBlob (0.73.4):
948 | - hermes-engine
949 | - RCT-Folly (= 2022.05.16.00)
950 | - React-Codegen
951 | - React-Core/RCTBlobHeaders
952 | - React-Core/RCTWebSocket
953 | - React-jsi
954 | - React-NativeModulesApple
955 | - React-RCTNetwork
956 | - ReactCommon
957 | - React-RCTFabric (0.73.4):
958 | - glog
959 | - hermes-engine
960 | - RCT-Folly/Fabric (= 2022.05.16.00)
961 | - React-Core
962 | - React-debug
963 | - React-Fabric
964 | - React-FabricImage
965 | - React-graphics
966 | - React-ImageManager
967 | - React-jsi
968 | - React-nativeconfig
969 | - React-RCTImage
970 | - React-RCTText
971 | - React-rendererdebug
972 | - React-runtimescheduler
973 | - React-utils
974 | - Yoga
975 | - React-RCTImage (0.73.4):
976 | - RCT-Folly (= 2022.05.16.00)
977 | - RCTTypeSafety
978 | - React-Codegen
979 | - React-Core/RCTImageHeaders
980 | - React-jsi
981 | - React-NativeModulesApple
982 | - React-RCTNetwork
983 | - ReactCommon
984 | - React-RCTLinking (0.73.4):
985 | - React-Codegen
986 | - React-Core/RCTLinkingHeaders (= 0.73.4)
987 | - React-jsi (= 0.73.4)
988 | - React-NativeModulesApple
989 | - ReactCommon
990 | - ReactCommon/turbomodule/core (= 0.73.4)
991 | - React-RCTNetwork (0.73.4):
992 | - RCT-Folly (= 2022.05.16.00)
993 | - RCTTypeSafety
994 | - React-Codegen
995 | - React-Core/RCTNetworkHeaders
996 | - React-jsi
997 | - React-NativeModulesApple
998 | - ReactCommon
999 | - React-RCTSettings (0.73.4):
1000 | - RCT-Folly (= 2022.05.16.00)
1001 | - RCTTypeSafety
1002 | - React-Codegen
1003 | - React-Core/RCTSettingsHeaders
1004 | - React-jsi
1005 | - React-NativeModulesApple
1006 | - ReactCommon
1007 | - React-RCTText (0.73.4):
1008 | - React-Core/RCTTextHeaders (= 0.73.4)
1009 | - Yoga
1010 | - React-RCTVibration (0.73.4):
1011 | - RCT-Folly (= 2022.05.16.00)
1012 | - React-Codegen
1013 | - React-Core/RCTVibrationHeaders
1014 | - React-jsi
1015 | - React-NativeModulesApple
1016 | - ReactCommon
1017 | - React-rendererdebug (0.73.4):
1018 | - DoubleConversion
1019 | - fmt (~> 6.2.1)
1020 | - RCT-Folly (= 2022.05.16.00)
1021 | - React-debug
1022 | - React-rncore (0.73.4)
1023 | - React-runtimeexecutor (0.73.4):
1024 | - React-jsi (= 0.73.4)
1025 | - React-runtimescheduler (0.73.4):
1026 | - glog
1027 | - hermes-engine
1028 | - RCT-Folly (= 2022.05.16.00)
1029 | - React-callinvoker
1030 | - React-cxxreact
1031 | - React-debug
1032 | - React-jsi
1033 | - React-rendererdebug
1034 | - React-runtimeexecutor
1035 | - React-utils
1036 | - React-utils (0.73.4):
1037 | - glog
1038 | - RCT-Folly (= 2022.05.16.00)
1039 | - React-debug
1040 | - ReactCommon (0.73.4):
1041 | - React-logger (= 0.73.4)
1042 | - ReactCommon/turbomodule (= 0.73.4)
1043 | - ReactCommon/turbomodule (0.73.4):
1044 | - DoubleConversion
1045 | - fmt (~> 6.2.1)
1046 | - glog
1047 | - hermes-engine
1048 | - RCT-Folly (= 2022.05.16.00)
1049 | - React-callinvoker (= 0.73.4)
1050 | - React-cxxreact (= 0.73.4)
1051 | - React-jsi (= 0.73.4)
1052 | - React-logger (= 0.73.4)
1053 | - React-perflogger (= 0.73.4)
1054 | - ReactCommon/turbomodule/bridging (= 0.73.4)
1055 | - ReactCommon/turbomodule/core (= 0.73.4)
1056 | - ReactCommon/turbomodule/bridging (0.73.4):
1057 | - DoubleConversion
1058 | - fmt (~> 6.2.1)
1059 | - glog
1060 | - hermes-engine
1061 | - RCT-Folly (= 2022.05.16.00)
1062 | - React-callinvoker (= 0.73.4)
1063 | - React-cxxreact (= 0.73.4)
1064 | - React-jsi (= 0.73.4)
1065 | - React-logger (= 0.73.4)
1066 | - React-perflogger (= 0.73.4)
1067 | - ReactCommon/turbomodule/core (0.73.4):
1068 | - DoubleConversion
1069 | - fmt (~> 6.2.1)
1070 | - glog
1071 | - hermes-engine
1072 | - RCT-Folly (= 2022.05.16.00)
1073 | - React-callinvoker (= 0.73.4)
1074 | - React-cxxreact (= 0.73.4)
1075 | - React-jsi (= 0.73.4)
1076 | - React-logger (= 0.73.4)
1077 | - React-perflogger (= 0.73.4)
1078 | - SocketRocket (0.6.1)
1079 | - SweetSFSymbols (0.5.0):
1080 | - ExpoModulesCore
1081 | - Yoga (1.14.0)
1082 |
1083 | DEPENDENCIES:
1084 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
1085 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
1086 | - EXConstants (from `../node_modules/expo-constants/ios`)
1087 | - EXFont (from `../node_modules/expo-font/ios`)
1088 | - Expo (from `../node_modules/expo`)
1089 | - ExpoFileSystem (from `../node_modules/expo-file-system/ios`)
1090 | - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
1091 | - ExpoModulesCore (from `../node_modules/expo-modules-core`)
1092 | - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`)
1093 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
1094 | - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
1095 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
1096 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
1097 | - libevent (~> 2.1.12)
1098 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
1099 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
1100 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
1101 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
1102 | - React (from `../node_modules/react-native/`)
1103 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
1104 | - React-Codegen (from `build/generated/ios`)
1105 | - React-Core (from `../node_modules/react-native/`)
1106 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
1107 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
1108 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
1109 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
1110 | - React-Fabric (from `../node_modules/react-native/ReactCommon`)
1111 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`)
1112 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
1113 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
1114 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
1115 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
1116 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
1117 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
1118 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
1119 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
1120 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
1121 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
1122 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
1123 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
1124 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
1125 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
1126 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
1127 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
1128 | - React-RCTFabric (from `../node_modules/react-native/React`)
1129 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
1130 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
1131 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
1132 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
1133 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
1134 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
1135 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`)
1136 | - React-rncore (from `../node_modules/react-native/ReactCommon`)
1137 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
1138 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
1139 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
1140 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
1141 | - SweetSFSymbols (from `../../ios`)
1142 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
1143 |
1144 | SPEC REPOS:
1145 | trunk:
1146 | - fmt
1147 | - libevent
1148 | - SocketRocket
1149 |
1150 | EXTERNAL SOURCES:
1151 | boost:
1152 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
1153 | DoubleConversion:
1154 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
1155 | EXConstants:
1156 | :path: "../node_modules/expo-constants/ios"
1157 | EXFont:
1158 | :path: "../node_modules/expo-font/ios"
1159 | Expo:
1160 | :path: "../node_modules/expo"
1161 | ExpoFileSystem:
1162 | :path: "../node_modules/expo-file-system/ios"
1163 | ExpoKeepAwake:
1164 | :path: "../node_modules/expo-keep-awake/ios"
1165 | ExpoModulesCore:
1166 | :path: "../node_modules/expo-modules-core"
1167 | EXSplashScreen:
1168 | :path: "../node_modules/expo-splash-screen/ios"
1169 | FBLazyVector:
1170 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
1171 | FBReactNativeSpec:
1172 | :path: "../node_modules/react-native/React/FBReactNativeSpec"
1173 | glog:
1174 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
1175 | hermes-engine:
1176 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
1177 | :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5
1178 | RCT-Folly:
1179 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
1180 | RCTRequired:
1181 | :path: "../node_modules/react-native/Libraries/RCTRequired"
1182 | RCTTypeSafety:
1183 | :path: "../node_modules/react-native/Libraries/TypeSafety"
1184 | React:
1185 | :path: "../node_modules/react-native/"
1186 | React-callinvoker:
1187 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
1188 | React-Codegen:
1189 | :path: build/generated/ios
1190 | React-Core:
1191 | :path: "../node_modules/react-native/"
1192 | React-CoreModules:
1193 | :path: "../node_modules/react-native/React/CoreModules"
1194 | React-cxxreact:
1195 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
1196 | React-debug:
1197 | :path: "../node_modules/react-native/ReactCommon/react/debug"
1198 | React-Fabric:
1199 | :path: "../node_modules/react-native/ReactCommon"
1200 | React-FabricImage:
1201 | :path: "../node_modules/react-native/ReactCommon"
1202 | React-graphics:
1203 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
1204 | React-hermes:
1205 | :path: "../node_modules/react-native/ReactCommon/hermes"
1206 | React-ImageManager:
1207 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
1208 | React-jserrorhandler:
1209 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler"
1210 | React-jsi:
1211 | :path: "../node_modules/react-native/ReactCommon/jsi"
1212 | React-jsiexecutor:
1213 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
1214 | React-jsinspector:
1215 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern"
1216 | React-logger:
1217 | :path: "../node_modules/react-native/ReactCommon/logger"
1218 | React-Mapbuffer:
1219 | :path: "../node_modules/react-native/ReactCommon"
1220 | React-nativeconfig:
1221 | :path: "../node_modules/react-native/ReactCommon"
1222 | React-NativeModulesApple:
1223 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
1224 | React-perflogger:
1225 | :path: "../node_modules/react-native/ReactCommon/reactperflogger"
1226 | React-RCTActionSheet:
1227 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
1228 | React-RCTAnimation:
1229 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
1230 | React-RCTAppDelegate:
1231 | :path: "../node_modules/react-native/Libraries/AppDelegate"
1232 | React-RCTBlob:
1233 | :path: "../node_modules/react-native/Libraries/Blob"
1234 | React-RCTFabric:
1235 | :path: "../node_modules/react-native/React"
1236 | React-RCTImage:
1237 | :path: "../node_modules/react-native/Libraries/Image"
1238 | React-RCTLinking:
1239 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
1240 | React-RCTNetwork:
1241 | :path: "../node_modules/react-native/Libraries/Network"
1242 | React-RCTSettings:
1243 | :path: "../node_modules/react-native/Libraries/Settings"
1244 | React-RCTText:
1245 | :path: "../node_modules/react-native/Libraries/Text"
1246 | React-RCTVibration:
1247 | :path: "../node_modules/react-native/Libraries/Vibration"
1248 | React-rendererdebug:
1249 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug"
1250 | React-rncore:
1251 | :path: "../node_modules/react-native/ReactCommon"
1252 | React-runtimeexecutor:
1253 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
1254 | React-runtimescheduler:
1255 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
1256 | React-utils:
1257 | :path: "../node_modules/react-native/ReactCommon/react/utils"
1258 | ReactCommon:
1259 | :path: "../node_modules/react-native/ReactCommon"
1260 | SweetSFSymbols:
1261 | :path: "../../ios"
1262 | Yoga:
1263 | :path: "../node_modules/react-native/ReactCommon/yoga"
1264 |
1265 | SPEC CHECKSUMS:
1266 | boost: d3f49c53809116a5d38da093a8aa78bf551aed09
1267 | DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953
1268 | EXConstants: 988aa430ca0f76b43cd46b66e7fae3287f9cc2fc
1269 | EXFont: f20669cb266ef48b004f1eb1f2b20db96cd1df9f
1270 | Expo: e01a77c6fa4bc80a6d1bb949cda1d12d21044abd
1271 | ExpoFileSystem: eecaf6796aed0f4dd20042dc2ca2cac6c4bc1185
1272 | ExpoKeepAwake: 0f5cad99603a3268e50af9a6eb8b76d0d9ac956c
1273 | ExpoModulesCore: 61dc57c6e2a35f2f84baf488146db624e03af4cd
1274 | EXSplashScreen: 39244885abfb1b12765aae89edb90f8c88db6bbd
1275 | FBLazyVector: 84f6edbe225f38aebd9deaf1540a4160b1f087d7
1276 | FBReactNativeSpec: d0086a479be91c44ce4687a962956a352d2dc697
1277 | fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
1278 | glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2
1279 | hermes-engine: b2669ce35fc4ac14f523b307aff8896799829fe2
1280 | libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
1281 | RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0
1282 | RCTRequired: ab7f915c15569f04a49669e573e6e319a53f9faa
1283 | RCTTypeSafety: 63b97ced7b766865057e7154db0e81ce4ee6cf1e
1284 | React: 1c87497e50fa40ba9c54e5ea5e53483a0f8eecc0
1285 | React-callinvoker: e3a52a9a93e3eb004d7282c26a4fb27003273fe6
1286 | React-Codegen: 50c0f8f073e71b929b057b68bf31be604f1dccc8
1287 | React-Core: d0ecde72894b792cb8922efaa0990199cbe85169
1288 | React-CoreModules: 2ff1684dd517f0c441495d90a704d499f05e9d0a
1289 | React-cxxreact: d9be2fac926741052395da0a6d0bab8d71e2f297
1290 | React-debug: 4678e73a37cb501d784e99ff0f219b4940362a3b
1291 | React-Fabric: 460ee9d4b8b9de3382504a711430bfead1d5be1e
1292 | React-FabricImage: d0a0631bc8ad9143f42bfccf9d3d533a144cc3d6
1293 | React-graphics: f0d5040263a9649e2a70ebe27b3120c49411afef
1294 | React-hermes: b9ac2f7b0c1eeb206eb883583cab7a973d570a6e
1295 | React-ImageManager: 6c4bf9d5ed363ead7b5aaf820a3feab221b7063e
1296 | React-jserrorhandler: 6e7a7e187583e14dc7a0053a2bdd66c252ea3b21
1297 | React-jsi: 380cd24dd81a705dd042c18989fb10b07182210c
1298 | React-jsiexecutor: 8ed7a18b9f119440efdcd424c8257dc7e18067e2
1299 | React-jsinspector: 9ac353eccf6ab54d1e0a33862ba91221d1e88460
1300 | React-logger: 0a57b68dd2aec7ff738195f081f0520724b35dab
1301 | React-Mapbuffer: 63913773ed7f96b814a2521e13e6d010282096ad
1302 | React-nativeconfig: d7af5bae6da70fa15ce44f045621cf99ed24087c
1303 | React-NativeModulesApple: 0123905d5699853ac68519607555a9a4f5c7b3ac
1304 | React-perflogger: 8a1e1af5733004bdd91258dcefbde21e0d1faccd
1305 | React-RCTActionSheet: 64bbff3a3963664c2d0146f870fe8e0264aee4c4
1306 | React-RCTAnimation: b698168a7269265a4694727196484342d695f0c1
1307 | React-RCTAppDelegate: dcd8e955116eb1d1908dfaf08b4c970812e6a1e6
1308 | React-RCTBlob: 47f8c3b2b4b7fa2c5f19c43f0b7f77f57fb9d953
1309 | React-RCTFabric: 6067a32d683d0c2b84d444548bc15a263c64abed
1310 | React-RCTImage: ac0e77a44c290b20db783649b2b9cddc93e3eb99
1311 | React-RCTLinking: e626fd2900913fe5d25922ea1be394b7aafa09c9
1312 | React-RCTNetwork: d3114bce3977dafe8bd06421b29812f5a8527ba0
1313 | React-RCTSettings: a53511f90d8df637a1a11ac729179a4d2f734481
1314 | React-RCTText: f0176f5f5952f9a4a2c7354f5ae71f7c420aaf34
1315 | React-RCTVibration: 8160223c6eda5b187079fec204f80eca8b8f3177
1316 | React-rendererdebug: ed286b4da8648c27d6ed3ae1410d4b21ba890d5a
1317 | React-rncore: 43f133b89ac10c4b6ab43702a541dee1c292a3bf
1318 | React-runtimeexecutor: e6ab6bb083dbdbdd489cff426ed0bce0652e6edf
1319 | React-runtimescheduler: ed48e5faac6751e66ee1261c4bd01643b436f112
1320 | React-utils: 6e5ad394416482ae21831050928ae27348f83487
1321 | ReactCommon: 840a955d37b7f3358554d819446bffcf624b2522
1322 | SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
1323 | SweetSFSymbols: e758921afd1b48cb9d3ebf1528dbf718a88b6ff7
1324 | Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312
1325 |
1326 | PODFILE CHECKSUM: 36944b4c3a4b04c12ee3cae19a0f3cad14cab65c
1327 |
1328 | COCOAPODS: 1.13.0
1329 |
--------------------------------------------------------------------------------
/example/ios/Podfile.properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo.jsEngine": "hermes",
3 | "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true"
4 | }
5 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
11 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
12 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
13 | 2FD57AF563F64E7C9ADC07C6 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = A716C875C5A84FE6AC19F831 /* noop-file.swift */; };
14 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
15 | 96905EF65AED1B983A6B3ABC /* libPods-sweetsfsymbolsexample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-sweetsfsymbolsexample.a */; };
16 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; };
17 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
18 | /* End PBXBuildFile section */
19 |
20 | /* Begin PBXFileReference section */
21 | 13B07F961A680F5B00A75B9A /* sweetsfsymbolsexample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = sweetsfsymbolsexample.app; sourceTree = BUILT_PRODUCTS_DIR; };
22 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = sweetsfsymbolsexample/AppDelegate.h; sourceTree = ""; };
23 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = sweetsfsymbolsexample/AppDelegate.mm; sourceTree = ""; };
24 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = sweetsfsymbolsexample/Images.xcassets; sourceTree = ""; };
25 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = sweetsfsymbolsexample/Info.plist; sourceTree = ""; };
26 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = sweetsfsymbolsexample/main.m; sourceTree = ""; };
27 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-sweetsfsymbolsexample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-sweetsfsymbolsexample.a"; sourceTree = BUILT_PRODUCTS_DIR; };
28 | 6C2E3173556A471DD304B334 /* Pods-sweetsfsymbolsexample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sweetsfsymbolsexample.debug.xcconfig"; path = "Target Support Files/Pods-sweetsfsymbolsexample/Pods-sweetsfsymbolsexample.debug.xcconfig"; sourceTree = ""; };
29 | 6C740913DB094E448CB8DB26 /* sweetsfsymbolsexample-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "sweetsfsymbolsexample-Bridging-Header.h"; path = "sweetsfsymbolsexample/sweetsfsymbolsexample-Bridging-Header.h"; sourceTree = ""; };
30 | 7A4D352CD337FB3A3BF06240 /* Pods-sweetsfsymbolsexample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sweetsfsymbolsexample.release.xcconfig"; path = "Target Support Files/Pods-sweetsfsymbolsexample/Pods-sweetsfsymbolsexample.release.xcconfig"; sourceTree = ""; };
31 | A716C875C5A84FE6AC19F831 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "sweetsfsymbolsexample/noop-file.swift"; sourceTree = ""; };
32 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = sweetsfsymbolsexample/SplashScreen.storyboard; sourceTree = ""; };
33 | BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; };
34 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
35 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-sweetsfsymbolsexample/ExpoModulesProvider.swift"; sourceTree = ""; };
36 | /* End PBXFileReference section */
37 |
38 | /* Begin PBXFrameworksBuildPhase section */
39 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
40 | isa = PBXFrameworksBuildPhase;
41 | buildActionMask = 2147483647;
42 | files = (
43 | 96905EF65AED1B983A6B3ABC /* libPods-sweetsfsymbolsexample.a in Frameworks */,
44 | );
45 | runOnlyForDeploymentPostprocessing = 0;
46 | };
47 | /* End PBXFrameworksBuildPhase section */
48 |
49 | /* Begin PBXGroup section */
50 | 13B07FAE1A68108700A75B9A /* sweetsfsymbolsexample */ = {
51 | isa = PBXGroup;
52 | children = (
53 | BB2F792B24A3F905000567C9 /* Supporting */,
54 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
55 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
56 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
57 | 13B07FB61A68108700A75B9A /* Info.plist */,
58 | 13B07FB71A68108700A75B9A /* main.m */,
59 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
60 | A716C875C5A84FE6AC19F831 /* noop-file.swift */,
61 | 6C740913DB094E448CB8DB26 /* sweetsfsymbolsexample-Bridging-Header.h */,
62 | );
63 | name = sweetsfsymbolsexample;
64 | sourceTree = "";
65 | };
66 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
67 | isa = PBXGroup;
68 | children = (
69 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
70 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-sweetsfsymbolsexample.a */,
71 | );
72 | name = Frameworks;
73 | sourceTree = "";
74 | };
75 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
76 | isa = PBXGroup;
77 | children = (
78 | );
79 | name = Libraries;
80 | sourceTree = "";
81 | };
82 | 83CBB9F61A601CBA00E9B192 = {
83 | isa = PBXGroup;
84 | children = (
85 | 13B07FAE1A68108700A75B9A /* sweetsfsymbolsexample */,
86 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
87 | 83CBBA001A601CBA00E9B192 /* Products */,
88 | 2D16E6871FA4F8E400B85C8A /* Frameworks */,
89 | D65327D7A22EEC0BE12398D9 /* Pods */,
90 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */,
91 | );
92 | indentWidth = 2;
93 | sourceTree = "";
94 | tabWidth = 2;
95 | usesTabs = 0;
96 | };
97 | 83CBBA001A601CBA00E9B192 /* Products */ = {
98 | isa = PBXGroup;
99 | children = (
100 | 13B07F961A680F5B00A75B9A /* sweetsfsymbolsexample.app */,
101 | );
102 | name = Products;
103 | sourceTree = "";
104 | };
105 | 92DBD88DE9BF7D494EA9DA96 /* sweetsfsymbolsexample */ = {
106 | isa = PBXGroup;
107 | children = (
108 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */,
109 | );
110 | name = sweetsfsymbolsexample;
111 | sourceTree = "";
112 | };
113 | BB2F792B24A3F905000567C9 /* Supporting */ = {
114 | isa = PBXGroup;
115 | children = (
116 | BB2F792C24A3F905000567C9 /* Expo.plist */,
117 | );
118 | name = Supporting;
119 | path = sweetsfsymbolsexample/Supporting;
120 | sourceTree = "";
121 | };
122 | D65327D7A22EEC0BE12398D9 /* Pods */ = {
123 | isa = PBXGroup;
124 | children = (
125 | 6C2E3173556A471DD304B334 /* Pods-sweetsfsymbolsexample.debug.xcconfig */,
126 | 7A4D352CD337FB3A3BF06240 /* Pods-sweetsfsymbolsexample.release.xcconfig */,
127 | );
128 | path = Pods;
129 | sourceTree = "";
130 | };
131 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = {
132 | isa = PBXGroup;
133 | children = (
134 | 92DBD88DE9BF7D494EA9DA96 /* sweetsfsymbolsexample */,
135 | );
136 | name = ExpoModulesProviders;
137 | sourceTree = "";
138 | };
139 | /* End PBXGroup section */
140 |
141 | /* Begin PBXNativeTarget section */
142 | 13B07F861A680F5B00A75B9A /* sweetsfsymbolsexample */ = {
143 | isa = PBXNativeTarget;
144 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "sweetsfsymbolsexample" */;
145 | buildPhases = (
146 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
147 | 3D8BA16DEF7F5ECE3C3E7435 /* [Expo] Configure project */,
148 | 13B07F871A680F5B00A75B9A /* Sources */,
149 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
150 | 13B07F8E1A680F5B00A75B9A /* Resources */,
151 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
152 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
153 | AB528606EDA4BF19C260BFAC /* [CP] Embed Pods Frameworks */,
154 | );
155 | buildRules = (
156 | );
157 | dependencies = (
158 | );
159 | name = sweetsfsymbolsexample;
160 | productName = sweetsfsymbolsexample;
161 | productReference = 13B07F961A680F5B00A75B9A /* sweetsfsymbolsexample.app */;
162 | productType = "com.apple.product-type.application";
163 | };
164 | /* End PBXNativeTarget section */
165 |
166 | /* Begin PBXProject section */
167 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
168 | isa = PBXProject;
169 | attributes = {
170 | LastUpgradeCheck = 1130;
171 | TargetAttributes = {
172 | 13B07F861A680F5B00A75B9A = {
173 | LastSwiftMigration = 1250;
174 | };
175 | };
176 | };
177 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "sweetsfsymbolsexample" */;
178 | compatibilityVersion = "Xcode 3.2";
179 | developmentRegion = en;
180 | hasScannedForEncodings = 0;
181 | knownRegions = (
182 | en,
183 | Base,
184 | );
185 | mainGroup = 83CBB9F61A601CBA00E9B192;
186 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
187 | projectDirPath = "";
188 | projectRoot = "";
189 | targets = (
190 | 13B07F861A680F5B00A75B9A /* sweetsfsymbolsexample */,
191 | );
192 | };
193 | /* End PBXProject section */
194 |
195 | /* Begin PBXResourcesBuildPhase section */
196 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
197 | isa = PBXResourcesBuildPhase;
198 | buildActionMask = 2147483647;
199 | files = (
200 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */,
201 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
202 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */,
203 | );
204 | runOnlyForDeploymentPostprocessing = 0;
205 | };
206 | /* End PBXResourcesBuildPhase section */
207 |
208 | /* Begin PBXShellScriptBuildPhase section */
209 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
210 | isa = PBXShellScriptBuildPhase;
211 | alwaysOutOfDate = 1;
212 | buildActionMask = 2147483647;
213 | files = (
214 | );
215 | inputPaths = (
216 | );
217 | name = "Bundle React Native code and images";
218 | outputPaths = (
219 | );
220 | runOnlyForDeploymentPostprocessing = 0;
221 | shellPath = /bin/sh;
222 | shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios relative | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
223 | };
224 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
225 | isa = PBXShellScriptBuildPhase;
226 | buildActionMask = 2147483647;
227 | files = (
228 | );
229 | inputFileListPaths = (
230 | );
231 | inputPaths = (
232 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
233 | "${PODS_ROOT}/Manifest.lock",
234 | );
235 | name = "[CP] Check Pods Manifest.lock";
236 | outputFileListPaths = (
237 | );
238 | outputPaths = (
239 | "$(DERIVED_FILE_DIR)/Pods-sweetsfsymbolsexample-checkManifestLockResult.txt",
240 | );
241 | runOnlyForDeploymentPostprocessing = 0;
242 | shellPath = /bin/sh;
243 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
244 | showEnvVarsInLog = 0;
245 | };
246 | 3D8BA16DEF7F5ECE3C3E7435 /* [Expo] Configure project */ = {
247 | isa = PBXShellScriptBuildPhase;
248 | alwaysOutOfDate = 1;
249 | buildActionMask = 2147483647;
250 | files = (
251 | );
252 | inputFileListPaths = (
253 | );
254 | inputPaths = (
255 | );
256 | name = "[Expo] Configure project";
257 | outputFileListPaths = (
258 | );
259 | outputPaths = (
260 | );
261 | runOnlyForDeploymentPostprocessing = 0;
262 | shellPath = /bin/sh;
263 | shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-sweetsfsymbolsexample/expo-configure-project.sh\"\n";
264 | };
265 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = {
266 | isa = PBXShellScriptBuildPhase;
267 | buildActionMask = 2147483647;
268 | files = (
269 | );
270 | inputPaths = (
271 | "${PODS_ROOT}/Target Support Files/Pods-sweetsfsymbolsexample/Pods-sweetsfsymbolsexample-resources.sh",
272 | "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
273 | "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
274 | );
275 | name = "[CP] Copy Pods Resources";
276 | outputPaths = (
277 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
278 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
279 | );
280 | runOnlyForDeploymentPostprocessing = 0;
281 | shellPath = /bin/sh;
282 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-sweetsfsymbolsexample/Pods-sweetsfsymbolsexample-resources.sh\"\n";
283 | showEnvVarsInLog = 0;
284 | };
285 | AB528606EDA4BF19C260BFAC /* [CP] Embed Pods Frameworks */ = {
286 | isa = PBXShellScriptBuildPhase;
287 | buildActionMask = 2147483647;
288 | files = (
289 | );
290 | inputPaths = (
291 | "${PODS_ROOT}/Target Support Files/Pods-sweetsfsymbolsexample/Pods-sweetsfsymbolsexample-frameworks.sh",
292 | "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
293 | );
294 | name = "[CP] Embed Pods Frameworks";
295 | outputPaths = (
296 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
297 | );
298 | runOnlyForDeploymentPostprocessing = 0;
299 | shellPath = /bin/sh;
300 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-sweetsfsymbolsexample/Pods-sweetsfsymbolsexample-frameworks.sh\"\n";
301 | showEnvVarsInLog = 0;
302 | };
303 | /* End PBXShellScriptBuildPhase section */
304 |
305 | /* Begin PBXSourcesBuildPhase section */
306 | 13B07F871A680F5B00A75B9A /* Sources */ = {
307 | isa = PBXSourcesBuildPhase;
308 | buildActionMask = 2147483647;
309 | files = (
310 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
311 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
312 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
313 | 2FD57AF563F64E7C9ADC07C6 /* noop-file.swift in Sources */,
314 | );
315 | runOnlyForDeploymentPostprocessing = 0;
316 | };
317 | /* End PBXSourcesBuildPhase section */
318 |
319 | /* Begin XCBuildConfiguration section */
320 | 13B07F941A680F5B00A75B9A /* Debug */ = {
321 | isa = XCBuildConfiguration;
322 | baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-sweetsfsymbolsexample.debug.xcconfig */;
323 | buildSettings = {
324 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
325 | CLANG_ENABLE_MODULES = YES;
326 | CODE_SIGN_ENTITLEMENTS = sweetsfsymbolsexample/sweetsfsymbolsexample.entitlements;
327 | CURRENT_PROJECT_VERSION = 1;
328 | ENABLE_BITCODE = NO;
329 | GCC_PREPROCESSOR_DEFINITIONS = (
330 | "$(inherited)",
331 | "FB_SONARKIT_ENABLED=1",
332 | );
333 | INFOPLIST_FILE = sweetsfsymbolsexample/Info.plist;
334 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
335 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
336 | MARKETING_VERSION = 1.0;
337 | OTHER_LDFLAGS = (
338 | "$(inherited)",
339 | "-ObjC",
340 | "-lc++",
341 | );
342 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
343 | PRODUCT_BUNDLE_IDENTIFIER = expo.modules.sweetsfsymbols.example;
344 | PRODUCT_NAME = sweetsfsymbolsexample;
345 | SWIFT_OBJC_BRIDGING_HEADER = "sweetsfsymbolsexample/sweetsfsymbolsexample-Bridging-Header.h";
346 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
347 | SWIFT_VERSION = 5.0;
348 | TARGETED_DEVICE_FAMILY = "1,2";
349 | VERSIONING_SYSTEM = "apple-generic";
350 | };
351 | name = Debug;
352 | };
353 | 13B07F951A680F5B00A75B9A /* Release */ = {
354 | isa = XCBuildConfiguration;
355 | baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-sweetsfsymbolsexample.release.xcconfig */;
356 | buildSettings = {
357 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
358 | CLANG_ENABLE_MODULES = YES;
359 | CODE_SIGN_ENTITLEMENTS = sweetsfsymbolsexample/sweetsfsymbolsexample.entitlements;
360 | CURRENT_PROJECT_VERSION = 1;
361 | INFOPLIST_FILE = sweetsfsymbolsexample/Info.plist;
362 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
363 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
364 | MARKETING_VERSION = 1.0;
365 | OTHER_LDFLAGS = (
366 | "$(inherited)",
367 | "-ObjC",
368 | "-lc++",
369 | );
370 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
371 | PRODUCT_BUNDLE_IDENTIFIER = expo.modules.sweetsfsymbols.example;
372 | PRODUCT_NAME = sweetsfsymbolsexample;
373 | SWIFT_OBJC_BRIDGING_HEADER = "sweetsfsymbolsexample/sweetsfsymbolsexample-Bridging-Header.h";
374 | SWIFT_VERSION = 5.0;
375 | TARGETED_DEVICE_FAMILY = "1,2";
376 | VERSIONING_SYSTEM = "apple-generic";
377 | };
378 | name = Release;
379 | };
380 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
381 | isa = XCBuildConfiguration;
382 | buildSettings = {
383 | ALWAYS_SEARCH_USER_PATHS = NO;
384 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
385 | CLANG_CXX_LANGUAGE_STANDARD = "c++20";
386 | CLANG_CXX_LIBRARY = "libc++";
387 | CLANG_ENABLE_MODULES = YES;
388 | CLANG_ENABLE_OBJC_ARC = YES;
389 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
390 | CLANG_WARN_BOOL_CONVERSION = YES;
391 | CLANG_WARN_COMMA = YES;
392 | CLANG_WARN_CONSTANT_CONVERSION = YES;
393 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
394 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
395 | CLANG_WARN_EMPTY_BODY = YES;
396 | CLANG_WARN_ENUM_CONVERSION = YES;
397 | CLANG_WARN_INFINITE_RECURSION = YES;
398 | CLANG_WARN_INT_CONVERSION = YES;
399 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
400 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
401 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
402 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
403 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
404 | CLANG_WARN_STRICT_PROTOTYPES = YES;
405 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
406 | CLANG_WARN_UNREACHABLE_CODE = YES;
407 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
408 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
409 | COPY_PHASE_STRIP = NO;
410 | ENABLE_STRICT_OBJC_MSGSEND = YES;
411 | ENABLE_TESTABILITY = YES;
412 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
413 | GCC_C_LANGUAGE_STANDARD = gnu99;
414 | GCC_DYNAMIC_NO_PIC = NO;
415 | GCC_NO_COMMON_BLOCKS = YES;
416 | GCC_OPTIMIZATION_LEVEL = 0;
417 | GCC_PREPROCESSOR_DEFINITIONS = (
418 | "DEBUG=1",
419 | "$(inherited)",
420 | );
421 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
422 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
423 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
424 | GCC_WARN_UNDECLARED_SELECTOR = YES;
425 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
426 | GCC_WARN_UNUSED_FUNCTION = YES;
427 | GCC_WARN_UNUSED_VARIABLE = YES;
428 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
429 | LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
430 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
431 | MTL_ENABLE_DEBUG_INFO = YES;
432 | ONLY_ACTIVE_ARCH = YES;
433 | OTHER_CFLAGS = "$(inherited)";
434 | OTHER_CPLUSPLUSFLAGS = "$(inherited)";
435 | OTHER_LDFLAGS = (
436 | "$(inherited)",
437 | " ",
438 | );
439 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
440 | SDKROOT = iphoneos;
441 | USE_HERMES = true;
442 | };
443 | name = Debug;
444 | };
445 | 83CBBA211A601CBA00E9B192 /* Release */ = {
446 | isa = XCBuildConfiguration;
447 | buildSettings = {
448 | ALWAYS_SEARCH_USER_PATHS = NO;
449 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
450 | CLANG_CXX_LANGUAGE_STANDARD = "c++20";
451 | CLANG_CXX_LIBRARY = "libc++";
452 | CLANG_ENABLE_MODULES = YES;
453 | CLANG_ENABLE_OBJC_ARC = YES;
454 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
455 | CLANG_WARN_BOOL_CONVERSION = YES;
456 | CLANG_WARN_COMMA = YES;
457 | CLANG_WARN_CONSTANT_CONVERSION = YES;
458 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
459 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
460 | CLANG_WARN_EMPTY_BODY = YES;
461 | CLANG_WARN_ENUM_CONVERSION = YES;
462 | CLANG_WARN_INFINITE_RECURSION = YES;
463 | CLANG_WARN_INT_CONVERSION = YES;
464 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
465 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
466 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
467 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
468 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
469 | CLANG_WARN_STRICT_PROTOTYPES = YES;
470 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
471 | CLANG_WARN_UNREACHABLE_CODE = YES;
472 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
473 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
474 | COPY_PHASE_STRIP = YES;
475 | ENABLE_NS_ASSERTIONS = NO;
476 | ENABLE_STRICT_OBJC_MSGSEND = YES;
477 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
478 | GCC_C_LANGUAGE_STANDARD = gnu99;
479 | GCC_NO_COMMON_BLOCKS = YES;
480 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
481 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
482 | GCC_WARN_UNDECLARED_SELECTOR = YES;
483 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
484 | GCC_WARN_UNUSED_FUNCTION = YES;
485 | GCC_WARN_UNUSED_VARIABLE = YES;
486 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
487 | LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
488 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
489 | MTL_ENABLE_DEBUG_INFO = NO;
490 | OTHER_CFLAGS = "$(inherited)";
491 | OTHER_CPLUSPLUSFLAGS = "$(inherited)";
492 | OTHER_LDFLAGS = (
493 | "$(inherited)",
494 | " ",
495 | );
496 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
497 | SDKROOT = iphoneos;
498 | USE_HERMES = true;
499 | VALIDATE_PRODUCT = YES;
500 | };
501 | name = Release;
502 | };
503 | /* End XCBuildConfiguration section */
504 |
505 | /* Begin XCConfigurationList section */
506 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "sweetsfsymbolsexample" */ = {
507 | isa = XCConfigurationList;
508 | buildConfigurations = (
509 | 13B07F941A680F5B00A75B9A /* Debug */,
510 | 13B07F951A680F5B00A75B9A /* Release */,
511 | );
512 | defaultConfigurationIsVisible = 0;
513 | defaultConfigurationName = Release;
514 | };
515 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "sweetsfsymbolsexample" */ = {
516 | isa = XCConfigurationList;
517 | buildConfigurations = (
518 | 83CBBA201A601CBA00E9B192 /* Debug */,
519 | 83CBBA211A601CBA00E9B192 /* Release */,
520 | );
521 | defaultConfigurationIsVisible = 0;
522 | defaultConfigurationName = Release;
523 | };
524 | /* End XCConfigurationList section */
525 | };
526 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
527 | }
528 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample.xcodeproj/xcshareddata/xcschemes/sweetsfsymbolsexample.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import
4 |
5 | @interface AppDelegate : EXAppDelegateWrapper
6 |
7 | @end
8 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/AppDelegate.mm:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 |
3 | #import
4 | #import
5 |
6 | @implementation AppDelegate
7 |
8 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
9 | {
10 | self.moduleName = @"main";
11 |
12 | // You can add your custom initial props in the dictionary below.
13 | // They will be passed down to the ViewController used by React Native.
14 | self.initialProps = @{};
15 |
16 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
17 | }
18 |
19 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
20 | {
21 | return [self getBundleURL];
22 | }
23 |
24 | - (NSURL *)getBundleURL
25 | {
26 | #if DEBUG
27 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"];
28 | #else
29 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
30 | #endif
31 | }
32 |
33 | // Linking API
34 | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {
35 | return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
36 | }
37 |
38 | // Universal Links
39 | - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler {
40 | BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
41 | return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result;
42 | }
43 |
44 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
45 | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
46 | {
47 | return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
48 | }
49 |
50 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
51 | - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
52 | {
53 | return [super application:application didFailToRegisterForRemoteNotificationsWithError:error];
54 | }
55 |
56 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
57 | - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
58 | {
59 | return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
60 | }
61 |
62 | @end
63 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/ios/sweetsfsymbolsexample/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "filename": "App-Icon-1024x1024@1x.png",
5 | "idiom": "universal",
6 | "platform": "ios",
7 | "size": "1024x1024"
8 | }
9 | ],
10 | "info": {
11 | "version": 1,
12 | "author": "expo"
13 | }
14 | }
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "expo"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/SplashScreen.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "image.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "scale": "2x"
11 | },
12 | {
13 | "idiom": "universal",
14 | "scale": "3x"
15 | }
16 | ],
17 | "info": {
18 | "version": 1,
19 | "author": "expo"
20 | }
21 | }
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/SplashScreen.imageset/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/ios/sweetsfsymbolsexample/Images.xcassets/SplashScreen.imageset/image.png
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/SplashScreenBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "image.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "scale": "2x"
11 | },
12 | {
13 | "idiom": "universal",
14 | "scale": "3x"
15 | }
16 | ],
17 | "info": {
18 | "version": 1,
19 | "author": "expo"
20 | }
21 | }
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Images.xcassets/SplashScreenBackground.imageset/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/andrew-levy/sweet-sfsymbols/9c61760c763ffdef6ae784bbb5da0e60f353dc6f/example/ios/sweetsfsymbolsexample/Images.xcassets/SplashScreenBackground.imageset/image.png
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CADisableMinimumFrameDurationOnPhone
6 |
7 | CFBundleDevelopmentRegion
8 | $(DEVELOPMENT_LANGUAGE)
9 | CFBundleDisplayName
10 | sweet-sfsymbols-example
11 | CFBundleExecutable
12 | $(EXECUTABLE_NAME)
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | $(PRODUCT_NAME)
19 | CFBundlePackageType
20 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
21 | CFBundleShortVersionString
22 | 1.0.0
23 | CFBundleSignature
24 | ????
25 | CFBundleURLTypes
26 |
27 |
28 | CFBundleURLSchemes
29 |
30 | expo.modules.sweetsfsymbols.example
31 |
32 |
33 |
34 | CFBundleVersion
35 | 1
36 | LSRequiresIPhoneOS
37 |
38 | NSAppTransportSecurity
39 |
40 | NSAllowsArbitraryLoads
41 |
42 | NSAllowsLocalNetworking
43 |
44 |
45 | UILaunchStoryboardName
46 | SplashScreen
47 | UIRequiredDeviceCapabilities
48 |
49 | armv7
50 |
51 | UIRequiresFullScreen
52 |
53 | UIStatusBarStyle
54 | UIStatusBarStyleDefault
55 | UISupportedInterfaceOrientations
56 |
57 | UIInterfaceOrientationPortrait
58 | UIInterfaceOrientationPortraitUpsideDown
59 |
60 | UISupportedInterfaceOrientations~ipad
61 |
62 | UIInterfaceOrientationPortrait
63 | UIInterfaceOrientationPortraitUpsideDown
64 | UIInterfaceOrientationLandscapeLeft
65 | UIInterfaceOrientationLandscapeRight
66 |
67 | UIUserInterfaceStyle
68 | Light
69 | UIViewControllerBasedStatusBarAppearance
70 |
71 |
72 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/SplashScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/Supporting/Expo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EXUpdatesCheckOnLaunch
6 | ALWAYS
7 | EXUpdatesEnabled
8 |
9 | EXUpdatesLaunchWaitMs
10 | 0
11 | EXUpdatesSDKVersion
12 | 50.0.0
13 |
14 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/main.m:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char * argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/noop-file.swift:
--------------------------------------------------------------------------------
1 | //
2 | // @generated
3 | // A blank Swift file must be created for native modules with Swift files to work correctly.
4 | //
5 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/sweetsfsymbolsexample-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
--------------------------------------------------------------------------------
/example/ios/sweetsfsymbolsexample/sweetsfsymbolsexample.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 |
8 |
--------------------------------------------------------------------------------
/example/metro.config.js:
--------------------------------------------------------------------------------
1 | // Learn more https://docs.expo.io/guides/customizing-metro
2 | const { getDefaultConfig } = require('expo/metro-config');
3 | const path = require('path');
4 |
5 | const config = getDefaultConfig(__dirname);
6 |
7 | // npm v7+ will install ../node_modules/react-native because of peerDependencies.
8 | // To prevent the incompatible react-native bewtween ./node_modules/react-native and ../node_modules/react-native,
9 | // excludes the one from the parent folder when bundling.
10 | config.resolver.blockList = [
11 | ...Array.from(config.resolver.blockList ?? []),
12 | new RegExp(path.resolve('..', 'node_modules', 'react-native')),
13 | ];
14 |
15 | config.resolver.nodeModulesPaths = [
16 | path.resolve(__dirname, './node_modules'),
17 | path.resolve(__dirname, '../node_modules'),
18 | ];
19 |
20 | config.watchFolders = [path.resolve(__dirname, '..')];
21 |
22 | config.transformer.getTransformOptions = async () => ({
23 | transform: {
24 | experimentalImportSupport: false,
25 | inlineRequires: true,
26 | },
27 | });
28 |
29 | module.exports = config;
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sweet-sfsymbols-example",
3 | "version": "1.0.0",
4 | "main": "node_modules/expo/AppEntry.js",
5 | "scripts": {
6 | "start": "expo start",
7 | "android": "expo run:android",
8 | "ios": "expo run:ios",
9 | "web": "expo start --web"
10 | },
11 | "dependencies": {
12 | "expo": "^50.0.14",
13 | "expo-splash-screen": "~0.26.4",
14 | "expo-status-bar": "~1.11.1",
15 | "react": "18.2.0",
16 | "react-native": "0.73.4"
17 | },
18 | "devDependencies": {
19 | "@babel/core": "^7.20.0",
20 | "@types/react": "~18.2.45",
21 | "typescript": "^5.3.0"
22 | },
23 | "private": true,
24 | "expo": {
25 | "autolinking": {
26 | "nativeModulesDir": ".."
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "expo/tsconfig.base",
3 | "compilerOptions": {
4 | "strict": true,
5 | "paths": {
6 | "sweet-sfsymbols": ["../src/index"],
7 | "sweet-sfsymbols/*": ["../src/*"]
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/example/webpack.config.js:
--------------------------------------------------------------------------------
1 | const createConfigAsync = require('@expo/webpack-config');
2 | const path = require('path');
3 |
4 | module.exports = async (env, argv) => {
5 | const config = await createConfigAsync(
6 | {
7 | ...env,
8 | babel: {
9 | dangerouslyAddModulePathsToTranspile: ['sweet-sfsymbols'],
10 | },
11 | },
12 | argv
13 | );
14 | config.resolve.modules = [
15 | path.resolve(__dirname, './node_modules'),
16 | path.resolve(__dirname, '../node_modules'),
17 | ];
18 |
19 | return config;
20 | };
21 |
--------------------------------------------------------------------------------
/expo-module.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "platforms": ["ios"],
3 | "ios": {
4 | "modules": ["SweetSFSymbolsModule"]
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/SweetSFSymbols.podspec:
--------------------------------------------------------------------------------
1 | require 'json'
2 |
3 | package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
4 |
5 | Pod::Spec.new do |s|
6 | s.name = 'SweetSFSymbols'
7 | s.version = package['version']
8 | s.summary = package['description']
9 | s.description = package['description']
10 | s.license = package['license']
11 | s.author = package['author']
12 | s.homepage = package['homepage']
13 | s.platform = :ios, '13.0'
14 | s.swift_version = '5.4'
15 | s.source = { git: 'https://github.com/andrew-levy/sweet-sfsymbols' }
16 | s.static_framework = true
17 |
18 | s.dependency 'ExpoModulesCore'
19 |
20 | # Swift/Objective-C compatibility
21 | s.pod_target_xcconfig = {
22 | 'DEFINES_MODULE' => 'YES',
23 | 'SWIFT_COMPILATION_MODE' => 'wholemodule'
24 | }
25 |
26 | s.source_files = "**/*.{h,m,swift}"
27 | end
28 |
--------------------------------------------------------------------------------
/ios/SweetSFSymbolsExpoView.swift:
--------------------------------------------------------------------------------
1 | import ExpoModulesCore
2 | import SwiftUI
3 |
4 | class SweetSFSymbolsView: ExpoView {
5 | let props = Props()
6 |
7 | required init(appContext: AppContext? = nil) {
8 | let hostingController = UIHostingController(rootView: SweetSFSymbolSwiftUIView(props: props))
9 |
10 | super.init(appContext: appContext)
11 |
12 | hostingController.view.translatesAutoresizingMaskIntoConstraints = false
13 | hostingController.view.backgroundColor = .clear
14 |
15 | addSubview(hostingController.view)
16 | NSLayoutConstraint.activate([
17 | hostingController.view.topAnchor.constraint(equalTo: self.topAnchor),
18 | hostingController.view.bottomAnchor.constraint(equalTo: self.bottomAnchor),
19 | hostingController.view.leftAnchor.constraint(equalTo: self.leftAnchor),
20 | hostingController.view.rightAnchor.constraint(equalTo: self.rightAnchor)
21 | ])
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/SweetSFSymbolsModifiers.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | extension View {
4 | func customColors(_ colors: [UIColor]) -> some View {
5 | modifier(ColorsModifier(colors: colors))
6 | }
7 | func customRenderingMode(_ renderingMode: SFSymbolRenderingMode) -> some View {
8 | modifier(RenderingModeModifier(renderingMode: renderingMode))
9 | }
10 | func customSymbolEffect(_ symbolEffect: SFSymbolEffect?) -> some View {
11 | modifier(SymbolEffectModifier(symbolEffect: symbolEffect))
12 | }
13 | func customVariant(_ variant: String?) -> some View {
14 | modifier(VariantModifier(variant: variant))
15 | }
16 | }
17 |
18 | struct ColorsModifier: ViewModifier {
19 | var colors: [UIColor]
20 | func body(content: Content) -> some View {
21 | if colors.count == 1 {
22 | return AnyView(content.foregroundColor(Color(colors[0])))
23 | } else if colors.count == 2 {
24 | if #available(iOS 15.0, *) {
25 | return AnyView(content.foregroundStyle(Color(colors[0]), Color(colors[1])))
26 | } else {
27 | return AnyView(content.foregroundColor(Color(colors[0])))
28 | }
29 | } else if colors.count == 3 {
30 | if #available(iOS 15.0, *) {
31 | return AnyView(content.foregroundStyle(Color(colors[0]), Color(colors[1]), Color(colors[2])))
32 | } else {
33 | return AnyView(content.foregroundColor(Color(colors[0])))
34 | }
35 | } else {
36 | return AnyView(content)
37 | }
38 | }
39 | }
40 |
41 | struct RenderingModeModifier: ViewModifier {
42 | var renderingMode: SFSymbolRenderingMode
43 | func body(content: Content) -> some View {
44 | if #available(iOS 15.0, *) {
45 | return AnyView(content.symbolRenderingMode(renderingMode.toSFSymbolRenderingMode()))
46 | } else {
47 | return AnyView(content)
48 | }
49 | }
50 | }
51 |
52 | struct VariantModifier: ViewModifier {
53 | var variant: String?
54 | func body(content: Content) -> some View {
55 | if #available(iOS 15.0, *) {
56 | return AnyView(content.symbolVariant(parseComposition(variant ?? "")))
57 | } else {
58 | return AnyView(content)
59 | }
60 | }
61 | }
62 |
63 | @available(iOS 15.0, *)
64 | func parseComposition(_ composition: String) -> SymbolVariants {
65 | let variantMapping: [String: SymbolVariants] = [
66 | "none": .none,
67 | "circle": .circle,
68 | "square": .square,
69 | "rectangle": .rectangle,
70 | "fill": .fill,
71 | "slash": .slash
72 | ]
73 | let components = composition.split(separator: ".")
74 | if components.count > 0 {
75 | var result: SymbolVariants? = variantMapping[String(components[0])]
76 | for i in 1.. SymbolVariants {
90 | switch other {
91 | case .circle: return self.circle
92 | case .fill: return self.fill
93 | case .slash: return self.slash
94 | case .rectangle: return self.rectangle
95 | case .square: return self.square
96 | default: return self
97 | }
98 | }
99 | }
100 |
101 | struct SymbolEffectModifier: ViewModifier {
102 | var symbolEffect: SFSymbolEffect?
103 | func body(content: Content) -> some View {
104 | if symbolEffect == nil {
105 | return AnyView(content)
106 | }
107 | if #available(iOS 17.0, *) {
108 | let options: SymbolEffectOptions = symbolEffect?.toSymbolEffectOptions() ?? .default
109 | let direction = symbolEffect?.direction // maybe set this to up by default for scale
110 | let animateBy = symbolEffect?.animateBy
111 | let reversing = symbolEffect?.reversing
112 | let inactiveLayers = symbolEffect?.inactiveLayers
113 |
114 | switch symbolEffect?.type {
115 | case "bounce":
116 | var bounceEffect: BounceSymbolEffect = .bounce
117 | if direction == "up" {
118 | bounceEffect = bounceEffect.up
119 | } else if direction == "down" {
120 | bounceEffect = bounceEffect.down
121 | }
122 | if animateBy == "layer" {
123 | bounceEffect = bounceEffect.byLayer
124 | } else if animateBy == "wholeSymbol" {
125 | bounceEffect = bounceEffect.wholeSymbol
126 | }
127 | if let value = symbolEffect?.value as? Double {
128 | return AnyView(content.symbolEffect(bounceEffect, options: options, value: value))
129 | } else {
130 | return AnyView(content)
131 | }
132 | case "pulse":
133 | var pulseEffect: PulseSymbolEffect = .pulse
134 | if animateBy == "layer" {
135 | pulseEffect = pulseEffect.byLayer
136 | } else if animateBy == "wholeSymbol" {
137 | pulseEffect = pulseEffect.wholeSymbol
138 | }
139 | if let isActive = symbolEffect?.isActive {
140 | return AnyView(content.symbolEffect(pulseEffect, options: options, isActive: isActive))
141 | } else if let value = symbolEffect?.value as? Double {
142 | return AnyView(content.symbolEffect(pulseEffect, options: options, value: value))
143 | } else {
144 | return AnyView(content.symbolEffect(pulseEffect, options: options))
145 | }
146 | case "variableColor":
147 | var variableColorEffect: VariableColorSymbolEffect = .variableColor
148 | if reversing == true {
149 | variableColorEffect = variableColorEffect.reversing
150 | }
151 | if inactiveLayers == "hide" {
152 | variableColorEffect = variableColorEffect.hideInactiveLayers
153 | } else if inactiveLayers == "dim" {
154 | variableColorEffect = variableColorEffect.dimInactiveLayers
155 | }
156 | if animateBy == "layer" {
157 | variableColorEffect = variableColorEffect.iterative
158 | } else if animateBy == "wholeSymbol" {
159 | variableColorEffect = variableColorEffect.cumulative
160 | }
161 | if let isActive = symbolEffect?.isActive {
162 | return AnyView(content.symbolEffect(.variableColor, options: options, isActive: isActive))
163 | } else if let value = symbolEffect?.value as? any Equatable {
164 | return AnyView(content.symbolEffect(.variableColor, options: options, value: value))
165 | } else {
166 | return AnyView(content.symbolEffect(.variableColor, options: options))
167 | }
168 | case "appear":
169 | var appearEffect: AppearSymbolEffect = .appear
170 | if direction == "up" {
171 | appearEffect = appearEffect.up
172 | } else if direction == "down" {
173 | appearEffect = appearEffect.down
174 | }
175 | if animateBy == "layer" {
176 | appearEffect = appearEffect.byLayer
177 | } else if animateBy == "wholeSymbol" {
178 | appearEffect = appearEffect.wholeSymbol
179 | }
180 | return AnyView(content.symbolEffect(appearEffect, options: options, isActive: symbolEffect?.isActive ?? false))
181 | case "disappear":
182 | var disappearEffect: DisappearSymbolEffect = .disappear
183 | if direction == "up" {
184 | disappearEffect = disappearEffect.up
185 | } else if direction == "down" {
186 | disappearEffect = disappearEffect.down
187 | }
188 | if animateBy == "layer" {
189 | disappearEffect = disappearEffect.byLayer
190 | } else if animateBy == "wholeSymbol" {
191 | disappearEffect = disappearEffect.wholeSymbol
192 | }
193 | return AnyView(content.symbolEffect(disappearEffect, options: options, isActive: symbolEffect?.isActive ?? false))
194 | case "scale":
195 | var scaleEffect: ScaleSymbolEffect = .scale
196 | if direction == "up" || direction == nil {
197 | scaleEffect = scaleEffect.up
198 | } else if direction == "down" {
199 | scaleEffect = scaleEffect.down
200 | }
201 | if animateBy == "layer" {
202 | scaleEffect = scaleEffect.byLayer
203 | } else if animateBy == "wholeSymbol" {
204 | scaleEffect = scaleEffect.wholeSymbol
205 | }
206 | if let isActive = symbolEffect?.isActive {
207 | return AnyView(content.symbolEffect(scaleEffect, options: options, isActive: isActive))
208 | } else {
209 | return AnyView(content.symbolEffect(scaleEffect, options: options))
210 | }
211 | case "replace":
212 | var replaceEffect: ReplaceSymbolEffect = .replace
213 | if direction == "downUp" {
214 | replaceEffect = replaceEffect.downUp
215 | } else if direction == "upUp" {
216 | replaceEffect = replaceEffect.upUp
217 | } else if direction == "offUp" {
218 | replaceEffect = replaceEffect.offUp
219 | }
220 | if animateBy == "layer" {
221 | replaceEffect = replaceEffect.byLayer
222 | } else if animateBy == "wholeSymbol" {
223 | replaceEffect = replaceEffect.wholeSymbol
224 | }
225 | return AnyView(content.contentTransition(.symbolEffect(replaceEffect, options: options)))
226 | default:
227 | return AnyView(content)
228 | }
229 | } else {
230 | return AnyView(content)
231 | }
232 | }
233 | }
234 |
235 |
236 |
--------------------------------------------------------------------------------
/ios/SweetSFSymbolsModule.swift:
--------------------------------------------------------------------------------
1 | import ExpoModulesCore
2 | import SwiftUI
3 |
4 | public class SweetSFSymbolsModule: Module {
5 | public func definition() -> ModuleDefinition {
6 | Name("SweetSFSymbols")
7 | View(SweetSFSymbolsView.self) {
8 | Prop("name") { (view: SweetSFSymbolsView, name: String?) in
9 | view.props.name = name ?? ""
10 | }
11 | Prop("weight") { (view:SweetSFSymbolsView, weight: SFSymbolWeight?) in
12 | view.props.weight = weight ?? .medium
13 | }
14 | Prop("scale") { (view: SweetSFSymbolsView, scale: SFSymbolScale?) in
15 | view.props.scale = scale ?? .medium
16 | }
17 | Prop("size") { (view: SweetSFSymbolsView, size: Double?) in
18 | view.props.size = size ?? 50.0
19 | }
20 | Prop("colors") { (view: SweetSFSymbolsView, colors: [UIColor]?) in
21 | view.props.colors = colors ?? [UIColor.black]
22 | }
23 | Prop("renderingMode") { (view: SweetSFSymbolsView, renderingMode: SFSymbolRenderingMode?) in
24 | view.props.renderingMode = renderingMode ?? .monochrome
25 | }
26 | Prop("variableValue") { (view: SweetSFSymbolsView, variableValue: Double?) in
27 | view.props.variableValue = variableValue ?? 1.0
28 | }
29 | Prop("variant") { (view: SweetSFSymbolsView, variant: String?) in
30 | view.props.variant = variant ?? nil
31 | }
32 | Prop("symbolEffect") { (view: SweetSFSymbolsView, symbolEffect: SFSymbolEffect?) in
33 | view.props.symbolEffect = symbolEffect ?? nil
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/ios/SweetSFSymbolsProps.swift:
--------------------------------------------------------------------------------
1 | import ExpoModulesCore
2 | import SwiftUI
3 |
4 | enum SFSymbolRenderingMode: String, Enumerable {
5 | case hierarchical
6 | case palette
7 | case multicolor
8 | case monochrome
9 |
10 | @available(iOS 15.0, *)
11 | func toSFSymbolRenderingMode() -> SymbolRenderingMode {
12 | switch self {
13 | case .hierarchical:
14 | return .hierarchical
15 | case .monochrome:
16 | return .monochrome
17 | case .multicolor:
18 | return .multicolor
19 | case .palette:
20 | return .palette
21 | }
22 | }
23 | }
24 |
25 | enum SFSymbolScale: String, Enumerable {
26 | case small
27 | case medium
28 | case large
29 |
30 | func toImageScale() -> Image.Scale {
31 | switch self {
32 | case .small:
33 | return .small
34 | case .medium:
35 | return .medium
36 | case .large:
37 | return .large
38 | }
39 | }
40 | }
41 |
42 | enum SFSymbolWeight: String, Enumerable {
43 | case bold
44 | case heavy
45 | case medium
46 | case light
47 | case regular
48 | case semibold
49 | case thin
50 | case ultraLight
51 | case black
52 |
53 | func toFontWeight() -> Font.Weight {
54 | switch self {
55 | case .bold:
56 | return .bold
57 | case .heavy:
58 | return .heavy
59 | case .medium:
60 | return .medium
61 | case .light:
62 | return .light
63 | case .regular:
64 | return .regular
65 | case .semibold:
66 | return .semibold
67 | case .thin:
68 | return .thin
69 | case .ultraLight:
70 | return .ultraLight
71 | case .black:
72 | return .black
73 | }
74 | }
75 | }
76 |
77 | struct SFSymbolEffect: Record {
78 | @Field var type: String
79 | @Field var repeatCount: Int?
80 | @Field var speed: Double?
81 | @Field var reversing: Bool?
82 | @Field var direction: String?
83 | @Field var animateBy: String?
84 | @Field var inactiveLayers: String?
85 | @Field var value: Double?
86 | @Field var isActive: Bool?
87 |
88 | @available(iOS 17.0, *)
89 | func toSymbolEffectOptions() -> SymbolEffectOptions {
90 | var options: SymbolEffectOptions
91 | if repeatCount != nil {
92 | if repeatCount == -1 {
93 | options = .repeating.speed(speed ?? 1.0)
94 | } else {
95 | options = .repeat(repeatCount).speed(speed ?? 1.0)
96 | }
97 | } else {
98 | options = .nonRepeating.speed(speed ?? 1.0)
99 | }
100 | return options
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/ios/SweetSFSymbolsView.swift:
--------------------------------------------------------------------------------
1 | import ExpoModulesCore
2 | import SwiftUI
3 |
4 | class Props: ObservableObject {
5 | @Published var name: String = ""
6 | @Published var weight: SFSymbolWeight = .regular
7 | @Published var scale: SFSymbolScale = .medium
8 | @Published var size: Double = 0
9 | @Published var colors: [UIColor] = []
10 | @Published var renderingMode: SFSymbolRenderingMode = .monochrome
11 | @Published var variableValue: Double = 0
12 | @Published var variant: String? = nil
13 | @Published var symbolEffect: SFSymbolEffect? = nil
14 | }
15 |
16 | struct SweetSFSymbolSwiftUIView: View {
17 | @ObservedObject var props: Props
18 |
19 | var body: some View {
20 | let image: Image
21 | if #available(iOS 16.0, *) {
22 | image = Image(systemName: props.name, variableValue: props.variableValue)
23 | } else {
24 | image = Image(systemName: props.name)
25 | }
26 | return image
27 | .imageScale(props.scale.toImageScale())
28 | .font(.system(size: props.size, weight: props.weight.toFontWeight()))
29 | .customColors(props.colors)
30 | .customRenderingMode(props.renderingMode)
31 | .customVariant(props.variant)
32 | .customSymbolEffect(props.symbolEffect)
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sweet-sfsymbols",
3 | "version": "0.7.2",
4 | "description": "SF Symbols brought to you by Expo's Module API",
5 | "main": "build/index.js",
6 | "types": "build/index.d.ts",
7 | "scripts": {
8 | "build": "expo-module build",
9 | "clean": "expo-module clean",
10 | "lint": "expo-module lint",
11 | "test": "expo-module test",
12 | "prepare": "expo-module prepare",
13 | "prepublishOnly": "expo-module prepublishOnly",
14 | "expo-module": "expo-module",
15 | "open:ios": "open -a \"Xcode\" example/ios",
16 | "open:android": "open -a \"Android Studio\" example/android"
17 | },
18 | "keywords": [
19 | "react-native",
20 | "expo",
21 | "sweet-sfsymbols",
22 | "SweetSFSymbols"
23 | ],
24 | "repository": "https://github.com/andrew-levy/sweet-sfsymbols",
25 | "bugs": {
26 | "url": "https://github.com/andrew-levy/sweet-sfsymbols/issues"
27 | },
28 | "author": "Andrew (https://github.com/andrew-levy)",
29 | "license": "MIT",
30 | "homepage": "https://github.com/andrew-levy/sweet-sfsymbols#readme",
31 | "dependencies": {},
32 | "devDependencies": {
33 | "@types/react": "^18.0.25",
34 | "expo-module-scripts": "^3.0.11",
35 | "expo-modules-core": "^1.5.11"
36 | },
37 | "peerDependencies": {
38 | "expo": "*",
39 | "react": "*",
40 | "react-native": "*"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/SweetSFSymbolsView.ios.tsx:
--------------------------------------------------------------------------------
1 | import { requireNativeViewManager } from "expo-modules-core";
2 | import * as React from "react";
3 |
4 | import { ProcessedColorValue, processColor } from "react-native";
5 | import {
6 | NativeSymbolEffect,
7 | SweetSFSymbolsViewProps,
8 | } from "./SweetSFSymbols.types";
9 |
10 | const NativeView: React.ComponentType<
11 | Omit & {
12 | symbolEffect?: NativeSymbolEffect;
13 | colors: (string | ProcessedColorValue | null | undefined | object)[];
14 | }
15 | > = requireNativeViewManager("SweetSFSymbols");
16 |
17 | export default class SweetSFSymbol extends React.PureComponent {
18 | render() {
19 | const {
20 | style,
21 | size = 50,
22 | symbolEffect,
23 | colors,
24 | variableValue = 1.0,
25 | ...restProps
26 | } = this.props;
27 | const repeatValue =
28 | symbolEffect && "repeat" in symbolEffect ? symbolEffect?.repeat : 1;
29 | const repeatCount = repeatValue === true ? -1 : 1;
30 | const effect = {
31 | ...symbolEffect,
32 | repeatCount,
33 | } as NativeSymbolEffect;
34 |
35 | return (
36 |
48 | );
49 | }
50 | }
51 |
52 | function isHslOrRgbColor(color: string) {
53 | if (typeof color !== "string") return false;
54 | return color.startsWith("hsl") || color.startsWith("rgb");
55 | }
56 |
57 | function getColors(colors?: SweetSFSymbolsViewProps["colors"]) {
58 | return (
59 | colors?.map((color) => {
60 | if (typeof color === "string" && isHslOrRgbColor(color)) {
61 | return processColor(color);
62 | }
63 | return color;
64 | }) ?? []
65 | );
66 | }
67 |
--------------------------------------------------------------------------------
/src/SweetSFSymbolsView.ts:
--------------------------------------------------------------------------------
1 | // Sweet-SFSymbols is not supported on any platform other than iOS
2 |
3 | import { SweetSFSymbolsViewProps } from "./SweetSFSymbols.types";
4 |
5 | export default (props: SweetSFSymbolsViewProps) => null;
6 |
7 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export { default } from "./SweetSFSymbolsView";
2 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | // @generated by expo-module-scripts
2 | {
3 | "extends": "expo-module-scripts/tsconfig.base",
4 | "compilerOptions": {
5 | "outDir": "./build"
6 | },
7 | "include": ["./src"],
8 | "exclude": ["**/__mocks__/*", "**/__tests__/*"]
9 | }
10 |
--------------------------------------------------------------------------------