在此查看已知 BUG
🤖 Android 環境 Setup
- 確保自己是
Android API 33
或API 31
的模擬器環境,下載安裝JDK、SDK - 在項目根目錄(
package.json
所在的目錄)打開命令行運行npm i --legacy-peer-deps
安裝 npm 依賴 - 前往
Android Studio
啟動所需的模擬器 - 敲入
react-native run-android
ornpm run android
oryarn android
(如需使用yarn需要先npm install yarn -g
) 運行本項目吧!
🍎 iOS 環境 Setup
基於 React Native CLI 下的安裝流程,iOS APP目前只能在Mac開發調試
- 先安裝
node
包,方便之後使用指令npm
和npx
brew install node
brew install watchman
- 確保安裝了
Xcode
(版本 10 或以上),建議在官網下載 - 安裝
CocoaPods
去管理 ios 系統相關的包
brew install cocoapods
- 在項目根目錄(
package.json
所在的目錄)打開命令行運行npm i --legacy-peer-deps
安裝 npm 依賴 - Pod自動鏈接好iOS的包
cd ios
pod install
- 啟動
Xcode
,打開項目./ios/UMALL.xcworkspace
Command + R
運行項目,先除錯,沒有問題再回VSCode的命令行使用yarn ios
啟動
- 克隆倉庫的代碼到本地(推薦使用
GitHub Desktop
)
git clone https://github.com/UM-ARK/UM-All-Frontend.git
- 在項目根目錄下(
./package.json
所在的目錄)啟動Terminal/命令行安裝依賴包
忽略警告安裝 - 正常會使用這條指令,因為某些有問題的包尚未能解決衝突
npm i --legacy-peer-deps
- 在 Android 上運行App
npx react-native run-android
or
yarn android
or
npm run android
如果不喜歡運行命令後彈出新的窗口,可以先在VSCode中打開一個命令行窗口,敲入 yarn start
,再在另一個命令行窗口中 yarn android
,就不會有額外彈窗了
- 在 ios 上自動鏈接Pod
cd ios
pod install
完成此步驟後,./ios
的代碼將更新
-
打開
Xcode
,使用Command + R
編譯運行APP,先Debug,再回VSCode開發調試 -
命令行編譯/運行App
yarn ios
or
yarn ios --simulator="iPhone 15"
- 當需要 log 出對象或者數組時,有 Chrome 的 Web Debugger 肯定更好用。
- 舊版的項目可以在
Metro
的命令窗口中按下d
再在模擬器中選擇Debug
即可直接跳轉瀏覽器查看 log。 - 新版項目因為使用了組件 react-native-reanimated 導致不支持遠程調試,現在需要使用Flipper.
- 下載 Flipper 後,Mac 和 Windows 可能還要安裝一兩個工具,比如 Windows 要安裝 OpenSSL,參考:https://www.cnblogs.com/dingshaohua/p/12271280.html
- 找到
./ios/UMALL.xcworkspace
,點擊打開Xcode。 - Build。
- 點擊左側欄目找到
UMALL
項目,然後再中間的面板中輸入新的版本號(Version和Build通常一樣)。 - 將設備設為"Any iOS Device",並
command+B
來Build,並進行實機測試。
- 歸檔並發佈。
- Build成功後,點擊頂欄 Product->Archive歸檔,隨後在彈出的頁面中一直點擊確認。
- 最後點擊 Distribute App按鈕發佈。
- 到Appstore Connect頁面查看並提交審核。
- 注意:
- 一個Build號只能用一次。如果build失敗則更換build號,通常加一個小版本即可(如2.2.0->2.2.1)。
- 檢查
Info.plist
的App Uses Non-Exempt Encription
選項,必須設置為No,否則會被Apple禁止上傳。
- 發佈注意:
- 切換Any iOS Device arm64 進行Build
- 使用Product - Archive進行封包,如提示
React-Core.common
字樣的問題,在Pods中刪除非React-Core.common-CoreModulesHeaders
的相似文件,再進行Build與Archive
- Android端需保存好
.keystore
或.jks
文件。編譯出包時,將該文件放置在android/app
目錄下,以作App密鑰。 - Android打包,需要保證jdk版本為
18.0.2.1
- 在
./android
目錄下,使用gradlew assembleRelease
打包APK文件,但似乎會出現密鑰不正確的問題無法繼承安裝。 - 在
./android
目錄下,使用gradlew bundleRelease
打包Google Play Store所需的.adb
文件。
在此查看Android 解決方案與iOS 解決方案
- 澳大日曆更新。從
https://reg.um.edu.mo/university-almanac/?lang=zh-hant
獲取 ics 文件;使用任何工具將 ics 轉為 json(course-data-parse倉庫內也有icsToJSON工具),例如https://ical-to-json.herokuapp.com/
。務必注意最終 json 中的 key 必須為小寫。覆蓋src/static/UMCalendar/UMCalendar.json
中的內容即可。- 按照程序注釋增加校曆的繁體中文翻譯內容。
- 澳大課程更新。使用預選課Excel,使用Excel to JSON工具獲得JSON數據,放入
src/static/UMCourses/offer courses.json
。- 按照程序注釋增加開設課程的繁體中文翻譯內容。
- icon更新。使用
https://www.appicon.co/
生成iOS icon文件,使用Android Studio
生成Android icon文件(Studio生成的文件最全面,適配各個廠商的UI)。