앱 빌드/개발 환경에 맞춰 깔끔하게 환경변수를 설정하기 위해 react-native-config 를 사용하고 있다

https://github.com/luggit/react-native-config

 

GitHub - luggit/react-native-config: Bring some 12 factor love to your mobile apps!

Bring some 12 factor love to your mobile apps! Contribute to luggit/react-native-config development by creating an account on GitHub.

github.com

 

android 의 경우 공식 문서를 따라가면 잘 실행이 되지만,

ios 의 경우 공식 문서를 정확히 따라가도 환경변수를 읽을 수 없는 문제가 발생하는데

접해보지 못한 여러 원인들이 있을 수 있겠지만, 나의 경우 apple chip (M2) 이 원인이었다.

(뜬금없지만 Docker 를 사용하는 경우에도 intel -> apple chip 으로 넘어오는 경우 build 명령어에 --platform=linux/amd64 를 추가해주어야한다..)

 

ios/Podfile 의 맨 하단 > post_install do |installer| 에 아래 명령어를 추가해준다

 

installer.pods_project.build_configurations.each do |config|
          config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"

 

위 명령어는 IOS 시뮬레이터 중에서 시뮬레이터를 지원하지 않는 아키텍처인 arm64 를 빌드 과정에서 제외하도록 설정한다.

...생략...

post_install do |installer|
    # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
    installer.pods_project.build_configurations.each do |config|
          config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
          end

    react_native_post_install(
      installer,
      config[:reactNativePath],
      :mac_catalyst_enabled => false
    )
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
end
class QNode {
    constructor(value) {
        this.value = value;
        this.next = null;
    }
}

class Queue {
    #front = null;
    #reer = null;
    constructor() {
        this.size = 0;
    }
    push (x) {
        const newNode = new QNode(x);
        if (!this.size) {
            this.#front = newNode;
            this.#reer = newNode;
        } else {
            this.#reer.next = newNode;
            this.#reer = newNode;
        }

        this.size++;
    }
    pop() {
        if (this.size !== 0) {
            const nextNode = this.#front.next;
            const { value } = { ...this.#front };
            this.#front = nextNode;
            this.size--;
            return value;
        }
    }
    top() {
        if (this.size !== 0) {
            return this.#front.value;
        }
    }
}

'algorithm > algorithm' 카테고리의 다른 글

STL 기억안나는 부분 정리  (0) 2021.01.23
Binary , lower , upper searching  (0) 2020.09.24
이분 매칭(Bipartite Matching)  (0) 2020.06.22
네트워크 플로우(Maximum flow)  (0) 2020.06.22
위상 정렬(Topological Sort)  (0) 2020.06.22

 

const fs = require('fs');
// const input = fs.readFileSync('./testcase.txt').toString().trim();
const input = fs.readFileSync('/dev/stdin').toString().trim();

const inputs = input.split('\n');
const N = inputs[0];

function initMethodInArrayPrototype() {
    if (
        Array.prototype.at === undefined ||
        typeof Array.prototype.at !== 'function'
    ) {
        Array.prototype.at = (index) => {
            if (index >= 0) {
                if (index < this.length) return this[index];
                else return undefined;
            }
            else {
                const ridx = index * -1;
                if (ridx > this.length) return undefined;
                return this[this.length - ridx];
            }
        }
    }
}

class Stack {
    constructor() {
        this.stack = [];
    }
    push(x) {
        this.stack.push(x);
    }
    pop() {
        if (this.stack.length === 0) {
            return -1;
        } else {
            return this.stack.pop();
        }
    }
    size() {
        return this.stack.length;
    }
    empty() {
        return this.stack.length ? 0 : 1;
    }
    top() {
        if (this.stack.length) {
            return this.stack.at(-1);
        } else {
            return -1;
        }
    }
}

initMethodInArrayPrototype();
const stack = new Stack();
let answer = '';

for (let i = 1; i <= N; i++) {
    const [req, num] = [...inputs[i].split(' ')];
    if (req === 'push') {
        stack.push(+num);
    }
    if (req === 'pop') {
        answer += stack.pop() + '\n';
    }
    if (req === 'size') {
        answer += stack.size() + '\n';
    }
    if (req === 'top') {
        answer += stack.top() + '\n';
    }
    if (req === 'empty') {
        answer += stack.empty() + '\n';
    }
}

console.log(answer);

https://www.acmicpc.net/problem/10828

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

 

'algorithm > BOJ' 카테고리의 다른 글

BOJ 1486번 등산  (1) 2021.04.17
BOJ 2273번 줄 서기  (0) 2021.04.17
BOJ 3584번 가장 가까운 공통 조상  (0) 2021.03.31
BOJ 1103번 게임  (0) 2021.03.16
BOJ 2194번 유닛 이동시키기 C++  (0) 2020.07.05

cause Node Version Upgrade

solve: 

react-scripts --openssl-legacy-provider start

'web > React' 카테고리의 다른 글

React-Query Dynamic Parallel Queries  (0) 2023.06.06
React Context API  (0) 2023.04.01
제너레이터(Generator)  (1) 2021.01.11
Redux 비동기(redux-saga)  (0) 2021.01.11
리액트 내장 훅  (0) 2021.01.01

+ Recent posts