Commit 9a661480 authored by Wei Han's avatar Wei Han

example fixed

parent 1eec3cd3
# Exclude large binary frameworks and derived data
framework/
android/
# Exclude example app if nested
example/
example-build/
# Exclude node_modules
node_modules/
.yarn/
.yarnrc.yml
.pnp.*
# Common misc
*.xcworkspace
*.xcodeproj
*.xcuserdata/
*.DS_Store
.idea/
.vscode/
......@@ -20,8 +20,6 @@ Pod::Spec.new do |s|
s.vendored_frameworks = "ios/QmsPluginFramework.xcframework"
s.dependency "React-Core"
s.dependency "ReactCommon"
s.dependency "React-Codegen"
s.pod_target_xcconfig = {
"DEFINES_MODULE" => "YES",
......
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1
module.exports = {
root: true,
extends: '@react-native',
};
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
**/.xcode.env.local
# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore
.kotlin/
# node.js
#
node_modules/
npm-debug.log
yarn-error.log
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output
# Bundle artifact
*.jsbundle
# Ruby / CocoaPods
**/Pods/
/vendor/bundle/
# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*
# testing
/coverage
# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
module.exports = {
arrowParens: 'avoid',
singleQuote: true,
trailingComma: 'all',
};
import React, { useEffect } from 'react';
import { StatusBar, useColorScheme, SafeAreaView } from 'react-native';
import { showPluginUI } from 'QmsPlugin';
function App() {
const isDarkMode = useColorScheme() === 'dark';
useEffect(() => {
console.log('🚀 Launching plugin UI immediately...');
try {
showPluginUI();
} catch (e) {
console.error('❌ Error launching plugin UI:', e);
}
}, []);
return (
<SafeAreaView>
<StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
</SafeAreaView>
);
}
export default App;
source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"
# Exclude problematic versions of cocoapods and activesupport that causes build failures.
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
gem 'xcodeproj', '< 1.26.0'
gem 'concurrent-ruby', '< 1.3.4'
# Ruby 3.4.0 has removed some libraries from the standard library.
gem 'bigdecimal'
gem 'logger'
gem 'benchmark'
gem 'mutex_m'
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.7)
base64
nkf
rexml
activesupport (7.2.2.2)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
base64 (0.3.0)
benchmark (0.4.1)
bigdecimal (3.2.3)
claide (1.1.0)
cocoapods (1.15.2)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.15.2)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.6.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.23.0, < 2.0)
cocoapods-core (1.15.2)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (2.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
cocoapods-trunk (1.6.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.3.3)
connection_pool (2.5.4)
drb (2.2.3)
escape (0.0.4)
ethon (0.15.0)
ffi (>= 1.15.0)
ffi (1.17.2)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.9.0)
mutex_m
i18n (1.14.7)
concurrent-ruby (~> 1.0)
json (2.15.0)
logger (1.7.0)
minitest (5.25.5)
molinillo (0.8.0)
mutex_m (0.3.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
nkf (0.2.0)
public_suffix (4.0.7)
rexml (3.4.4)
ruby-macho (2.5.1)
securerandom (0.4.1)
typhoeus (1.5.0)
ethon (>= 0.9.0, < 0.16.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
xcodeproj (1.25.1)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (>= 3.3.6, < 4.0)
PLATFORMS
ruby
DEPENDENCIES
activesupport (>= 6.1.7.5, != 7.1.0)
benchmark
bigdecimal
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
concurrent-ruby (< 1.3.4)
logger
mutex_m
xcodeproj (< 1.26.0)
RUBY VERSION
ruby 3.2.2p53
BUNDLED WITH
2.7.1
This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).
# Getting Started
> **Note**: Make sure you have completed the [Set Up Your Environment](https://reactnative.dev/docs/set-up-your-environment) guide before proceeding.
## Step 1: Start Metro
First, you will need to run **Metro**, the JavaScript build tool for React Native.
To start the Metro dev server, run the following command from the root of your React Native project:
```sh
# Using npm
npm start
# OR using Yarn
yarn start
```
## Step 2: Build and run your app
With Metro running, open a new terminal window/pane from the root of your React Native project, and use one of the following commands to build and run your Android or iOS app:
### Android
```sh
# Using npm
npm run android
# OR using Yarn
yarn android
```
### iOS
For iOS, remember to install CocoaPods dependencies (this only needs to be run on first clone or after updating native deps).
The first time you create a new project, run the Ruby bundler to install CocoaPods itself:
```sh
bundle install
```
Then, and every time you update your native dependencies, run:
```sh
bundle exec pod install
```
For more information, please visit [CocoaPods Getting Started guide](https://guides.cocoapods.org/using/getting-started.html).
```sh
# Using npm
npm run ios
# OR using Yarn
yarn ios
```
If everything is set up correctly, you should see your new app running in the Android Emulator, iOS Simulator, or your connected device.
This is one way to run your app — you can also build it directly from Android Studio or Xcode.
## Step 3: Modify your app
Now that you have successfully run the app, let's make changes!
Open `App.tsx` in your text editor of choice and make some changes. When you save, your app will automatically update and reflect these changes — this is powered by [Fast Refresh](https://reactnative.dev/docs/fast-refresh).
When you want to forcefully reload, for example to reset the state of your app, you can perform a full reload:
- **Android**: Press the <kbd>R</kbd> key twice or select **"Reload"** from the **Dev Menu**, accessed via <kbd>Ctrl</kbd> + <kbd>M</kbd> (Windows/Linux) or <kbd>Cmd ⌘</kbd> + <kbd>M</kbd> (macOS).
- **iOS**: Press <kbd>R</kbd> in iOS Simulator.
## Congratulations! :tada:
You've successfully run and modified your React Native App. :partying_face:
### Now what?
- If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps).
- If you're curious to learn more about React Native, check out the [docs](https://reactnative.dev/docs/getting-started).
# Troubleshooting
If you're having issues getting the above steps to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page.
# Learn More
To learn more about React Native, take a look at the following resources:
- [React Native Website](https://reactnative.dev) - learn more about React Native.
- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.
- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.
- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.
- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.
apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"
/**
* This is the configuration block to customize your React Native Android app.
* By default you don't need to apply any configuration, just uncomment the lines you need.
*/
react {
/* Folders */
// The root of your project, i.e. where "package.json" lives. Default is '../..'
// root = file("../../")
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
// reactNativeDir = file("../../node_modules/react-native")
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
// codegenDir = file("../../node_modules/@react-native/codegen")
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
// cliFile = file("../../node_modules/react-native/cli.js")
/* Variants */
// The list of variants to that are debuggable. For those we're going to
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]
/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
// nodeExecutableAndArgs = ["node"]
//
// The command to run when bundling. By default is 'bundle'
// bundleCommand = "ram-bundle"
//
// The path to the CLI configuration file. Default is empty.
// bundleConfig = file(../rn-cli.config.js)
//
// The name of the generated asset file containing your JS bundle
// bundleAssetName = "MyApplication.android.bundle"
//
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
// entryFile = file("../js/MyApplication.android.js")
//
// A list of extra flags to pass to the 'bundle' commands.
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
// extraPackagerArgs = []
/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
// hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]
/* Autolinking */
autolinkLibrariesWithApp()
}
/**
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore (JSC)
*
* For example, to use the international variant, you can use:
* `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+'
android {
ndkVersion rootProject.ext.ndkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compileSdk rootProject.ext.compileSdkVersion
namespace "com.example"
defaultConfig {
applicationId "com.example"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
}
dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="${usesCleartextTraffic}"
android:supportsRtl="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
package com.example
import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
import com.facebook.react.defaults.DefaultReactActivityDelegate
class MainActivity : ReactActivity() {
/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
override fun getMainComponentName(): String = "example"
/**
* Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
* which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
*/
override fun createReactActivityDelegate(): ReactActivityDelegate =
DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
}
package com.example
import android.app.Application
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactHost
import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
class MainApplication : Application(), ReactApplication {
override val reactHost: ReactHost by lazy {
getDefaultReactHost(
context = applicationContext,
packageList =
PackageList(this).packages.apply {
// Packages that cannot be autolinked yet can be added manually here, for example:
// add(MyReactNativePackage())
},
)
}
override fun onCreate() {
super.onCreate()
loadReactNative(this)
}
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"
>
<selector>
<!--
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
-->
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
</selector>
</inset>
<resources>
<string name="app_name">example</string>
</resources>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
</style>
</resources>
buildscript {
ext {
buildToolsVersion = "36.0.0"
minSdkVersion = 24
compileSdkVersion = 36
targetSdkVersion = 36
ndkVersion = "27.1.12297006"
kotlinVersion = "2.1.20"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
}
}
apply plugin: "com.facebook.react.rootproject"
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=true
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
# Use this property to enable edge-to-edge display support.
# This allows your app to draw behind system bars for an immersive UI.
# Note: Only works with ReactActivity and should not be used with custom Activity.
edgeToEdgeEnabled=false
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#!/bin/sh
#
# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
@REM Copyright (c) Meta Platforms, Inc. and affiliates.
@REM
@REM This source code is licensed under the MIT license found in the
@REM LICENSE file in the root directory of this source tree.
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
set CLASSPATH=
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
plugins { id("com.facebook.react.settings") }
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
rootProject.name = 'example'
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')
{
"name": "example",
"displayName": "example"
}
module.exports = {
presets: ['module:@react-native/babel-preset'],
};
/**
* @format
*/
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
# This `.xcode.env` file is versioned and is used to source the environment
# used when running script phases inside Xcode.
# To customize your local environment, you can create an `.xcode.env.local`
# file that is not versioned.
# NODE_BINARY variable contains the PATH to the node executable.
#
# Customize the NODE_BINARY variable here.
# For example, to use nvm with brew, add the following line
# . "$(brew --prefix nvm)/nvm.sh" --no-use
export NODE_BINARY=$(command -v node)
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
"react-native/scripts/react_native_pods.rb",
{paths: [process.argv[1]]},
)', __dir__]).strip
# require_relative '../node_modules/react-native/scripts/react_native_pods'
# require_relative '../node_modules/react-native/scripts/native_modules'
platform :ios, min_ios_version_supported
prepare_react_native_project!
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end
target 'example' do
config = use_native_modules!
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => true,
:new_arch_enabled => true,
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
pod 'QmsPlugin', :path => '../node_modules/QmsPlugin'
# target 'pluginTestTests' do
# inherit! :complete
# end
post_install do |installer|
# https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false,
# :ccache_enabled => true
)
end
end
......@@ -2,12 +2,12 @@ PODS:
- boost (1.84.0)
- DoubleConversion (1.1.6)
- fast_float (8.0.0)
- FBLazyVector (0.81.1)
- FBLazyVector (0.81.4)
- fmt (11.0.2)
- glog (0.3.5)
- hermes-engine (0.81.1):
- hermes-engine/Pre-built (= 0.81.1)
- hermes-engine/Pre-built (0.81.1)
- hermes-engine (0.81.4):
- hermes-engine/Pre-built (= 0.81.4)
- hermes-engine/Pre-built (0.81.4)
- QmsPlugin (0.1.0):
- boost
- DoubleConversion
......@@ -19,6 +19,7 @@ PODS:
- RCT-Folly/Fabric
- RCTRequired
- RCTTypeSafety
- React-Codegen
- React-Core
- React-debug
- React-Fabric
......@@ -32,6 +33,7 @@ PODS:
- React-rendererdebug
- React-utils
- ReactCodegen
- ReactCommon
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- SocketRocket
......@@ -55,27 +57,28 @@ PODS:
- fast_float (= 8.0.0)
- fmt (= 11.0.2)
- glog
- RCTDeprecation (0.81.1)
- RCTRequired (0.81.1)
- RCTTypeSafety (0.81.1):
- FBLazyVector (= 0.81.1)
- RCTRequired (= 0.81.1)
- React-Core (= 0.81.1)
- React (0.81.1):
- React-Core (= 0.81.1)
- React-Core/DevSupport (= 0.81.1)
- React-Core/RCTWebSocket (= 0.81.1)
- React-RCTActionSheet (= 0.81.1)
- React-RCTAnimation (= 0.81.1)
- React-RCTBlob (= 0.81.1)
- React-RCTImage (= 0.81.1)
- React-RCTLinking (= 0.81.1)
- React-RCTNetwork (= 0.81.1)
- React-RCTSettings (= 0.81.1)
- React-RCTText (= 0.81.1)
- React-RCTVibration (= 0.81.1)
- React-callinvoker (0.81.1)
- React-Core (0.81.1):
- RCTDeprecation (0.81.4)
- RCTRequired (0.81.4)
- RCTTypeSafety (0.81.4):
- FBLazyVector (= 0.81.4)
- RCTRequired (= 0.81.4)
- React-Core (= 0.81.4)
- React (0.81.4):
- React-Core (= 0.81.4)
- React-Core/DevSupport (= 0.81.4)
- React-Core/RCTWebSocket (= 0.81.4)
- React-RCTActionSheet (= 0.81.4)
- React-RCTAnimation (= 0.81.4)
- React-RCTBlob (= 0.81.4)
- React-RCTImage (= 0.81.4)
- React-RCTLinking (= 0.81.4)
- React-RCTNetwork (= 0.81.4)
- React-RCTSettings (= 0.81.4)
- React-RCTText (= 0.81.4)
- React-RCTVibration (= 0.81.4)
- React-callinvoker (0.81.4)
- React-Codegen (0.1.0)
- React-Core (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -85,7 +88,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- RCTDeprecation
- React-Core/Default (= 0.81.1)
- React-Core/Default (= 0.81.4)
- React-cxxreact
- React-featureflags
- React-hermes
......@@ -100,7 +103,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/CoreModulesHeaders (0.81.1):
- React-Core/CoreModulesHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -125,7 +128,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/Default (0.81.1):
- React-Core/Default (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -149,7 +152,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/DevSupport (0.81.1):
- React-Core/DevSupport (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -159,8 +162,8 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- RCTDeprecation
- React-Core/Default (= 0.81.1)
- React-Core/RCTWebSocket (= 0.81.1)
- React-Core/Default (= 0.81.4)
- React-Core/RCTWebSocket (= 0.81.4)
- React-cxxreact
- React-featureflags
- React-hermes
......@@ -175,7 +178,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTActionSheetHeaders (0.81.1):
- React-Core/RCTActionSheetHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -200,7 +203,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTAnimationHeaders (0.81.1):
- React-Core/RCTAnimationHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -225,7 +228,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTBlobHeaders (0.81.1):
- React-Core/RCTBlobHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -250,7 +253,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTImageHeaders (0.81.1):
- React-Core/RCTImageHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -275,7 +278,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTLinkingHeaders (0.81.1):
- React-Core/RCTLinkingHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -300,7 +303,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTNetworkHeaders (0.81.1):
- React-Core/RCTNetworkHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -325,7 +328,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTSettingsHeaders (0.81.1):
- React-Core/RCTSettingsHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -350,7 +353,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTTextHeaders (0.81.1):
- React-Core/RCTTextHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -375,7 +378,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTVibrationHeaders (0.81.1):
- React-Core/RCTVibrationHeaders (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -400,7 +403,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-Core/RCTWebSocket (0.81.1):
- React-Core/RCTWebSocket (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -410,7 +413,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- RCTDeprecation
- React-Core/Default (= 0.81.1)
- React-Core/Default (= 0.81.4)
- React-cxxreact
- React-featureflags
- React-hermes
......@@ -425,7 +428,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-CoreModules (0.81.1):
- React-CoreModules (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -433,20 +436,20 @@ PODS:
- glog
- RCT-Folly
- RCT-Folly/Fabric
- RCTTypeSafety (= 0.81.1)
- React-Core/CoreModulesHeaders (= 0.81.1)
- React-jsi (= 0.81.1)
- RCTTypeSafety (= 0.81.4)
- React-Core/CoreModulesHeaders (= 0.81.4)
- React-jsi (= 0.81.4)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-NativeModulesApple
- React-RCTBlob
- React-RCTFBReactNativeSpec
- React-RCTImage (= 0.81.1)
- React-RCTImage (= 0.81.4)
- React-runtimeexecutor
- ReactCommon
- SocketRocket
- React-cxxreact (0.81.1):
- React-cxxreact (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -455,19 +458,19 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- React-callinvoker (= 0.81.1)
- React-debug (= 0.81.1)
- React-jsi (= 0.81.1)
- React-callinvoker (= 0.81.4)
- React-debug (= 0.81.4)
- React-jsi (= 0.81.4)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-logger (= 0.81.1)
- React-perflogger (= 0.81.1)
- React-logger (= 0.81.4)
- React-perflogger (= 0.81.4)
- React-runtimeexecutor
- React-timing (= 0.81.1)
- React-timing (= 0.81.4)
- SocketRocket
- React-debug (0.81.1)
- React-defaultsnativemodule (0.81.1):
- React-debug (0.81.4)
- React-defaultsnativemodule (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -484,7 +487,7 @@ PODS:
- React-microtasksnativemodule
- React-RCTFBReactNativeSpec
- SocketRocket
- React-domnativemodule (0.81.1):
- React-domnativemodule (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -504,7 +507,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-Fabric (0.81.1):
- React-Fabric (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -518,23 +521,23 @@ PODS:
- React-Core
- React-cxxreact
- React-debug
- React-Fabric/animations (= 0.81.1)
- React-Fabric/attributedstring (= 0.81.1)
- React-Fabric/bridging (= 0.81.1)
- React-Fabric/componentregistry (= 0.81.1)
- React-Fabric/componentregistrynative (= 0.81.1)
- React-Fabric/components (= 0.81.1)
- React-Fabric/consistency (= 0.81.1)
- React-Fabric/core (= 0.81.1)
- React-Fabric/dom (= 0.81.1)
- React-Fabric/imagemanager (= 0.81.1)
- React-Fabric/leakchecker (= 0.81.1)
- React-Fabric/mounting (= 0.81.1)
- React-Fabric/observers (= 0.81.1)
- React-Fabric/scheduler (= 0.81.1)
- React-Fabric/telemetry (= 0.81.1)
- React-Fabric/templateprocessor (= 0.81.1)
- React-Fabric/uimanager (= 0.81.1)
- React-Fabric/animations (= 0.81.4)
- React-Fabric/attributedstring (= 0.81.4)
- React-Fabric/bridging (= 0.81.4)
- React-Fabric/componentregistry (= 0.81.4)
- React-Fabric/componentregistrynative (= 0.81.4)
- React-Fabric/components (= 0.81.4)
- React-Fabric/consistency (= 0.81.4)
- React-Fabric/core (= 0.81.4)
- React-Fabric/dom (= 0.81.4)
- React-Fabric/imagemanager (= 0.81.4)
- React-Fabric/leakchecker (= 0.81.4)
- React-Fabric/mounting (= 0.81.4)
- React-Fabric/observers (= 0.81.4)
- React-Fabric/scheduler (= 0.81.4)
- React-Fabric/telemetry (= 0.81.4)
- React-Fabric/templateprocessor (= 0.81.4)
- React-Fabric/uimanager (= 0.81.4)
- React-featureflags
- React-graphics
- React-jsi
......@@ -546,7 +549,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/animations (0.81.1):
- React-Fabric/animations (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -571,7 +574,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/attributedstring (0.81.1):
- React-Fabric/attributedstring (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -596,7 +599,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/bridging (0.81.1):
- React-Fabric/bridging (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -621,7 +624,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/componentregistry (0.81.1):
- React-Fabric/componentregistry (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -646,7 +649,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/componentregistrynative (0.81.1):
- React-Fabric/componentregistrynative (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -671,7 +674,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/components (0.81.1):
- React-Fabric/components (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -685,10 +688,10 @@ PODS:
- React-Core
- React-cxxreact
- React-debug
- React-Fabric/components/legacyviewmanagerinterop (= 0.81.1)
- React-Fabric/components/root (= 0.81.1)
- React-Fabric/components/scrollview (= 0.81.1)
- React-Fabric/components/view (= 0.81.1)
- React-Fabric/components/legacyviewmanagerinterop (= 0.81.4)
- React-Fabric/components/root (= 0.81.4)
- React-Fabric/components/scrollview (= 0.81.4)
- React-Fabric/components/view (= 0.81.4)
- React-featureflags
- React-graphics
- React-jsi
......@@ -700,7 +703,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/components/legacyviewmanagerinterop (0.81.1):
- React-Fabric/components/legacyviewmanagerinterop (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -725,7 +728,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/components/root (0.81.1):
- React-Fabric/components/root (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -750,7 +753,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/components/scrollview (0.81.1):
- React-Fabric/components/scrollview (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -775,7 +778,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/components/view (0.81.1):
- React-Fabric/components/view (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -802,7 +805,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-Fabric/consistency (0.81.1):
- React-Fabric/consistency (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -827,7 +830,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/core (0.81.1):
- React-Fabric/core (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -852,7 +855,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/dom (0.81.1):
- React-Fabric/dom (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -877,7 +880,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/imagemanager (0.81.1):
- React-Fabric/imagemanager (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -902,7 +905,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/leakchecker (0.81.1):
- React-Fabric/leakchecker (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -927,7 +930,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/mounting (0.81.1):
- React-Fabric/mounting (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -952,7 +955,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/observers (0.81.1):
- React-Fabric/observers (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -966,7 +969,7 @@ PODS:
- React-Core
- React-cxxreact
- React-debug
- React-Fabric/observers/events (= 0.81.1)
- React-Fabric/observers/events (= 0.81.4)
- React-featureflags
- React-graphics
- React-jsi
......@@ -978,7 +981,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/observers/events (0.81.1):
- React-Fabric/observers/events (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1003,7 +1006,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/scheduler (0.81.1):
- React-Fabric/scheduler (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1030,7 +1033,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/telemetry (0.81.1):
- React-Fabric/telemetry (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1055,7 +1058,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/templateprocessor (0.81.1):
- React-Fabric/templateprocessor (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1080,7 +1083,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/uimanager (0.81.1):
- React-Fabric/uimanager (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1094,7 +1097,7 @@ PODS:
- React-Core
- React-cxxreact
- React-debug
- React-Fabric/uimanager/consistency (= 0.81.1)
- React-Fabric/uimanager/consistency (= 0.81.4)
- React-featureflags
- React-graphics
- React-jsi
......@@ -1107,7 +1110,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-Fabric/uimanager/consistency (0.81.1):
- React-Fabric/uimanager/consistency (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1133,7 +1136,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- SocketRocket
- React-FabricComponents (0.81.1):
- React-FabricComponents (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1148,8 +1151,8 @@ PODS:
- React-cxxreact
- React-debug
- React-Fabric
- React-FabricComponents/components (= 0.81.1)
- React-FabricComponents/textlayoutmanager (= 0.81.1)
- React-FabricComponents/components (= 0.81.4)
- React-FabricComponents/textlayoutmanager (= 0.81.4)
- React-featureflags
- React-graphics
- React-jsi
......@@ -1162,7 +1165,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components (0.81.1):
- React-FabricComponents/components (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1177,17 +1180,17 @@ PODS:
- React-cxxreact
- React-debug
- React-Fabric
- React-FabricComponents/components/inputaccessory (= 0.81.1)
- React-FabricComponents/components/iostextinput (= 0.81.1)
- React-FabricComponents/components/modal (= 0.81.1)
- React-FabricComponents/components/rncore (= 0.81.1)
- React-FabricComponents/components/safeareaview (= 0.81.1)
- React-FabricComponents/components/scrollview (= 0.81.1)
- React-FabricComponents/components/switch (= 0.81.1)
- React-FabricComponents/components/text (= 0.81.1)
- React-FabricComponents/components/textinput (= 0.81.1)
- React-FabricComponents/components/unimplementedview (= 0.81.1)
- React-FabricComponents/components/virtualview (= 0.81.1)
- React-FabricComponents/components/inputaccessory (= 0.81.4)
- React-FabricComponents/components/iostextinput (= 0.81.4)
- React-FabricComponents/components/modal (= 0.81.4)
- React-FabricComponents/components/rncore (= 0.81.4)
- React-FabricComponents/components/safeareaview (= 0.81.4)
- React-FabricComponents/components/scrollview (= 0.81.4)
- React-FabricComponents/components/switch (= 0.81.4)
- React-FabricComponents/components/text (= 0.81.4)
- React-FabricComponents/components/textinput (= 0.81.4)
- React-FabricComponents/components/unimplementedview (= 0.81.4)
- React-FabricComponents/components/virtualview (= 0.81.4)
- React-featureflags
- React-graphics
- React-jsi
......@@ -1200,7 +1203,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/inputaccessory (0.81.1):
- React-FabricComponents/components/inputaccessory (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1227,7 +1230,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/iostextinput (0.81.1):
- React-FabricComponents/components/iostextinput (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1254,7 +1257,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/modal (0.81.1):
- React-FabricComponents/components/modal (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1281,7 +1284,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/rncore (0.81.1):
- React-FabricComponents/components/rncore (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1308,7 +1311,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/safeareaview (0.81.1):
- React-FabricComponents/components/safeareaview (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1335,7 +1338,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/scrollview (0.81.1):
- React-FabricComponents/components/scrollview (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1362,7 +1365,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/switch (0.81.1):
- React-FabricComponents/components/switch (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1389,7 +1392,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/text (0.81.1):
- React-FabricComponents/components/text (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1416,7 +1419,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/textinput (0.81.1):
- React-FabricComponents/components/textinput (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1443,7 +1446,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/unimplementedview (0.81.1):
- React-FabricComponents/components/unimplementedview (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1470,7 +1473,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/components/virtualview (0.81.1):
- React-FabricComponents/components/virtualview (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1497,7 +1500,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricComponents/textlayoutmanager (0.81.1):
- React-FabricComponents/textlayoutmanager (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1524,7 +1527,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-FabricImage (0.81.1):
- React-FabricImage (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1533,21 +1536,21 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- RCTRequired (= 0.81.1)
- RCTTypeSafety (= 0.81.1)
- RCTRequired (= 0.81.4)
- RCTTypeSafety (= 0.81.4)
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-jsi
- React-jsiexecutor (= 0.81.1)
- React-jsiexecutor (= 0.81.4)
- React-logger
- React-rendererdebug
- React-utils
- ReactCommon
- SocketRocket
- Yoga
- React-featureflags (0.81.1):
- React-featureflags (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1556,7 +1559,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- SocketRocket
- React-featureflagsnativemodule (0.81.1):
- React-featureflagsnativemodule (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1571,7 +1574,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon/turbomodule/core
- SocketRocket
- React-graphics (0.81.1):
- React-graphics (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1584,7 +1587,7 @@ PODS:
- React-jsiexecutor
- React-utils
- SocketRocket
- React-hermes (0.81.1):
- React-hermes (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1593,16 +1596,16 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- React-cxxreact (= 0.81.1)
- React-cxxreact (= 0.81.4)
- React-jsi
- React-jsiexecutor (= 0.81.1)
- React-jsiexecutor (= 0.81.4)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-perflogger (= 0.81.1)
- React-perflogger (= 0.81.4)
- React-runtimeexecutor
- SocketRocket
- React-idlecallbacksnativemodule (0.81.1):
- React-idlecallbacksnativemodule (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1618,7 +1621,7 @@ PODS:
- React-runtimescheduler
- ReactCommon/turbomodule/core
- SocketRocket
- React-ImageManager (0.81.1):
- React-ImageManager (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1633,7 +1636,7 @@ PODS:
- React-rendererdebug
- React-utils
- SocketRocket
- React-jserrorhandler (0.81.1):
- React-jserrorhandler (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1648,7 +1651,7 @@ PODS:
- React-jsi
- ReactCommon/turbomodule/bridging
- SocketRocket
- React-jsi (0.81.1):
- React-jsi (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1658,7 +1661,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- SocketRocket
- React-jsiexecutor (0.81.1):
- React-jsiexecutor (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1667,15 +1670,15 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- React-cxxreact (= 0.81.1)
- React-jsi (= 0.81.1)
- React-cxxreact (= 0.81.4)
- React-jsi (= 0.81.4)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-perflogger (= 0.81.1)
- React-perflogger (= 0.81.4)
- React-runtimeexecutor
- SocketRocket
- React-jsinspector (0.81.1):
- React-jsinspector (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1690,10 +1693,10 @@ PODS:
- React-jsinspectornetwork
- React-jsinspectortracing
- React-oscompat
- React-perflogger (= 0.81.1)
- React-perflogger (= 0.81.4)
- React-runtimeexecutor
- SocketRocket
- React-jsinspectorcdp (0.81.1):
- React-jsinspectorcdp (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1702,7 +1705,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- SocketRocket
- React-jsinspectornetwork (0.81.1):
- React-jsinspectornetwork (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1715,7 +1718,7 @@ PODS:
- React-performancetimeline
- React-timing
- SocketRocket
- React-jsinspectortracing (0.81.1):
- React-jsinspectortracing (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1726,7 +1729,7 @@ PODS:
- React-oscompat
- React-timing
- SocketRocket
- React-jsitooling (0.81.1):
- React-jsitooling (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1734,16 +1737,16 @@ PODS:
- glog
- RCT-Folly
- RCT-Folly/Fabric
- React-cxxreact (= 0.81.1)
- React-jsi (= 0.81.1)
- React-cxxreact (= 0.81.4)
- React-jsi (= 0.81.4)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-runtimeexecutor
- SocketRocket
- React-jsitracing (0.81.1):
- React-jsitracing (0.81.4):
- React-jsi
- React-logger (0.81.1):
- React-logger (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1752,7 +1755,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- SocketRocket
- React-Mapbuffer (0.81.1):
- React-Mapbuffer (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1762,7 +1765,7 @@ PODS:
- RCT-Folly/Fabric
- React-debug
- SocketRocket
- React-microtasksnativemodule (0.81.1):
- React-microtasksnativemodule (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1776,7 +1779,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon/turbomodule/core
- SocketRocket
- react-native-safe-area-context (5.6.1):
- react-native-safe-area-context (5.6.2):
- boost
- DoubleConversion
- fast_float
......@@ -1794,8 +1797,8 @@ PODS:
- React-graphics
- React-ImageManager
- React-jsi
- react-native-safe-area-context/common (= 5.6.1)
- react-native-safe-area-context/fabric (= 5.6.1)
- react-native-safe-area-context/common (= 5.6.2)
- react-native-safe-area-context/fabric (= 5.6.2)
- React-NativeModulesApple
- React-RCTFabric
- React-renderercss
......@@ -1806,7 +1809,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- react-native-safe-area-context/common (5.6.1):
- react-native-safe-area-context/common (5.6.2):
- boost
- DoubleConversion
- fast_float
......@@ -1834,7 +1837,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- react-native-safe-area-context/fabric (5.6.1):
- react-native-safe-area-context/fabric (5.6.2):
- boost
- DoubleConversion
- fast_float
......@@ -1863,7 +1866,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- React-NativeModulesApple (0.81.1):
- React-NativeModulesApple (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1883,8 +1886,8 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- SocketRocket
- React-oscompat (0.81.1)
- React-perflogger (0.81.1):
- React-oscompat (0.81.4)
- React-perflogger (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1893,7 +1896,7 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- SocketRocket
- React-performancetimeline (0.81.1):
- React-performancetimeline (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1906,9 +1909,9 @@ PODS:
- React-perflogger
- React-timing
- SocketRocket
- React-RCTActionSheet (0.81.1):
- React-Core/RCTActionSheetHeaders (= 0.81.1)
- React-RCTAnimation (0.81.1):
- React-RCTActionSheet (0.81.4):
- React-Core/RCTActionSheetHeaders (= 0.81.4)
- React-RCTAnimation (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1924,7 +1927,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- SocketRocket
- React-RCTAppDelegate (0.81.1):
- React-RCTAppDelegate (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1958,7 +1961,7 @@ PODS:
- React-utils
- ReactCommon
- SocketRocket
- React-RCTBlob (0.81.1):
- React-RCTBlob (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -1977,7 +1980,7 @@ PODS:
- React-RCTNetwork
- ReactCommon
- SocketRocket
- React-RCTFabric (0.81.1):
- React-RCTFabric (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2012,7 +2015,7 @@ PODS:
- React-utils
- SocketRocket
- Yoga
- React-RCTFBReactNativeSpec (0.81.1):
- React-RCTFBReactNativeSpec (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2026,10 +2029,10 @@ PODS:
- React-Core
- React-jsi
- React-NativeModulesApple
- React-RCTFBReactNativeSpec/components (= 0.81.1)
- React-RCTFBReactNativeSpec/components (= 0.81.4)
- ReactCommon
- SocketRocket
- React-RCTFBReactNativeSpec/components (0.81.1):
- React-RCTFBReactNativeSpec/components (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2052,7 +2055,7 @@ PODS:
- ReactCommon
- SocketRocket
- Yoga
- React-RCTImage (0.81.1):
- React-RCTImage (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2068,14 +2071,14 @@ PODS:
- React-RCTNetwork
- ReactCommon
- SocketRocket
- React-RCTLinking (0.81.1):
- React-Core/RCTLinkingHeaders (= 0.81.1)
- React-jsi (= 0.81.1)
- React-RCTLinking (0.81.4):
- React-Core/RCTLinkingHeaders (= 0.81.4)
- React-jsi (= 0.81.4)
- React-NativeModulesApple
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactCommon/turbomodule/core (= 0.81.1)
- React-RCTNetwork (0.81.1):
- ReactCommon/turbomodule/core (= 0.81.4)
- React-RCTNetwork (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2093,7 +2096,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- SocketRocket
- React-RCTRuntime (0.81.1):
- React-RCTRuntime (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2113,7 +2116,7 @@ PODS:
- React-runtimeexecutor
- React-RuntimeHermes
- SocketRocket
- React-RCTSettings (0.81.1):
- React-RCTSettings (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2128,10 +2131,10 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- SocketRocket
- React-RCTText (0.81.1):
- React-Core/RCTTextHeaders (= 0.81.1)
- React-RCTText (0.81.4):
- React-Core/RCTTextHeaders (= 0.81.4)
- Yoga
- React-RCTVibration (0.81.1):
- React-RCTVibration (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2145,11 +2148,11 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- SocketRocket
- React-rendererconsistency (0.81.1)
- React-renderercss (0.81.1):
- React-rendererconsistency (0.81.4)
- React-renderercss (0.81.4):
- React-debug
- React-utils
- React-rendererdebug (0.81.1):
- React-rendererdebug (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2159,7 +2162,7 @@ PODS:
- RCT-Folly/Fabric
- React-debug
- SocketRocket
- React-RuntimeApple (0.81.1):
- React-RuntimeApple (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2188,7 +2191,7 @@ PODS:
- React-runtimescheduler
- React-utils
- SocketRocket
- React-RuntimeCore (0.81.1):
- React-RuntimeCore (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2210,7 +2213,7 @@ PODS:
- React-runtimescheduler
- React-utils
- SocketRocket
- React-runtimeexecutor (0.81.1):
- React-runtimeexecutor (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2220,10 +2223,10 @@ PODS:
- RCT-Folly/Fabric
- React-debug
- React-featureflags
- React-jsi (= 0.81.1)
- React-jsi (= 0.81.4)
- React-utils
- SocketRocket
- React-RuntimeHermes (0.81.1):
- React-RuntimeHermes (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2244,7 +2247,7 @@ PODS:
- React-runtimeexecutor
- React-utils
- SocketRocket
- React-runtimescheduler (0.81.1):
- React-runtimescheduler (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2266,9 +2269,9 @@ PODS:
- React-timing
- React-utils
- SocketRocket
- React-timing (0.81.1):
- React-timing (0.81.4):
- React-debug
- React-utils (0.81.1):
- React-utils (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2278,11 +2281,11 @@ PODS:
- RCT-Folly
- RCT-Folly/Fabric
- React-debug
- React-jsi (= 0.81.1)
- React-jsi (= 0.81.4)
- SocketRocket
- ReactAppDependencyProvider (0.81.1):
- ReactAppDependencyProvider (0.81.4):
- ReactCodegen
- ReactCodegen (0.81.1):
- ReactCodegen (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2308,7 +2311,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- SocketRocket
- ReactCommon (0.81.1):
- ReactCommon (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2316,9 +2319,9 @@ PODS:
- glog
- RCT-Folly
- RCT-Folly/Fabric
- ReactCommon/turbomodule (= 0.81.1)
- ReactCommon/turbomodule (= 0.81.4)
- SocketRocket
- ReactCommon/turbomodule (0.81.1):
- ReactCommon/turbomodule (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2327,15 +2330,15 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- React-callinvoker (= 0.81.1)
- React-cxxreact (= 0.81.1)
- React-jsi (= 0.81.1)
- React-logger (= 0.81.1)
- React-perflogger (= 0.81.1)
- ReactCommon/turbomodule/bridging (= 0.81.1)
- ReactCommon/turbomodule/core (= 0.81.1)
- React-callinvoker (= 0.81.4)
- React-cxxreact (= 0.81.4)
- React-jsi (= 0.81.4)
- React-logger (= 0.81.4)
- React-perflogger (= 0.81.4)
- ReactCommon/turbomodule/bridging (= 0.81.4)
- ReactCommon/turbomodule/core (= 0.81.4)
- SocketRocket
- ReactCommon/turbomodule/bridging (0.81.1):
- ReactCommon/turbomodule/bridging (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2344,13 +2347,13 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- React-callinvoker (= 0.81.1)
- React-cxxreact (= 0.81.1)
- React-jsi (= 0.81.1)
- React-logger (= 0.81.1)
- React-perflogger (= 0.81.1)
- React-callinvoker (= 0.81.4)
- React-cxxreact (= 0.81.4)
- React-jsi (= 0.81.4)
- React-logger (= 0.81.4)
- React-perflogger (= 0.81.4)
- SocketRocket
- ReactCommon/turbomodule/core (0.81.1):
- ReactCommon/turbomodule/core (0.81.4):
- boost
- DoubleConversion
- fast_float
......@@ -2359,14 +2362,14 @@ PODS:
- hermes-engine
- RCT-Folly
- RCT-Folly/Fabric
- React-callinvoker (= 0.81.1)
- React-cxxreact (= 0.81.1)
- React-debug (= 0.81.1)
- React-featureflags (= 0.81.1)
- React-jsi (= 0.81.1)
- React-logger (= 0.81.1)
- React-perflogger (= 0.81.1)
- React-utils (= 0.81.1)
- React-callinvoker (= 0.81.4)
- React-cxxreact (= 0.81.4)
- React-debug (= 0.81.4)
- React-featureflags (= 0.81.4)
- React-jsi (= 0.81.4)
- React-logger (= 0.81.4)
- React-perflogger (= 0.81.4)
- React-utils (= 0.81.4)
- SocketRocket
- SocketRocket (0.7.1)
- Yoga (0.0.0)
......@@ -2379,7 +2382,7 @@ DEPENDENCIES:
- fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
- QmsPlugin (from `../..`)
- QmsPlugin (from `../node_modules/QmsPlugin`)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
- RCTRequired (from `../node_modules/react-native/Libraries/Required`)
......@@ -2450,6 +2453,7 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- React-Codegen
- SocketRocket
EXTERNAL SOURCES:
......@@ -2469,7 +2473,7 @@ EXTERNAL SOURCES:
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
:tag: hermes-2025-07-07-RNv0.81.0-e0fc67142ec0763c6b6153ca2bf96df815539782
QmsPlugin:
:path: "../.."
:path: "../node_modules/QmsPlugin"
RCT-Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
RCTDeprecation:
......@@ -2605,78 +2609,79 @@ SPEC CHECKSUMS:
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb
fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6
FBLazyVector: b8f1312d48447cca7b4abc21ed155db14742bd03
FBLazyVector: 941bef1c8eeabd9fe1f501e30a5220beee913886
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
hermes-engine: 4f8246b1f6d79f625e0d99472d1f3a71da4d28ca
QmsPlugin: 4ddb3233395fa6b316ed2205fd620fda91fd57d0
hermes-engine: 35c763d57c9832d0eef764316ca1c4d043581394
QmsPlugin: d39fdd0ed3b483f7ea2b6192d09952629d98d080
RCT-Folly: 59ec0ac1f2f39672a0c6e6cecdd39383b764646f
RCTDeprecation: c4b9e2fd0ab200e3af72b013ed6113187c607077
RCTRequired: e97dd5dafc1db8094e63bc5031e0371f092ae92a
RCTTypeSafety: 720403058b7c1380c6a3ae5706981d6362962c89
React: f1486d005993b0af01943af1850d3d4f3b597545
React-callinvoker: 133f69368c8559e744efa345223625d412f5dfbe
React-Core: d6d8c1fd33697cec596d33b820456505ee305686
React-CoreModules: 81ab751a7668ba161440f9623b994e1a6a3019fe
React-cxxreact: 16f2a2751d0dce8b569f23c1914edc90f655b01b
React-debug: e01581e1589f329e61c95b332bf7f4969b10564b
React-defaultsnativemodule: e956b1d8fe15cc79d23061db229bf88170565f2f
React-domnativemodule: a18b0f7a31b9c75f12fa369baece5542d1265b36
React-Fabric: c0237a32c3c0dbea2d2b294c8e95605e1dfe2f57
React-FabricComponents: 65b03884bd5d9f24c79a631d7d26f0fa079bc4aa
React-FabricImage: de1ea2f2a0b32ad02e5cbb64827d1eec0439cf0d
React-featureflags: 02de9c35256cc624269b01d670d99e1fd706ea8d
React-featureflagsnativemodule: 8b84e67edbaa7b9318390c5bd3ae19790a74f356
React-graphics: 004b40c1b236ea3bb8de6693439bef9797922ba9
React-hermes: 2179a018b2f86652f6f33ef23efd9e5ac284b247
React-idlecallbacksnativemodule: f54ea68f984b12e42feed1e7110623b2c38df4d1
React-ImageManager: 9dd04b7b62bc5397f876ca5fb1b712e700ce390c
React-jserrorhandler: 2f90bf50fffea1d012e7f3d717c6adf748b1813d
React-jsi: b27208f8866e53238534f65f304903e4eff25e05
React-jsiexecutor: 1d3e827797f592c393860dea91aaa6d53c7715e7
React-jsinspector: bda319277ae779bc476b736fe3a497c6aed304cd
React-jsinspectorcdp: 69e1736edfd5420037680b7b4557fa748c3c8216
React-jsinspectornetwork: 7aa707b057c6129b4af59e0c9160436bbab25022
React-jsinspectortracing: b4a8a328ad2697f9638daa4b7cc054e0303fa47f
React-jsitooling: a6c7e2829437b28665e97a398b3374d443125e24
React-jsitracing: d87ae17dd0eef7844e605945da926c5433fe2b51
React-logger: d27dd2000f520bf891d24f6e141cde34df41f0ee
React-Mapbuffer: 0746ffab5ac0f49b7c9347338e3d0c1d9dd634c8
React-microtasksnativemodule: b0fb3f97372df39bda3e657536039f1af227cc29
react-native-safe-area-context: 6d8a7b750e496e37bda47c938320bf2c734d441f
React-NativeModulesApple: 9ec9240159974c94886ebbe4caec18e3395f6aef
React-oscompat: b12c633e9c00f1f99467b1e0e0b8038895dae436
React-perflogger: ccf4fd2664b00818645e588623c7531a8b32d114
React-performancetimeline: a866ba759d8e06e9ba174b4421677edcae487baf
React-RCTActionSheet: 3f741a3712653611a6bfc5abceb8260af9d0b218
React-RCTAnimation: 2edeebfba175cc2e937e2752209ab605d3c48f21
React-RCTAppDelegate: e292321e83ee966897244a032216a70930b758d6
React-RCTBlob: 8dfb24b6dd4a5af45e1e59e2fd925b2df1e44d08
React-RCTFabric: b25b02a2016f5cb15926a60c77a8d75865aa3558
React-RCTFBReactNativeSpec: 20338571a1ed853d01da6c68576aa6e8e107b6f6
React-RCTImage: c7fe8c2f2ae8bad98ab4d944d5d50a889da4b652
React-RCTLinking: 9ac21ce9f1af914bb01c06af3752db2ec840d0ee
React-RCTNetwork: 09a5de71d757dbad4b3fe3615839290200b932aa
React-RCTRuntime: da3f1e0ce088c20350044cdf1efcd7f8d9b9b40c
React-RCTSettings: fee112652ac7569ea9abe910206e1685f5f9adba
React-RCTText: 7ee9d0bc16b3a8149f8df6d70c48e724d0db1d89
React-RCTVibration: 619d613abaeb05f6fbc2b2e5e33f724f05df8eb8
React-rendererconsistency: a05f6c37f9389c53213d1e28798e441fa6fbdbcd
React-renderercss: 3decb27a81648fcdee837c59994b51fff5be5a67
React-rendererdebug: 3b9a92d36932af52e1b473f2a89ea4b05dbdecdf
React-RuntimeApple: 4e35fb74be4b721c2e1fd6d54ec66456fa7043e9
React-RuntimeCore: 0fd7ac6e3e9dd20cb47e87c6b9f35832dd445d5e
React-runtimeexecutor: 7680156c9f3a5a49c688bc33f9ec5ea1b00527f5
React-RuntimeHermes: 435b7104a3c749af6251353dcb7317a8e53cbd73
React-runtimescheduler: 8056b916168e446ea44531883928034e62e76a81
React-timing: 36da85e32e53008ce73f87528818191e7f2508ba
React-utils: 71e53d55ce778c6e7c7c9db4b1b9d63ef8f55289
ReactAppDependencyProvider: 448b422f8af1dedf81374eacc90a15439a0ed7f5
ReactCodegen: 3baedb0c33f963250c866151b825a3c5194b12f1
ReactCommon: e897f9a1b4afab370cfefaaf5fb3c80371bc3937
RCTDeprecation: c0ed3249a97243002615517dff789bf4666cf585
RCTRequired: 58719f5124f9267b5f9649c08bf23d9aea845b23
RCTTypeSafety: 4aefa8328ab1f86da273f08517f1f6b343f6c2cc
React: 2073376f47c71b7e9a0af7535986a77522ce1049
React-callinvoker: 751b6f2c83347a0486391c3f266f291f0f53b27e
React-Codegen: 4b8b4817cea7a54b83851d4c1f91f79aa73de30a
React-Core: 7195661f0b48e7ea46c3360ccb575288a20c932c
React-CoreModules: 14f0054ab46000dd3b816d6528af3bd600d82073
React-cxxreact: 7f602425c63096c398dac13cd7a300efd7c281ae
React-debug: 7b56a0a7da432353287d2eedac727903e35278f5
React-defaultsnativemodule: 695d8a0b40f735edb3c4031e0f049e567fdac47a
React-domnativemodule: 6d66c1f61f277d008d98cae650ce2c025b89d3b9
React-Fabric: 997d4115d688f483cb409a1290171bff3c93dab4
React-FabricComponents: 8167e5e363ca3a3fe394d8afee355e4072bea1db
React-FabricImage: f8f9f2c97657116702acc670e3f4357bc842bed3
React-featureflags: dfb4d0d527d55dd968231370f6832b9197ee653d
React-featureflagsnativemodule: c63cfd8fe95cd98f12ebb37daa919c4544810a45
React-graphics: fd795f1c2a1133a08dde31725b20949edd545dca
React-hermes: 0a167bbb02c242664745e82154578c64e90a88e5
React-idlecallbacksnativemodule: 1798c6aa33ddc7c2e9fa3c3d67729728639889e9
React-ImageManager: c498ee6945dffacc82bfa175aa3264212f27c70b
React-jserrorhandler: 216951fea62fc26c600f4c96f0dc4fd53d1e7a9b
React-jsi: 9c27d27d3007b73c702ad3fd5a6166557c741020
React-jsiexecutor: 2b24f4ed4026344a27f717bf947a434cbbeeff7a
React-jsinspector: 02394b059c48805780f7d977366317a24168d00e
React-jsinspectorcdp: f4b6d5c5c9db05ef44d082716714f90cfeed96bb
React-jsinspectornetwork: e7c77d01b5f0664e24c0bec1aea27d5e3d7fb746
React-jsinspectortracing: aaa96a4e53abb88dc6d47da3b5744c710652fef9
React-jsitooling: 226e5f4147c7b6f1ae1954a8406ffa713f3da828
React-jsitracing: 8a2fbeaa9c53c3f0b23904ccffefc890eae48d71
React-logger: 1767babce2d28c3251039ce05556714a2c8c6ded
React-Mapbuffer: 33f678ee25b6c0ee2b01b1ecec08e3e02424cefe
React-microtasksnativemodule: 44b44a4d3cd6ffb85d928abf741acdc26722de2e
react-native-safe-area-context: 54d812805f3c4e08a4580ad086cbde1d8780c2e4
React-NativeModulesApple: b5d18bc109c45c9a1c6b71664991b5cc3adc4e48
React-oscompat: 93b5535ea7f7dff46aaee4f78309a70979bdde9d
React-perflogger: a03d913e3205b00aee4128082abe42fd45ce0c98
React-performancetimeline: 9b5986cc15afafb9bf246d7dd55bdd138df94451
React-RCTActionSheet: 42195ae666e6d79b4af2346770f765b7c29435b9
React-RCTAnimation: 5c10527683128c56ff2c09297fb080f7c35bd293
React-RCTAppDelegate: c616bd5b0d12f0b21dfacee9cd2d512c6df013aa
React-RCTBlob: 6e3757bdd7dce6fd9788c0dd675fd6b6c432db9d
React-RCTFabric: e8f3b9da97477710bf0904a62eb5b5209c964694
React-RCTFBReactNativeSpec: c042f8d60d44ad9e2c722da89323c0bdab7a37af
React-RCTImage: a3482fe1ae562d1bab08b42d4670a7c9a21813cd
React-RCTLinking: d82b9adb141aef9d2b38d446b837ae7017ab60aa
React-RCTNetwork: fa9350dd99354c5695964f589bd4790bdd4f6a85
React-RCTRuntime: be99a38cd23388c08921d8969c82a1997a11ec90
React-RCTSettings: b7f4a03f44dba1d3a4dc6770843547b203ca9129
React-RCTText: 91dc597a5f6b27fd1048bb287c41ea05eeca9333
React-RCTVibration: 27b09ddf74bddfa30a58d20e48f885ea6ed6c9d9
React-rendererconsistency: b4785e5ed837dc7c242bbc5fdd464b33ef5bfae7
React-renderercss: cef3f26df2ddec558ce3c0790fc574b4fb62ce67
React-rendererdebug: e68433ae67738caeb672a6c8cc993e9276b298a9
React-RuntimeApple: dc1d4709bf847bc695dbe6e8aaf3e22ef25aef02
React-RuntimeCore: ca3473c8b6578693fa3bad4d44240098d49d6723
React-runtimeexecutor: 0db3ca0b09cd72489cef3a3729349b3c2cf13320
React-RuntimeHermes: f92cabaf97ef2546a74360eddfc1c74a34cb9ff8
React-runtimescheduler: 06aea75069e0d556a75d258bfc89eb0ebd5d557e
React-timing: 1a90df9a04d8e7fd165ff7fa0918b9595c776373
React-utils: 92115441fb55ce01ded4abfb5e9336a74cd93e9c
ReactAppDependencyProvider: b20fba6c3d091a393925890009999472c8f94d95
ReactCodegen: 58dc2eb138a27145826ad7d5568610159dfcadee
ReactCommon: 00df7b9f859c9d02181844255bb89a8bca544374
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
Yoga: 11c9686a21e2cd82a094a723649d9f4507200fb0
Yoga: a3ed390a19db0459bd6839823a6ac6d9c6db198d
PODFILE CHECKSUM: f9d4b399e070594dde380f858007327f17e1b75e
PODFILE CHECKSUM: 339176571494c40060aea1c2720f96b68f42c37a
COCOAPODS: 1.16.2
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
44006126336D83DB220E7214 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
712AE726B1EDFA0353239FF4 /* libPods-example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 89CD3CCA1A313A66796774B0 /* libPods-example.a */; };
761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = "<group>"; };
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = example/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = example/AppDelegate.swift; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = example/LaunchScreen.storyboard; sourceTree = "<group>"; };
89CD3CCA1A313A66796774B0 /* libPods-example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
AA47F8600CDF5615C68BB121 /* Pods-example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.release.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.release.xcconfig"; sourceTree = "<group>"; };
CAC784BC6AE487F1F44322C4 /* Pods-example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.debug.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.debug.xcconfig"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
712AE726B1EDFA0353239FF4 /* libPods-example.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
13B07FAE1A68108700A75B9A /* example */ = {
isa = PBXGroup;
children = (
13B07FB51A68108700A75B9A /* Images.xcassets */,
761780EC2CA45674006654EE /* AppDelegate.swift */,
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
);
name = example;
sourceTree = "<group>";
};
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
89CD3CCA1A313A66796774B0 /* libPods-example.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
);
name = Libraries;
sourceTree = "<group>";
};
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
13B07FAE1A68108700A75B9A /* example */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
BBD78D7AC51CEA395F1C20DB /* Pods */,
);
indentWidth = 2;
sourceTree = "<group>";
tabWidth = 2;
usesTabs = 0;
};
83CBBA001A601CBA00E9B192 /* Products */ = {
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* example.app */,
);
name = Products;
sourceTree = "<group>";
};
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
CAC784BC6AE487F1F44322C4 /* Pods-example.debug.xcconfig */,
AA47F8600CDF5615C68BB121 /* Pods-example.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
13B07F861A680F5B00A75B9A /* example */ = {
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */;
buildPhases = (
E1F13527B09D8BBE28BB41A2 /* [CP] Check Pods Manifest.lock */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
563A8AABF32F40EAA3E56CC8 /* [CP] Embed Pods Frameworks */,
A352AC6779C347D6263FC671 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = example;
productName = example;
productReference = 13B07F961A680F5B00A75B9A /* example.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1210;
TargetAttributes = {
13B07F861A680F5B00A75B9A = {
LastSwiftMigration = 1120;
};
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */;
compatibilityVersion = "Xcode 12.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
13B07F861A680F5B00A75B9A /* example */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
13B07F8E1A680F5B00A75B9A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
44006126336D83DB220E7214 /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"$(SRCROOT)/.xcode.env.local",
"$(SRCROOT)/.xcode.env",
);
name = "Bundle React Native code and images";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
563A8AABF32F40EAA3E56CC8 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
A352AC6779C347D6263FC671 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh\"\n";
showEnvVarsInLog = 0;
};
E1F13527B09D8BBE28BB41A2 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-example-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
13B07F871A680F5B00A75B9A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
761780ED2CA45674006654EE /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CAC784BC6AE487F1F44322C4 /* Pods-example.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = example/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = example;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AA47F8600CDF5615C68BB121 /* Pods-example.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
INFOPLIST_FILE = example/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = example;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
83CBBA201A601CBA00E9B192 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
);
LIBRARY_SEARCH_PATHS = (
"\"$(SDKROOT)/usr/lib/swift\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"-DFOLLY_NO_CONFIG",
"-DFOLLY_MOBILE=1",
"-DFOLLY_USE_LIBCPP=1",
"-DFOLLY_CFG_NO_COROUTINES=1",
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
USE_HERMES = true;
};
name = Debug;
};
83CBBA211A601CBA00E9B192 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "c++20";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
"$(inherited)",
);
LIBRARY_SEARCH_PATHS = (
"\"$(SDKROOT)/usr/lib/swift\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CPLUSPLUSFLAGS = (
"$(OTHER_CFLAGS)",
"-DFOLLY_NO_CONFIG",
"-DFOLLY_MOBILE=1",
"-DFOLLY_USE_LIBCPP=1",
"-DFOLLY_CFG_NO_COROUTINES=1",
"-DFOLLY_HAVE_CLOCK_GETTIME=1",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
USE_HERMES = true;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
13B07F941A680F5B00A75B9A /* Debug */,
13B07F951A680F5B00A75B9A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
83CBBA201A601CBA00E9B192 /* Debug */,
83CBBA211A601CBA00E9B192 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1210"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "example.app"
BlueprintName = "example"
ReferencedContainer = "container:example.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "00E356ED1AD99517003FC87E"
BuildableName = "exampleTests.xctest"
BlueprintName = "exampleTests"
ReferencedContainer = "container:example.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "example.app"
BlueprintName = "example"
ReferencedContainer = "container:example.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
BuildableName = "example.app"
BlueprintName = "example"
ReferencedContainer = "container:example.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
......@@ -2,7 +2,7 @@
<Workspace
version = "1.0">
<FileRef
location = "group:QmsPluginExample.xcodeproj">
location = "group:example.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
......
import UIKit
import React
import React_RCTAppDelegate
import ReactAppDependencyProvider
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var reactNativeDelegate: ReactNativeDelegate?
var reactNativeFactory: RCTReactNativeFactory?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
let delegate = ReactNativeDelegate()
let factory = RCTReactNativeFactory(delegate: delegate)
delegate.dependencyProvider = RCTAppDependencyProvider()
reactNativeDelegate = delegate
reactNativeFactory = factory
window = UIWindow(frame: UIScreen.main.bounds)
factory.startReactNative(
withModuleName: "example",
in: window,
launchOptions: launchOptions
)
return true
}
}
class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate {
override func sourceURL(for bridge: RCTBridge) -> URL? {
self.bundleURL()
}
override func bundleURL() -> URL? {
#if DEBUG
RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
#else
Bundle.main.url(forResource: "main", withExtension: "jsbundle")
#endif
}
}
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>example</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>RCTNewArchEnabled</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15702" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15704"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="example" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
<rect key="frame" x="0.0" y="202" width="375" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="MN2-I3-ftu">
<rect key="frame" x="0.0" y="626" width="375" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="bottom" secondItem="MN2-I3-ftu" secondAttribute="bottom" constant="20" id="OZV-Vh-mqD"/>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
<constraint firstItem="MN2-I3-ftu" firstAttribute="centerX" secondItem="Bcu-3y-fUS" secondAttribute="centerX" id="akx-eg-2ui"/>
<constraint firstItem="MN2-I3-ftu" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" id="i1E-0Y-4RG"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="x7j-FC-K8j"/>
</constraints>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="52.173913043478265" y="375"/>
</scene>
</scenes>
</document>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyTracking</key>
<false/>
</dict>
</plist>
module.exports = {
preset: 'react-native',
};
# EXAMPLE USAGE:
#
# Refer for explanation to following link:
# https://lefthook.dev/configuration/
#
# pre-push:
# jobs:
# - name: packages audit
# tags:
# - frontend
# - security
# run: yarn audit
#
# - name: gems audit
# tags:
# - backend
# - security
# run: bundle audit
#
# pre-commit:
# parallel: true
# jobs:
# - run: yarn eslint {staged_files}
# glob: "*.{js,ts,jsx,tsx}"
#
# - name: rubocop
# glob: "*.rb"
# exclude:
# - config/application.rb
# - config/routes.rb
# run: bundle exec rubocop --force-exclusion {all_files}
#
# - name: govet
# files: git ls-files -m
# glob: "*.go"
# run: go vet {files}
#
# - script: "hello.js"
# runner: node
#
# - script: "hello.go"
# runner: go run
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
/**
* Metro configuration
* https://reactnative.dev/docs/metro
*
* @type {import('@react-native/metro-config').MetroConfig}
*/
const config = {};
module.exports = mergeConfig(getDefaultConfig(__dirname), config);
{
"name": "qms-plugin-example",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"@react-native/new-app-screen": "0.81.4",
"QmsPlugin": "git+http://convep.ddns.me:20000/WeiHan/weihan-plugin.git",
"react": "19.1.0",
"react-native": "0.81.4",
"react-native-safe-area-context": "^5.5.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/preset-env": "^7.25.3",
"@babel/runtime": "^7.25.0",
"@react-native-community/cli": "20.0.0",
"@react-native-community/cli-platform-android": "20.0.0",
"@react-native-community/cli-platform-ios": "20.0.0",
"@react-native/babel-preset": "0.81.4",
"@react-native/eslint-config": "0.81.4",
"@react-native/metro-config": "0.81.4",
"@react-native/typescript-config": "0.81.4",
"@types/jest": "^29.5.13",
"@types/react": "^19.1.0",
"@types/react-test-renderer": "^19.1.0",
"eslint": "^8.19.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-test-renderer": "19.1.0",
"typescript": "^5.8.3"
},
"engines": {
"node": ">=20"
}
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = App;
var react_native_1 = require("react-native");
var react_native_qms_plugin_1 = require("@alepmustaqim03/react-native-qms-plugin");
var result = (0, react_native_qms_plugin_1.multiply)(9, 12);
function App() {
return (<react_native_1.View style={styles.container}>
<react_native_1.Text>Result: {result}</react_native_1.Text>
</react_native_1.View>);
}
var styles = react_native_1.StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
});
{
"extends": "@react-native/typescript-config",
"include": ["**/*.ts", "**/*.tsx"],
"exclude": ["**/node_modules", "**/Pods"]
}
......@@ -8,32 +8,32 @@
<key>BinaryPath</key>
<string>QmsPluginFramework.framework/QmsPluginFramework</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>QmsPluginFramework.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>QmsPluginFramework.framework/QmsPluginFramework</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>QmsPluginFramework.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
......
......@@ -4,13 +4,6 @@
NS_ASSUME_NONNULL_BEGIN
@interface QmsPluginFunc : NSObject
+ (NSNumber *)multiplyA:(double)a withB:(double)b;
+ (NSNumber *)sumA:(double)a withB:(double)b;
@end
@interface QmsPluginUI : NSObject
+ (UIViewController *)makeViewController;
......
......@@ -10,7 +10,7 @@
</data>
<key>Headers/QmsPlugin.h</key>
<data>
k1ElB+OnAYDlAZsTB5il2X25Zbo=
46196FWEMwEuy8Dd/6jLyvdFEok=
</data>
<key>Headers/QmsPluginFramework.h</key>
<data>
......@@ -38,7 +38,7 @@
<dict>
<key>hash2</key>
<data>
0Mb9gSDCwOc/iII1iRSpHuviN1zg4ZnFmrGQlJAjD5o=
uuQ2Omt7lnrShVFriPpMiXZhx8kx6Km97GxC3m1ro+A=
</data>
</dict>
<key>Headers/QmsPluginFramework.h</key>
......
......@@ -4,13 +4,6 @@
NS_ASSUME_NONNULL_BEGIN
@interface QmsPluginFunc : NSObject
+ (NSNumber *)multiplyA:(double)a withB:(double)b;
+ (NSNumber *)sumA:(double)a withB:(double)b;
@end
@interface QmsPluginUI : NSObject
+ (UIViewController *)makeViewController;
......
......@@ -10,7 +10,7 @@
</data>
<key>Headers/QmsPlugin.h</key>
<data>
k1ElB+OnAYDlAZsTB5il2X25Zbo=
46196FWEMwEuy8Dd/6jLyvdFEok=
</data>
<key>Headers/QmsPluginFramework.h</key>
<data>
......@@ -38,7 +38,7 @@
<dict>
<key>hash2</key>
<data>
0Mb9gSDCwOc/iII1iRSpHuviN1zg4ZnFmrGQlJAjD5o=
uuQ2Omt7lnrShVFriPpMiXZhx8kx6Km97GxC3m1ro+A=
</data>
</dict>
<key>Headers/QmsPluginFramework.h</key>
......
// FilterViewController.h
#import <UIKit/UIKit.h>
@interface FilterViewController : UIViewController
@property (nonatomic, copy) void (^onApplyFilter)(NSDate *fromDate, NSDate *toDate, NSString *status);
@end
// FilterViewController.m
#import "FilterViewController.h"
@interface FilterViewController ()
@property (nonatomic, strong) UIDatePicker *fromPicker;
@property (nonatomic, strong) UIDatePicker *toPicker;
@property (nonatomic, strong) UISegmentedControl *statusControl;
@property (nonatomic, strong) UIButton *applyButton;
@property (nonatomic, strong) UIButton *resetButton;
@end
@implementation FilterViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor systemBackgroundColor];
self.view.layer.cornerRadius = 12.0;
UILabel *fromLabel = [[UILabel alloc] init];
fromLabel.text = @"From:";
fromLabel.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:fromLabel];
self.fromPicker = [[UIDatePicker alloc] init];
self.fromPicker.datePickerMode = UIDatePickerModeDate;
self.fromPicker.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.fromPicker];
UILabel *toLabel = [[UILabel alloc] init];
toLabel.text = @"To:";
toLabel.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:toLabel];
self.toPicker = [[UIDatePicker alloc] init];
self.toPicker.datePickerMode = UIDatePickerModeDate;
self.toPicker.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.toPicker];
self.statusControl = [[UISegmentedControl alloc] initWithItems:@[@"All", @"Status", @"Pending Access", @"W.I.P"]];
self.statusControl.selectedSegmentIndex = 0;
self.statusControl.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.statusControl];
self.resetButton = [UIButton buttonWithType:UIButtonTypeSystem];
[self.resetButton setTitle:@"Reset" forState:UIControlStateNormal];
self.resetButton.backgroundColor = [UIColor colorWithWhite:0.9 alpha:1.0];
[self.resetButton setTitleColor:[UIColor systemRedColor] forState:UIControlStateNormal];
self.resetButton.layer.cornerRadius = 8;
self.resetButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.resetButton addTarget:self action:@selector(resetTapped) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.resetButton];
self.applyButton = [UIButton buttonWithType:UIButtonTypeSystem];
[self.applyButton setTitle:@"Apply Filter" forState:UIControlStateNormal];
self.applyButton.backgroundColor = [UIColor colorWithRed:0.0 green:0.43 blue:0.55 alpha:1.0];
[self.applyButton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
self.applyButton.layer.cornerRadius = 8;
self.applyButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.applyButton addTarget:self action:@selector(applyTapped) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.applyButton];
[NSLayoutConstraint activateConstraints:@[
[fromLabel.topAnchor constraintEqualToAnchor:self.view.topAnchor constant:20],
[fromLabel.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:16],
[self.fromPicker.topAnchor constraintEqualToAnchor:fromLabel.bottomAnchor constant:4],
[self.fromPicker.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:16],
[self.fromPicker.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor constant:-16],
[toLabel.topAnchor constraintEqualToAnchor:self.fromPicker.bottomAnchor constant:12],
[toLabel.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:16],
[self.toPicker.topAnchor constraintEqualToAnchor:toLabel.bottomAnchor constant:4],
[self.toPicker.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:16],
[self.toPicker.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor constant:-16],
[self.statusControl.topAnchor constraintEqualToAnchor:self.toPicker.bottomAnchor constant:20],
[self.statusControl.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:16],
[self.statusControl.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor constant:-16],
// 🔹 Reset + Apply buttons side by side
[self.resetButton.topAnchor constraintEqualToAnchor:self.statusControl.bottomAnchor constant:20],
[self.resetButton.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:40],
[self.resetButton.widthAnchor constraintEqualToConstant:120],
[self.resetButton.heightAnchor constraintEqualToConstant:40],
[self.applyButton.centerYAnchor constraintEqualToAnchor:self.resetButton.centerYAnchor],
[self.applyButton.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor constant:-40],
[self.applyButton.widthAnchor constraintEqualToConstant:150],
[self.applyButton.heightAnchor constraintEqualToConstant:40],
]];
}
- (void)applyTapped {
if (self.onApplyFilter) {
NSString *selectedStatus = [self.statusControl titleForSegmentAtIndex:self.statusControl.selectedSegmentIndex];
self.onApplyFilter(self.fromPicker.date, self.toPicker.date, selectedStatus);
}
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)resetTapped {
self.fromPicker.date = [NSDate date];
self.toPicker.date = [NSDate date];
self.statusControl.selectedSegmentIndex = 0;
// Optional: give feedback
[UIView animateWithDuration:0.2 animations:^{
self.resetButton.backgroundColor = [UIColor colorWithWhite:0.8 alpha:1.0];
} completion:^(BOOL finished) {
self.resetButton.backgroundColor = [UIColor colorWithWhite:0.9 alpha:1.0];
}];
}
@end
......@@ -276,7 +276,6 @@
}
#pragma mark - Data
- (void)populateData {
if (!self.issueData) return;
......@@ -378,6 +377,36 @@
}
});
}
//thumbnail marker
NSString *x = self.issueData[@"pos_x"];
NSString *y = self.issueData[@"pos_y"];
if (x && y) {
CGFloat posX = [x floatValue];
CGFloat posY = [y floatValue];
// Original floor plan size (replace these with actual known values)
CGFloat originalWidth = 1920.0;
CGFloat originalHeight = 1953.6;
// Scale to thumbnail
CGFloat thumbWidth = self.floorPlanThumbnail.bounds.size.width;
CGFloat thumbHeight = self.floorPlanThumbnail.bounds.size.height;
CGFloat scaleX = thumbWidth / originalWidth;
CGFloat scaleY = thumbHeight / originalHeight;
CGFloat dotX = posX * scaleX;
CGFloat dotY = posY * scaleY;
UIView *marker = [[UIView alloc] initWithFrame:CGRectMake(dotX - 4, dotY - 4, 8, 8)];
marker.backgroundColor = [UIColor systemRedColor];
marker.layer.cornerRadius = 4;
marker.layer.borderColor = [UIColor whiteColor].CGColor;
marker.layer.borderWidth = 1;
[self.floorPlanThumbnail addSubview:marker];
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
......@@ -428,7 +457,7 @@
- (void)handleFloorPlanTap {
NSString *planFullURL = self.issueData[@"plan_image"];
if (planFullURL.length == 0) return; // no full image available
if (planFullURL.length == 0) return; // No full image available
UIView *overlay = [[UIView alloc] initWithFrame:self.view.bounds];
overlay.backgroundColor = [UIColor colorWithWhite:0 alpha:0.95];
......@@ -442,24 +471,52 @@
fullImageView.userInteractionEnabled = YES;
[overlay addSubview:fullImageView];
// Fetch the full-resolution image asynchronously
// Dismiss on tap
UITapGestureRecognizer *dismissTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeFullFloorPlan)];
[overlay addGestureRecognizer:dismissTap];
// Animate overlay fade-in
[UIView animateWithDuration:0.25 animations:^{
overlay.alpha = 1;
}];
// Load full image asynchronously
NSURL *url = [NSURL URLWithString:planFullURL];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *data = [NSData dataWithContentsOfURL:url];
if (data) {
if (!data) return;
UIImage *img = [UIImage imageWithData:data];
if (!img) return;
dispatch_async(dispatch_get_main_queue(), ^{
fullImageView.image = img;
});
NSString *xStr = self.issueData[@"pos_x"];
NSString *yStr = self.issueData[@"pos_y"];
if (xStr && yStr) {
CGFloat posX = [xStr floatValue];
CGFloat posY = [yStr floatValue];
// Calculate scale and offsets based on aspect-fit
CGSize imageSize = img.size;
CGSize viewSize = fullImageView.bounds.size;
CGFloat scale = MIN(viewSize.width / imageSize.width, viewSize.height / imageSize.height);
CGFloat offsetX = (viewSize.width - imageSize.width * scale) / 2.0;
CGFloat offsetY = (viewSize.height - imageSize.height * scale) / 2.0;
CGFloat dotX = posX * scale + offsetX;
CGFloat dotY = posY * scale + offsetY;
UIView *marker = [[UIView alloc] initWithFrame:CGRectMake(dotX - 5, dotY - 5, 10, 10)];
marker.backgroundColor = [UIColor systemRedColor];
marker.layer.cornerRadius = 5;
marker.layer.borderColor = [UIColor whiteColor].CGColor;
marker.layer.borderWidth = 1.5;
[fullImageView addSubview:marker];
}
});
UITapGestureRecognizer *dismissTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeFullFloorPlan)];
[overlay addGestureRecognizer:dismissTap];
[UIView animateWithDuration:0.25 animations:^{
overlay.alpha = 1;
}];
});
}
- (void)closeFullFloorPlan {
......
......@@ -21,8 +21,7 @@
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.backgroundColor = UIColor.clearColor;
self.backgroundColor = UIColor.whiteColor;
UIView *card = [[UIView alloc] init];
card.layer.borderWidth = 1.0;
......@@ -32,6 +31,7 @@
card.layer.shadowRadius = 4;
card.layer.shadowOffset = CGSizeMake(0, 2);
card.layer.masksToBounds = NO;
card.layer.cornerRadius = 12.0;
card.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:card];
......@@ -79,8 +79,8 @@
[NSLayoutConstraint activateConstraints:@[
[card.topAnchor constraintEqualToAnchor:self.contentView.topAnchor constant:6],
[card.leadingAnchor constraintEqualToAnchor:self.contentView.leadingAnchor constant:16],
[card.trailingAnchor constraintEqualToAnchor:self.contentView.trailingAnchor constant:-16],
[card.leadingAnchor constraintEqualToAnchor:self.contentView.leadingAnchor constant:10],
[card.trailingAnchor constraintEqualToAnchor:self.contentView.trailingAnchor constant:-10],
[card.bottomAnchor constraintEqualToAnchor:self.contentView.bottomAnchor constant:-6],
[self.thumbView.leadingAnchor constraintEqualToAnchor:card.leadingAnchor constant:12],
......@@ -599,6 +599,8 @@
cell.detailsLabel.text = [NSString stringWithFormat:@"%@ → %@ → %@", category, type, issueText];
cell.statusLabel.text = status;
cell.statusLabel.backgroundColor = [self colorFromHexString:statusColor];
cell.backgroundColor = UIColor.clearColor;
cell.contentView.backgroundColor = UIColor.whiteColor;
// --- Thumbnail Handling ---
if (thumbURL.length > 0) {
......
......@@ -2,6 +2,7 @@
#import "WithdrawIssuesViewController.h"
#import "IssueAPIClient.h"
#import "WithdrawSingleIssueViewController.h"
#import "FilterViewController.h"
#pragma mark - custom cell structure
@interface WithdrawIssueCell : UITableViewCell
......@@ -20,76 +21,79 @@
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.backgroundColor = UIColor.clearColor;
self.backgroundColor = UIColor.whiteColor;
self.selectionStyle = UITableViewCellSelectionStyleNone;
UIView *card = [[UIView alloc] init];
card.backgroundColor = UIColor.whiteColor;
card.layer.cornerRadius = 12;
card.layer.shadowColor = [UIColor blackColor].CGColor;
card.layer.shadowOpacity = 0.1;
card.layer.shadowOffset = CGSizeMake(0, 2);
card.layer.borderWidth = 1.0;
card.layer.borderColor = [UIColor colorWithWhite:0.85 alpha:1.0].CGColor;
card.layer.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.2].CGColor;
card.layer.shadowOpacity = 0.25;
card.layer.shadowRadius = 4;
card.layer.shadowOffset = CGSizeMake(0, 2);
card.layer.masksToBounds = NO;
card.layer.cornerRadius = 12.0;
card.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:card];
// Tick/checkmark icon
_checkmarkView = [[UIImageView alloc] initWithImage:[UIImage systemImageNamed:@"circle"]];
_checkmarkView.tintColor = [UIColor lightGrayColor];
_checkmarkView.translatesAutoresizingMaskIntoConstraints = NO;
_checkmarkView.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:_checkmarkView];
self.checkmarkView = [[UIImageView alloc] initWithImage:[UIImage systemImageNamed:@"circle"]];
self.checkmarkView.tintColor = [UIColor lightGrayColor];
self.checkmarkView.translatesAutoresizingMaskIntoConstraints = NO;
self.checkmarkView.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:self.checkmarkView];
// Thumbnail
_thumbView = [[UIImageView alloc] init];
_thumbView.translatesAutoresizingMaskIntoConstraints = NO;
_thumbView.layer.cornerRadius = 25;
_thumbView.layer.masksToBounds = YES;
_thumbView.contentMode = UIViewContentModeScaleAspectFill;
[card addSubview:_thumbView];
self.thumbView = [[UIImageView alloc] init];
self.thumbView.layer.cornerRadius = 22;
self.thumbView.clipsToBounds = YES;
self.thumbView.translatesAutoresizingMaskIntoConstraints = NO;
self.thumbView.contentMode = UIViewContentModeScaleAspectFill;
[card addSubview:self.thumbView];
// Labels
_referenceLabel = [[UILabel alloc] init];
_referenceLabel.font = [UIFont boldSystemFontOfSize:16];
_referenceLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:_referenceLabel];
_statusLabel = [[UILabel alloc] init];
_statusLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_statusLabel.textColor = UIColor.whiteColor;
_statusLabel.backgroundColor = [UIColor systemTealColor];
_statusLabel.layer.cornerRadius = 6;
_statusLabel.layer.masksToBounds = YES;
_statusLabel.textAlignment = NSTextAlignmentCenter;
_statusLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:_statusLabel];
_locationLabel = [[UILabel alloc] init];
_locationLabel.font = [UIFont systemFontOfSize:14];
_locationLabel.textColor = UIColor.darkGrayColor;
_locationLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:_locationLabel];
_createdLabel = [[UILabel alloc] init];
_createdLabel.font = [UIFont systemFontOfSize:12];
_createdLabel.textColor = UIColor.grayColor;
_createdLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:_createdLabel];
_detailsLabel = [[UILabel alloc] init];
_detailsLabel.font = [UIFont systemFontOfSize:13];
_detailsLabel.textColor = [UIColor grayColor];
_detailsLabel.numberOfLines = 2;
_detailsLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:_detailsLabel];
self.referenceLabel = [[UILabel alloc] init];
self.referenceLabel.font = [UIFont boldSystemFontOfSize:15];
self.referenceLabel.textColor = [UIColor colorWithRed:0.0 green:0.45 blue:0.55 alpha:1];
self.referenceLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:self.referenceLabel];
self.statusLabel = [[UILabel alloc] init];
self.statusLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold];
self.statusLabel.textColor = UIColor.whiteColor;
self.statusLabel.textAlignment = NSTextAlignmentCenter;
self.statusLabel.backgroundColor = [UIColor systemBlueColor];
self.statusLabel.layer.cornerRadius = 12;
self.statusLabel.clipsToBounds = YES;
self.statusLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:self.statusLabel];
self.locationLabel = [[UILabel alloc] init];
self.locationLabel.font = [UIFont boldSystemFontOfSize:16];
self.locationLabel.textColor = UIColor.labelColor;
self.locationLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:self.locationLabel];
self.createdLabel = [[UILabel alloc] init];
self.createdLabel.font = [UIFont systemFontOfSize:13];
self.createdLabel.textColor = [UIColor colorWithWhite:0.45 alpha:1];
self.createdLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:self.createdLabel];
self.detailsLabel = [[UILabel alloc] init];
self.detailsLabel.font = [UIFont systemFontOfSize:14];
self.detailsLabel.textColor = UIColor.darkGrayColor;
self.detailsLabel.numberOfLines = 2;
self.detailsLabel.translatesAutoresizingMaskIntoConstraints = NO;
[card addSubview:self.detailsLabel];
// Layout
[NSLayoutConstraint activateConstraints:@[
// Checkmark
[_checkmarkView.leadingAnchor constraintEqualToAnchor:self.contentView.leadingAnchor constant:10],
[_checkmarkView.centerYAnchor constraintEqualToAnchor:self.contentView.centerYAnchor],
[_checkmarkView.widthAnchor constraintEqualToConstant:28],
[_checkmarkView.heightAnchor constraintEqualToConstant:28],
[self.checkmarkView.leadingAnchor constraintEqualToAnchor:self.contentView.leadingAnchor constant:10],
[self.checkmarkView.centerYAnchor constraintEqualToAnchor:self.contentView.centerYAnchor],
[self.checkmarkView.widthAnchor constraintEqualToConstant:28],
[self.checkmarkView.heightAnchor constraintEqualToConstant:28],
// Card itself
[card.leadingAnchor constraintEqualToAnchor:_checkmarkView.trailingAnchor constant:6],
......@@ -97,38 +101,29 @@
[card.topAnchor constraintEqualToAnchor:self.contentView.topAnchor constant:4],
[card.bottomAnchor constraintEqualToAnchor:self.contentView.bottomAnchor constant:-4],
// Thumbnail
[_thumbView.leadingAnchor constraintEqualToAnchor:card.leadingAnchor constant:12],
[_thumbView.topAnchor constraintEqualToAnchor:card.topAnchor constant:12],
[_thumbView.widthAnchor constraintEqualToConstant:50],
[_thumbView.heightAnchor constraintEqualToConstant:50],
// Reference
[_referenceLabel.topAnchor constraintEqualToAnchor:card.topAnchor constant:12],
[_referenceLabel.leadingAnchor constraintEqualToAnchor:_thumbView.trailingAnchor constant:12],
[_referenceLabel.trailingAnchor constraintLessThanOrEqualToAnchor:_statusLabel.leadingAnchor constant:-8],
// Status
[_statusLabel.centerYAnchor constraintEqualToAnchor:_locationLabel.centerYAnchor],
[_statusLabel.trailingAnchor constraintEqualToAnchor:card.trailingAnchor constant:-12],
[_statusLabel.widthAnchor constraintGreaterThanOrEqualToConstant:60],
[_statusLabel.heightAnchor constraintEqualToConstant:22],
// Location
[_locationLabel.topAnchor constraintEqualToAnchor:_referenceLabel.bottomAnchor constant:4],
[_locationLabel.leadingAnchor constraintEqualToAnchor:_thumbView.trailingAnchor constant:12],
[_locationLabel.trailingAnchor constraintEqualToAnchor:card.trailingAnchor constant:-12],
// Created
[_createdLabel.topAnchor constraintEqualToAnchor:_locationLabel.bottomAnchor constant:4],
[_createdLabel.leadingAnchor constraintEqualToAnchor:_thumbView.trailingAnchor constant:12],
[_createdLabel.trailingAnchor constraintEqualToAnchor:card.trailingAnchor constant:-12],
// Details (at bottom)
[_detailsLabel.topAnchor constraintEqualToAnchor:_createdLabel.bottomAnchor constant:4],
[_detailsLabel.leadingAnchor constraintEqualToAnchor:_thumbView.trailingAnchor constant:12],
[_detailsLabel.trailingAnchor constraintEqualToAnchor:card.trailingAnchor constant:-12],
[_detailsLabel.bottomAnchor constraintEqualToAnchor:card.bottomAnchor constant:-12],
[self.thumbView.leadingAnchor constraintEqualToAnchor:card.leadingAnchor constant:12],
[self.thumbView.topAnchor constraintEqualToAnchor:card.topAnchor constant:12],
[self.thumbView.widthAnchor constraintEqualToConstant:44],
[self.thumbView.heightAnchor constraintEqualToConstant:44],
[self.statusLabel.trailingAnchor constraintEqualToAnchor:card.trailingAnchor constant:-12],
[self.statusLabel.topAnchor constraintEqualToAnchor:card.topAnchor constant:12],
[self.statusLabel.widthAnchor constraintEqualToConstant:70],
[self.statusLabel.heightAnchor constraintEqualToConstant:24],
[self.locationLabel.leadingAnchor constraintEqualToAnchor:self.thumbView.trailingAnchor constant:12],
[self.locationLabel.topAnchor constraintEqualToAnchor:card.topAnchor constant:12],
[self.createdLabel.leadingAnchor constraintEqualToAnchor:self.thumbView.trailingAnchor constant:12],
[self.createdLabel.topAnchor constraintEqualToAnchor:self.locationLabel.bottomAnchor constant:4],
[self.referenceLabel.leadingAnchor constraintEqualToAnchor:card.leadingAnchor constant:12],
[self.referenceLabel.topAnchor constraintEqualToAnchor:self.thumbView.bottomAnchor constant:8],
[self.detailsLabel.leadingAnchor constraintEqualToAnchor:card.leadingAnchor constant:12],
[self.detailsLabel.trailingAnchor constraintEqualToAnchor:card.trailingAnchor constant:-12],
[self.detailsLabel.topAnchor constraintEqualToAnchor:self.referenceLabel.bottomAnchor constant:4],
[self.detailsLabel.bottomAnchor constraintEqualToAnchor:card.bottomAnchor constant:-12],
]];
}
return self;
......@@ -152,6 +147,7 @@
@property (nonatomic, strong) UIButton *backButton;
@property (nonatomic, strong) UILabel *titleLabel;
@property (nonatomic, strong) UISearchBar *searchBar;
@property (nonatomic, strong) UILabel *searchLabel;
@property (nonatomic, strong) UIButton *filterButton;
@property (nonatomic, strong) UIButton *selectAllButton;
@property (nonatomic, strong) UITableView *tableView;
......@@ -161,6 +157,9 @@
@property (nonatomic, strong) NSArray *issues;
@property (nonatomic, strong) NSMutableSet *selectedIssueIDs;
@property (nonatomic, strong) NSArray *filteredIssues;
@property (nonatomic, strong) NSDate *filterFromDate;
@property (nonatomic, strong) NSDate *filterToDate;
@property (nonatomic, copy) NSString *filterStatus;
@end
......@@ -260,6 +259,13 @@
self.searchBar.opaque = YES;
[searchContainer addSubview:self.searchBar];
self.searchLabel = [[UILabel alloc] init];
self.searchLabel.text = @"All Issues";
self.searchLabel.font = [UIFont boldSystemFontOfSize:16];
self.searchLabel.textColor = UIColor.labelColor;
self.searchLabel.translatesAutoresizingMaskIntoConstraints = NO;
[searchContainer addSubview:self.searchLabel];
self.selectAllButton = [UIButton buttonWithType:UIButtonTypeSystem];
[self.selectAllButton setTitle:@"Select All" forState:UIControlStateNormal];
[self.selectAllButton setTitleColor:[UIColor colorWithRed:0.0 green:0.43 blue:0.55 alpha:1.0] forState:UIControlStateNormal];
......@@ -267,6 +273,15 @@
[self.selectAllButton addTarget:self action:@selector(selectAllTapped) forControlEvents:UIControlEventTouchUpInside];
[searchContainer addSubview:self.selectAllButton];
// Filter button (next to search bar)
self.filterButton = [UIButton buttonWithType:UIButtonTypeSystem];
UIImage *filterIcon = [UIImage systemImageNamed:@"line.3.horizontal.decrease.circle"];
[self.filterButton setImage:filterIcon forState:UIControlStateNormal];
self.filterButton.tintColor = [UIColor colorWithRed:0.0 green:0.43 blue:0.55 alpha:1.0];
self.filterButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.filterButton addTarget:self action:@selector(filterTapped) forControlEvents:UIControlEventTouchUpInside];
[searchContainer addSubview:self.filterButton];
[NSLayoutConstraint activateConstraints:@[
[searchContainer.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor constant:50],
[searchContainer.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:8],
......@@ -277,6 +292,14 @@
[self.searchBar.trailingAnchor constraintEqualToAnchor:searchContainer.trailingAnchor],
[self.searchBar.centerYAnchor constraintEqualToAnchor:searchContainer.centerYAnchor constant:-10],
[self.filterButton.trailingAnchor constraintEqualToAnchor:self.selectAllButton.leadingAnchor constant:-12],
[self.filterButton.centerYAnchor constraintEqualToAnchor:self.selectAllButton.centerYAnchor],
[self.filterButton.widthAnchor constraintEqualToConstant:28],
[self.filterButton.heightAnchor constraintEqualToConstant:28],
[self.searchLabel.leadingAnchor constraintEqualToAnchor:searchContainer.leadingAnchor constant:16],
[self.searchLabel.centerYAnchor constraintEqualToAnchor:self.selectAllButton.centerYAnchor],
[self.selectAllButton.trailingAnchor constraintEqualToAnchor:searchContainer.trailingAnchor constant:-16],
[self.selectAllButton.topAnchor constraintEqualToAnchor:self.searchBar.bottomAnchor constant:8],
]];
......@@ -367,7 +390,13 @@
// ✅ Filter to show only "W.I.P" issues
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"status_external == %@", @"W.I.P"];
self.issues = [allIssues filteredArrayUsingPredicate:predicate];
NSArray *filtered = [allIssues filteredArrayUsingPredicate:predicate];
// ✅ Sort by date descending (newest first)
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"created_at" ascending:NO];
NSArray *sorted = [filtered sortedArrayUsingDescriptors:@[sortDescriptor]];
self.issues = sorted;
self.filteredIssues = self.issues;
dispatch_async(dispatch_get_main_queue(), ^{
......@@ -481,6 +510,86 @@
alpha:1.0];
}
- (void)filterTapped {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Filter Issues"
message:nil
preferredStyle:UIAlertControllerStyleAlert];
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"From Date (YYYY-MM-DD)";
}];
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"To Date (YYYY-MM-DD)";
}];
UIAlertAction *allStatus = [UIAlertAction actionWithTitle:@"All" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self applyFilterWithStatus:@"All"];
}];
UIAlertAction *lodged = [UIAlertAction actionWithTitle:@"Lodged" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self applyFilterWithStatus:@"Lodged"];
}];
UIAlertAction *pending = [UIAlertAction actionWithTitle:@"Pending Access" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self applyFilterWithStatus:@"Pending Access"];
}];
UIAlertAction *wip = [UIAlertAction actionWithTitle:@"W.I.P" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self applyFilterWithStatus:@"W.I.P"];
}];
[alert addAction:allStatus];
[alert addAction:lodged];
[alert addAction:pending];
[alert addAction:wip];
[alert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
[self presentViewController:alert animated:YES completion:nil];
}
- (void)applyFilterWithStatus:(NSString *)status {
NSLog(@"Filter applied: %@", status);
if ([status isEqualToString:@"All"]) {
self.filteredIssues = self.issues;
} else {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"status_external == %@", status];
self.filteredIssues = [self.issues filteredArrayUsingPredicate:predicate];
}
[self.tableView reloadData];
}
- (void)applyFilter {
NSMutableArray *filtered = [NSMutableArray array];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd"; // match your issue[@"created_at"] format
for (NSDictionary *issue in self.issues) {
NSString *status = issue[@"status_external"] ?: @"";
NSString *dateStr = issue[@"created_at"] ?: @"";
NSDate *createdDate = [formatter dateFromString:dateStr];
BOOL matchDate = YES;
if (self.filterFromDate && createdDate && [createdDate compare:self.filterFromDate] == NSOrderedAscending) {
matchDate = NO;
}
if (self.filterToDate && createdDate && [createdDate compare:self.filterToDate] == NSOrderedDescending) {
matchDate = NO;
}
BOOL matchStatus = YES;
if (self.filterStatus && ![self.filterStatus isEqualToString:@"All"]) {
matchStatus = [status isEqualToString:self.filterStatus];
}
if (matchDate && matchStatus) {
[filtered addObject:issue];
}
}
self.filteredIssues = filtered;
[self.tableView reloadData];
}
#pragma mark - TableView
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *issue = self.filteredIssues[indexPath.section];
......@@ -562,6 +671,8 @@
cell.detailsLabel.text = [NSString stringWithFormat:@"%@ → %@ → %@",
category, type, issueText];
cell.backgroundColor = UIColor.clearColor;
cell.contentView.backgroundColor = UIColor.whiteColor;
// Highlight selected ones
BOOL isSelected = [self.selectedIssueIDs containsObject:issue[@"id"]];
[cell updateSelectionState:isSelected];
......@@ -579,7 +690,7 @@
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
return 110;
return 140;
}
// Remove empty header/footer lines at end
......
......@@ -4,13 +4,6 @@
NS_ASSUME_NONNULL_BEGIN
@interface QmsPluginFunc : NSObject
+ (NSNumber *)multiplyA:(double)a withB:(double)b;
+ (NSNumber *)sumA:(double)a withB:(double)b;
@end
@interface QmsPluginUI : NSObject
+ (UIViewController *)makeViewController;
......
......@@ -2,18 +2,6 @@
#import "QmsPlugin.h"
#import "DashboardViewController.h"
@implementation QmsPluginFunc
+ (NSNumber *)multiplyA:(double)a withB:(double)b {
return @(a * b);
}
+ (NSNumber *)sumA:(double)a withB:(double)b {
return @(a + b);
}
@end
@implementation QmsPluginUI
+ (UIViewController *)makeViewController {
......
......@@ -8,32 +8,32 @@
<key>BinaryPath</key>
<string>QmsPluginFramework.framework/QmsPluginFramework</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>QmsPluginFramework.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>QmsPluginFramework.framework/QmsPluginFramework</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>QmsPluginFramework.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
......
......@@ -4,13 +4,6 @@
NS_ASSUME_NONNULL_BEGIN
@interface QmsPluginFunc : NSObject
+ (NSNumber *)multiplyA:(double)a withB:(double)b;
+ (NSNumber *)sumA:(double)a withB:(double)b;
@end
@interface QmsPluginUI : NSObject
+ (UIViewController *)makeViewController;
......
......@@ -10,7 +10,7 @@
</data>
<key>Headers/QmsPlugin.h</key>
<data>
k1ElB+OnAYDlAZsTB5il2X25Zbo=
46196FWEMwEuy8Dd/6jLyvdFEok=
</data>
<key>Headers/QmsPluginFramework.h</key>
<data>
......@@ -38,7 +38,7 @@
<dict>
<key>hash2</key>
<data>
0Mb9gSDCwOc/iII1iRSpHuviN1zg4ZnFmrGQlJAjD5o=
uuQ2Omt7lnrShVFriPpMiXZhx8kx6Km97GxC3m1ro+A=
</data>
</dict>
<key>Headers/QmsPluginFramework.h</key>
......
......@@ -4,13 +4,6 @@
NS_ASSUME_NONNULL_BEGIN
@interface QmsPluginFunc : NSObject
+ (NSNumber *)multiplyA:(double)a withB:(double)b;
+ (NSNumber *)sumA:(double)a withB:(double)b;
@end
@interface QmsPluginUI : NSObject
+ (UIViewController *)makeViewController;
......
......@@ -10,7 +10,7 @@
</data>
<key>Headers/QmsPlugin.h</key>
<data>
k1ElB+OnAYDlAZsTB5il2X25Zbo=
46196FWEMwEuy8Dd/6jLyvdFEok=
</data>
<key>Headers/QmsPluginFramework.h</key>
<data>
......@@ -38,7 +38,7 @@
<dict>
<key>hash2</key>
<data>
0Mb9gSDCwOc/iII1iRSpHuviN1zg4ZnFmrGQlJAjD5o=
uuQ2Omt7lnrShVFriPpMiXZhx8kx6Km97GxC3m1ro+A=
</data>
</dict>
<key>Headers/QmsPluginFramework.h</key>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
import QmsPlugin from './NativeQmsPlugin';
export function multiply(a: number, b: number): number {
function multiply(a: number, b: number): number {
return QmsPlugin.multiply(a, b);
}
export function sum(a: number, b: number): number {
function sum(a: number, b: number): number {
return QmsPlugin.sum(a, b);
}
export function showPluginUI(): void {
function showPluginUI(): void {
QmsPlugin.showPluginUI();
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment