Checklist การย้ายเครื่อง
หน้านี้บันทึกสิ่งที่ผูกกับเครื่องและสิ่งที่ต้องเช็กเมื่อต้องย้ายงาน Android/iOS dev หรือ release ไปเครื่องใหม่
จุดที่ต้องเช็ก
apps/mobile/android/local.propertiesapps/pos-terminal/android/local.propertiesJAVA_HOMEANDROID_HOMEANDROID_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
ลำดับแนะนำ
- clone repo ลงเครื่องใหม่
- ติดตั้ง Node, Yarn, Java, Android SDK, NDK, Xcode, CocoaPods และ CMake
- รัน
yarn installที่ monorepo root - เปิด Android Studio หนึ่งครั้งเพื่อให้ local settings ถูกสร้างหรือ refresh
- ตรวจ
JAVA_HOME,ANDROID_HOME,ANDROID_SDK_ROOT - ตรวจ keystore และ signing properties
- รัน
yarn mobile:android - รัน
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 แล้ว เพื่อให้ rootpostinstallpatch dependency ที่ต้องใช้กับ React Native new architecture
ถ้า xcodebuild แจ้งปัญหา first launch หรือ plugin ของ Xcode ให้รัน:
xcodebuild -runFirstLaunch
apps/mobile/ios/Podfile มี fix เฉพาะ repo:
- สร้าง 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-view-shot-ios.js เพื่อ patch react-native-view-shot ให้ใช้ RCTScrollViewComponentView เมื่อเปิด React Native new architecture
คำสั่ง smoke test simulator:
cd apps/mobile/ios
xcodebuild -workspace BsrPosPlus.xcworkspace -scheme BsrPosPlus -configuration Debug -sdk iphonesimulator CODE_SIGNING_ALLOWED=NO build