Apache 2.0 лицензийн дагуу доорх нээлттэй эхийн төслүүд дээр үндэслэн хийв:
- https://github.com/cds-snc/covid-alert-app
- https://github.com/CovidShield/mobile
Энэхүү репо нь Apple болон Google компаниудаас гаргасан Exposure Notification API технологийн дагуу хэрэглэгчдэд хэрэглүүлэх, React Native технологи дээр суурилсан гар утасны шийдэл юм.
Энэхүү апп нь iOS болон Android үйлдлийн системтэй утаснууд дээр аль алинд нь ажиллах боломжийг нэг кодны эх үүсвэрээс бий болгож өгдөг React Native технологийг ашиглан бүтээсэн юм. Энэ апп нь covid-tracing-backend server гэсэн системтэй уялдан ажиллана.
React Native технологи дээр суурилсан учир нэн түрүүнд React Native Хөгжүүлэлтийн Орчин Бэлдэх линкээр орж, үндсэн шаардлагатай зүйлсээ суулгаарай.
- Xcode 11.5 эсвэл түүнээс дээш
- iOS утас эсвэл simulator (iOS 13.5 утас эсвэл)
- Зөв CocoaPods хувилбарыг суулгахын тулд: Bundler
- Google/Apple-аас гаргасан Exposure Notification API-г хэрэглэхийн тулд эдгээр компаниуд тус бүрээс зөвшөөрөл авсан байх шаардлагатай байдаг. Зөвшөөрөл авахын тулд Монгол Улсын Засгийн Газар / Эрүүл Мэндийн Яамны албан ёсны зөвшөөрлийг авах хэрэгтэй болно гэсэн үг. ЭМЯ өөрөө хөгжүүлэлтийн аккаунт-тай бол түүгээрээ хүсэлт гаргаж болно. Эсвэл аль нэг хөгжүүлэгчийн аккаунтыг батлан даах хэлбэрээр хүсэлт илгээж тухайн аккаунт дээр зөвшөөрөл авхуулуулж болох юм. Энэ төслийг хийж эхлэх үед ЭМЯ-д холбогдож зөвшөөрөл авахаас илүүтэйгээр ажилладаг болгочихоод хүсэлтээ илгээх зорилготой байгаа тул одоогоор энэ зөвшөөрлийг авч амжаагүй байгаа болно. (https://developer.apple.com/documentation/exposurenotification)
- үйлдлийн системтэй утас (тэр нь Google Play Services болон Google Play Services Beta-г ажиллуулах чадвартай байх хэрэгтэй). Хэрвээ бүртгүүлэх шаардлагатай бол: https://developers.google.com/android/guides/beta-program.
- Дээр дурьдсанчлан Exposure Notification API-г хэрэглэхийн тулд Google компаниас мөн зөвшөөрөл авах хэрэгтэй болж байгаа юм. Эцсийн апп бэлэн болоод Google Play-д гаргах үед APPLICATION_ID дээрээ зөвшөөрөл авсан байх хэрэгтэй.
git clone git@github.com:covid-tracing-mongolia/mobile.git
yarn install
sudo gem install cocoapods
bundle install && yarn pod-install
bundle install
хийхэд ямар нэг алдаа гарвал Ruby 2.7 суугаагүйгээс алдаа гарч магад. Тиймээс Ruby 2.7 суусан эсэхээ шалгаад мөн ruby --version
гэж ажиллуулахад 2.7 гэж гарж байгаа эсэхээ шалгаарай. Гараагүй байвал PATH гэсэн environment variable дотроо Ruby 2.7 суусан байгаа замаа зааж өгөх хэрэгтэй болно.
.env
гэсэн тохиргоо агуулах файлыг шалгаад, шаардлагатай зүйлсийг тохируулж өгнө. Ерөнхий мэдээлэл: react-native-config.
Жишээ нь::
ENVFILE=.env.production yarn run-ios
ENVFILE=.env.production yarn run-android
Одоо байгаа .env
файлыг хөгжүүлэлтийн орчинд бол .env.development
, production орчинд бол .env.production
гэж байгаад доторх тохиргоонуудыг хийж болно.
iOS болон Android дээр доорх коммандыг гүйцэтгэн апп-аа ажиллуулна:
yarn run-ios
yarn run-android
XCode эсвэл Android Studio-р апп аа бас ажиллуулах боломжтой:
- iOS:
CovidShield.xcworkspace
файлыг XCode-оор онгойлгох. - Android:
android
гэсэн folder-г Android Studio гоор нээх..
Хөгжүүлэлтийн горимд ажиллаж байгаа үед Exposure Notification API зэрэг системүүдийг тест хийх боломжгүй учир апп аа асаахад энэ тохиргоо унтарсан байна, асаана уу? гэсэн анхааруулга гарч байгаа. Энэ анхааруулгыг унтраан хөгжүүлэлтийн орчинд хэрэглэхдээ .env
файл доторх TEST_MODE=
гэсэн хувьсагчийн утгыг зааж өгсөнөөр унтрааж болно.
Хэрвээ та:
- IP хаягтай backend сервэртэй холбогдох эсвэл backend нь SSL байхгүй бол, эсвэл
- Апп аа simulator дотор ажиллуулах хүсэлтэй бөгөөд React Native дотор хийсэн код өөрчлөлтөө шууд метро сервэрээр дамжуулан авч байхыг хүсвэл доорх тохиргоонуудыг
info.plist
дотроо оруулж өгөөрэй. Эдгээр тохиргоонууд нь зөвхөн хөгжүүлэлтийн орчинд гэдгийг анхаарна уу. Тиймээс git repo рүү хийхгүй байгаарай.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
Theme File дотор ихэнх харагдах байдал, өнгө төрхийг өөрчлөх боломжтой.
COVID Tracing Mongolia апп нь үндсэн Монгол хэл дээр байх бөгөөд гадны expat ууд манай улсад амьдардаг учир Англи хэлийг мөн оруулж өгсөн байгаа. Нэмэлт хэл нэмэх бол translations directory дотор байгаа файлуудад зохих орчуулгын ажлуудыг хийнэ.
Хэл нэмсэн тохиолдолд дараа нь: generate-translations
гэсэн коммандыг ажиллуулсанаар апп дотор хэлний сонголт нэмэгдэн орж ирэх болно. Жишээ:
yarn generate-translations
- src/locale/translations/ дотор шинэ i18n файл нэмж үүсгэх.
- Шинээр
pt
гэсэн сонголт translations.js дотор нэмж өгнө. yarn generate-translations
комманд ажиллуулж шинэ орчуулгыг апп-руу оруулна.- src/components/LanguageToggle.tsx дотор шинэ хэлний сонголтыг нэмнэ.
- src/screens/language/Language.tsx дотор шинэ хэлний сонголтыг нэмнэ.
- Xcode доторх
Localizations
гэсэн тохиргоонд шинэ сонголтыг нэмнэ (Project -> CovidShield -> Info tab -> Localizations) and make sureLaunch Screen.storyboard
is checked.
COVID Tracing Mongolia нь CovidShield гэсэн нээлттэй эхийн (Apache 2.0 License) төсөл дээр үндэслэн хийсэн төсөл юм. CovidShield төслийг Канада-д төвтэй Shopify компанийн сайн дурын инженерүүд зохион бүтээж, хөгжүүлсэн байдаг. COVID Tracing Mongolia-г Цар Тахалтай тэмцэж байгаа өнөө үед технологийн салбарт олон жил ажилласаны хувьд улсдаа чадах зүйлээрээ хувь нэмрээ оруулах үүднээс сайн дурын, Монгол мэргэжилтнүүд хөгжүүлсэн юм.
Холбоо барих хүсэлтэй бол: amarbayar.amarsanaa@gmail.com гэсэн хаягаар холбогдоорой.
Logs
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:packageDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "/Users/YOUR_USER/.android/debug.keystore": keystore password was incorrect
Шинээр debug.keystore
-г үүсгэх:
cd android/app
keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
Үүссэн debug.keystore файл аа ~/.android/debug.keystore
руу хуулна.:
cd android/app
cp debug.keystore ~/.android/debug.keystore
Тэгээд прожектийнхоо үндсэн фолдероос: yarn run-android
ажиллуулаад үзээрэй.
CocoPoads-г суулгаж байхад дараахтай адилхан ЭСВЭЛ төстэй (яг адилхан байх албагүй):
ERROR: Loading command: install (LoadError)
dlopen(/Users/$home/ruby/2.6.5/x86_64-darwin18/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /Users/$home/ruby/2.6.5/x86_64-darwin18/openssl.bundle
ERROR: While executing gem ... (NoMethodError)
Таны хөгжүүлэлтийн орчинд суулгасан байгаа Ruby нь OpenSSL байхгүй хувилбар байна гэсэн үг. Тэгэхээр OpenSSL тэй Ruby суулгавал болно гэсэн үг. :
- rvm эсвэл rbenv суулгаад: https://rvm.io/
- Доорх коммандыг ажиллуулна. Багагүй хугацаа зарцуулж магадгүй учир тэвчээртэй байхыг хүсье.
rvm reinstall 2.6.5 --with-openssl-dir=/usr/local/opt/openssl
Одоо та cocoapods оо суулгаад үзээрэй.
covid-tracing-mongolia/mobile is licensed under the Apache License 2.0. A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.