Basically for now:
Run bun i , bun run clean , and do everything we do when we build the app
Run bun run start and keep the Metro bundler running through the entire process
Run xed ios on the project folder. It will open the Xcode project
Set the target device (On the top of the Xcode window, Right after MyBeacon > ) to Any iOS Device (arm64)
On the top menu, Press Product > Archive
When the build finishes, Organizer window will come. Press Distribute App
Select Custom, Next, Select App Store C<#
.SYNOPSIS
Detects Secure Boot certificate update status for fleet-wide monitoring.
.DESCRIPTION
This detection script collects Secure Boot status, certificate update registry values,
and device information. It outputs a JSON string for monitoring and reporting.
Compatible with Intune Remediations, GPO-based collection, and other management tools.
No remediation script is needed — this is monitoring only.
Exit 0 = "Without issue" (certificates updated)
Exit 1 = import { useState } from "react";
import { Text, View, TextInput, TouchableOpacity, Switch, Platform, ScrollView } from "react-native";
import TopNav from "./topNav";
import BottomNav from "./bottomNav_2";
import * as DocumentPicker from 'expo-document-picker';
let DateTimePicker = null;
if (Platform.OS !== 'web') {
try {
DateTimePicker = require('@react-native-community/datetimepicker').default;
} catch (error) {
console.log('DateTimePicker not available');
import React, { useEffect, useState } from "react";
import { View, Text, ScrollView } from "react-native";
import BottomNav from "./bottomNav_2";
import TopNav from './topNav';
export default function Dashboard({ navigation }) {
const [values, setValues] = useState({
temperature: 0,
humidity: 0,
light: 0,
pressure: 0,
moisture: 0,
altitude: 0,
});
return (
<View style={{ flex: 1, width: "100%" }}>
<TopNav navigation={navigation} />
import React from "react";
import { View, Text, Image, ScrollView, TouchableOpacity } from "react-native";
import BottomNav from "./bottomNav_2";
import TopNav from "./topNav";
const mountainImage = require("../assets/mountain.png");
const architectureImage = require("../assets/architecture.png")
const inovationImage = require("../assets/inovation.png")
const images = [
{ title: "Beautiful Mountain Landscape Photography Collection for Nature Enthusiasts", imageSource: mountainImaimport React from "react";
import { View, Text, TouchableOpacity } from "react-native";
export default function EditDelete({ onDelete, onEdit }) {
return (
<View style={{
flexDirection: "column",
width: 150,
height: 100,
maxHeight: 100,
borderRadius: 14,
borderColor: "#000000",
borderWidth: 1,
backgroundColor: "#ffffff",
ovimport React from "react";
import { useState } from "react";
import { View, Text, TouchableOpacity } from "react-native";
import BottomNav from "./bottomNav_2";
import TopNav from './topNav';
import EditDelete from "./editDelete";
export default function Container({ navigation }) {
const handleDelete = () => {
console.log("Delete action triggered");
setShowEditDelete(false);
}
const handleEdit = () => {
console.log("Edit action triggered");
import { View, Text, TouchableOpacity } from 'react-native';
export default function PageNotFound({ onGoHome }) {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center", paddingHorizontal: 16 }}>
<Text style={{ fontSize: 40, fontWeight: "bold", color: "#000" }}>Oops!</Text>
<Text style={{ fontSize: 16, textAlign: "center", marginTop: 16, maxWidth: 300 }}>
You need to be logged in to access this page.
For your security and to pconst [open, setOpen] = useState(false);
const [overlayActive, setOverlayActive] = useState(false);
const slideAnim = useState(new Animated.Value(screenWidth))[0];
const togglePanel = () => {
if (open) {
Animated.timing(slideAnim, {
toValue: screenWidth,
duration: 300,
useNativeDriver: false,
}).start(() => setOpen(false));
} else {
setOpen(true);
Animated.timimport { useEffect, useState } from "react";
import { Text, View } from "react-native";
import { Ionicons } from '@expo/vector-icons';
export default function Success({ onDone }) {
const [showSuccess, setShowSuccess] = useState(false);
useEffect(() => {
const timer = setTimeout(() => {
if(onDone) {
onDone();
}
}, 5000);
return () => clearTimeout(timer);
}, [onDone]);
return (
<View style={import { useEffect, useState } from "react";
import { Text, View, TextInput, TouchableOpacity } from "react-native";
export default function VerifyCode({ onSuccess }) {
const [email, setEmail] = useState("");
const [error, setError] = useState("");
const [code, setCode] = useState("");
const [loading, setLoading] = useState(false);
const onVerifyPress = () => {
setError("");
if (!email || !code) {
setError("Please fill in all fieldsimport { useState } from "react";
import { Text, View, TextInput, TouchableOpacity } from "react-native";
export default function SignUp({ onLoginPress, onVerifyPress }) {
const [email, setEmail] = useState("");
const [username, setUsername] = useState("");
const [password, setPassword] = useState("");
const [repeatPassword, setRepeatPassword] = useState("");
const [error, setError] = useState("");
const [loading, setLoading] = useState(false);
const onSiimport { Text, View, TextInput, TouchableOpacity } from "react-native";
import { useState } from "react";
export default function Login({ onSignUpPress }) {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [error, setError] = useState("");
const [loading, setLoading] = useState(false);
const onLoginPress = () => {
setError("");
if (!email || !password) {
setError("Please fill in all fields.")import React from "react";
import { View, Text, TouchableOpacity } from "react-native";
import { useNavigation } from "@react-navigation/native";
import Icons from "react-native-vector-icons/FontAwesome";
const tabs = [
{ name: "Home", route: "Home", icon: "home" },
{ name: "Dashboard", route: "Dashboard", icon: "bar-chart" },
{ name: "ImageCart", route: "ImageCart", icon: "image" },
];
export default function BottomNav({ navigation }) {
const containerPadding = 20;
reimport React, { useState } from "react";
import { View, Text, Image, Pressable, Animated, Dimensions, TouchableOpacity, } from "react-native";
import { StatusBar } from "react-native";
const screenWidth = Dimensions.get("window").width;
const TopNav = ({ navigation }) => {
const tabs = [
{ name: "Home", route: "Home" },
{ name: "Dashboard", route: "Dashboard" },
{ name: "ImageCart", route: "ImageCart" },
{ name: "Form", route: "Form" },
];
/**
* @param {string} n
* @return {number}
*/
var minPartitions = function(n) {
// We want the minimum number of deci-binary numbers needed.
// A deci-binary number can only contribute 0 or 1 to each digit.
// Therefore, the number of deci-binary numbers required is equal
// to the maximum digit in the string.
let maxDigit = 0; // Track the largest digit we encounter
// Loop through each character in the string
for (let char of n) {
const digit = char -