ข้ามไปยังเนื้อหาหลัก

Checklist การย้ายเครื่อง

หน้านี้บันทึกสิ่งที่ผูกกับเครื่องและสิ่งที่ต้องเช็กเมื่อต้องย้ายงาน Android/iOS dev หรือ release ไปเครื่องใหม่

จุดที่ต้องเช็ก​

  • apps/mobile/android/local.properties
  • apps/pos-terminal/android/local.properties
  • JAVA_HOME
  • ANDROID_HOME
  • ANDROID_SDK_ROOT
  • release keystore และ MYAPP_UPLOAD_*
  • shell aliases, CI/CD scripts และ helper script ที่อยู่นอก repo
  • Xcode first launch, simulator runtime, CocoaPods และ cmake
  • network ไป GitHub สำหรับ dependency ที่ pod install ต้อง download

Node ผ่าน nvm​

React Native ทั้งสองแอปต้องใช้ Node >=22.11.0 งานอัปเกรด React Native 0.87.1 และ smoke test บนเครื่องจริงทำด้วย Node 26.7.0 และ Yarn 1.22.22 บนเครื่องที่ใช้ nvm ให้รัน:

nvm install 26.7.0
nvm use 26.7.0
node --version
yarn --version

เลือก Node version ก่อนรัน yarn install --frozen-lockfile ที่ root เพื่อให้ native scripts และ postinstall patch ใช้ runtime เดียวกัน

ลำดับแนะนำ​

  1. clone repo ลงเครื่องใหม่
  2. ติดตั้ง Node, Yarn, Java, Android SDK, NDK, Xcode, CocoaPods และ CMake
  3. เลือก Node version ที่รองรับผ่าน nvm แล้วรัน yarn install --frozen-lockfile ที่ monorepo root
  4. เปิด Android Studio หนึ่งครั้งเพื่อให้ local settings ถูกสร้างหรือ refresh
  5. ตรวจ JAVA_HOME, ANDROID_HOME, ANDROID_SDK_ROOT
  6. ตรวจ keystore และ signing properties
  7. รัน yarn mobile:android
  8. รัน yarn mobile:apk หรือ yarn mobile:aab

iOS setup checks​

สำหรับ mobile iOS ให้เริ่มที่:

cd apps/mobile/ios
pod install

ก่อนรัน pod install หรือ xcodebuild บนเครื่องใหม่ ให้ตรวจว่า:

  • Xcode ทำ first launch และติดตั้ง components ครบแล้ว
  • ติดตั้ง simulator runtime จาก Xcode Settings แล้ว
  • cmake --version ใช้งานได้
  • เครื่องต่อ GitHub ได้ เพราะบาง pods ต้อง download จาก GitHub
  • รัน yarn install ที่ repo root แล้ว เพื่อให้ root postinstall patch dependency ที่ต้องใช้กับ React Native new architecture

ถ้า xcodebuild แจ้งปัญหา first launch หรือ plugin ของ Xcode ให้รัน:

xcodebuild -runFirstLaunch

apps/mobile/ios/Podfile มี fix เฉพาะ repo:

  • ปิด SPM ของ RNFirebase 26 เพื่อให้ CocoaPods ทำงานร่วมกับ static linkage ของโปรเจกต์ได้
  • สร้าง symlink ของ gRPC-Core.modulemap ใต้ Pods/Headers/Private/grpc และ Pods/Headers/Public/grpc
  • ลบ -weak_framework "FirebaseFirestoreInternal" จาก generated app xcconfig เพื่อลดปัญหา link framework ที่ไม่มีจริง

root package.json มี postinstall สำหรับรัน scripts/patch-react-native-dependencies.js เพื่อ patch react-native-date-picker ให้ใช้ optimized ProGuard configuration ที่ Android Gradle Plugin 9 รองรับ

คำสั่ง smoke test simulator:

cd apps/mobile/ios
xcodebuild -workspace BsrPosPlus.xcworkspace -scheme BsrPosPlus -configuration Debug -sdk iphonesimulator CODE_SIGNING_ALLOWED=NO build

root scripts มี terminal:android:8082, terminal:apk และ terminal:aab สำหรับงานพัฒนาและ package POS Terminal