Theo dõi Top Thủ Thuật để cập nhật các Thủ Thuật mới nhất nhé!
Theo dõi
Top Thu Thuat
  • Thủ Thuật
    • Thủ Thuật Điện Thoại
    • Thủ Thuật Phần Mềm
    • Thủ Thuật internet
    • Thủ Thuật Tiện Ích
  • Network
  • Security
  • Công Nghệ
  • Kiến Thức
  • Ứng Dụng
  • Office
    • Học Word
    • Học Excel
    • Học Power Point
  • Game Offline
    • Code Game
    • Game Nhập Vai
    • Kinh Nghiệm Chơi Game
No Result
View All Result
Top Thủ Thuật
  • Thủ Thuật
    • Thủ Thuật Điện Thoại
    • Thủ Thuật Phần Mềm
    • Thủ Thuật internet
    • Thủ Thuật Tiện Ích
  • Network
  • Security
  • Công Nghệ
  • Kiến Thức
  • Ứng Dụng
  • Office
    • Học Word
    • Học Excel
    • Học Power Point
  • Game Offline
    • Code Game
    • Game Nhập Vai
    • Kinh Nghiệm Chơi Game
No Result
View All Result
Top Thủ Thuật
No Result
View All Result
Home Network

Cách giả lập iOS bằng Docker

Funky Boy by Funky Boy
21 Tháng Tám, 2022
in Network
0 0
0
Cách giả lập iOS bằng Docker
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter
Rate this post

Sau nhiều lần thử không thành công, cuối cùng mình cũng đã có thể ảo hóa macOS để chạy thử ứng dụng iOS. Nhưng trước làm theo, thì bạn nên biết đây không phải là một giải pháp ổn định và có một số vấn đề về hiệu suất. Mình vì một số lý do nên mới cần phải làm như vậy.

Cách giả lập iOS bằng Docker

Mình sẽ sử dụng QEMU để giả lập máy mac và bên trong nó, chúng ta sẽ sử dụng xCode để giả lập iOS. Quá trình này sẽ không hề nhẹ. Kho lưu trữ trên github của Docker OSX có giải thích về cách sử dụng iPhone qua usb thay vì giả lập, nhưng mình không có iPhone :((.

Nội dung

  • Docker OSX là gì
  • Thông số phần cứng khi giả lập iOS bằng Docker
  • Cài đặt
  • Chạy ứng dụng với React Native
  • Chạy ứng dụng với Cordova
  • Tạo kết nối các thư mục qua SSH
  • Kết nối từ linux đến mac
  • Kết nối từ Mac với Linux

Docker OSX là gì

Docker OSX là một image docker sử dụng QEMU để chúng ta có thể giả lập một hệ điều hành.

Bạn có thể tìm hiểu thêm về Docker tại đây.

Thông số phần cứng khi giả lập iOS bằng Docker

Thông số kỹ thuật máy tính của mình được coi là khá ổn để thực hiện việc này, tuy nhiên, mình vẫn cảm thấy độ trễ khi sử dụng Docker OSX + xCode + Visual Studio Code + Dev Server. (Cái máy như cái lò sưởi :v)

  • OS: Manjaro Linux x86_64
  • Kernel: 4.19.220-1-MANJARO
  • Shell: zsh 5.8
  • Độ phân giải: 1440×900
  • DE: GNOME 41.2
  • WM: Mutter
  • WM Theme: Orchis-orange-compact
  • Icons: Win11-purple-dark [GTK2/3]
  • Terminal: gnome-terminal
  • CPU: Intel i7-3770 (8) @ 3.900GHz
  • GPU: NVIDIA GeForce GTX 1050 Ti
  • RAM: 4105MiB / 15985MiB
  • SSD: Crucial BX500 240gb (Khuyến cáo nên sử dụng SSD nhé)

Cài đặt

Đầu tiên, cần phải cài đặt docker trên máy tính của bạn. Mình sử dụng Manajaro, vì vậy mình chỉ cần mở terminal và nhập các lệnh sau:

Cài đặt docker: pacman -S docker

Chạy docker: systemctl start docker.service

Bật docker khởi động cùng hệ thống:systemctl enable docker.service

Kiểm tra docker:docker run hello-world

Cách giả lập iOS bằng Docker 26

Tiếp theo, chúng ta sẽ tải docker osx và chạy nó bằng lệnh dưới:

docker run -it --device /dev/kvm -p 50922:10022 -e DEVICE_MODEL="iMacPro1,1" -e WIDTH=1440 -e HEIGHT=900 -e RAM=8 -e INTERNAL_SSH_PORT=23 -e AUDIO_DRIVER=alsa -e CORES=2 -v /tmp/.X11-unix:/tmp/.X11-unix -e "DISPLAY=${DISPLAY:-:0.0}" -e GENERATE_UNIQUE=true -e MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist sickcodes/docker-osx:big-sur

Bạn có thể kiểm tra ý nghĩa của từng flag tại github của docker osx. Nhưng để tóm tắt ngắn gọn thì mình đã chỉ định độ phân giải, bộ nhớ, lõi cpu, phiên bản và những thứ khác.

Sau đó, osx docker sẽ được tải xuống và khởi tạo.

Khi trình giả lập mở ra, hãy chọn macOS Base System

Cách giả lập iOS bằng Docker 27

Khi hệ thống được khởi động, hãy chọnDisk Utility

Cách giả lập iOS bằng Docker 28

Bây giờ, chúng ta sẽ tìm phân vùng đã chuẩn bị và chọn Erase.

Cách giả lập iOS bằng Docker 29

Để định dạng, các tùy chọn phải hoàn toàn giống như hình dưới:

Cách giả lập iOS bằng Docker 30

Nhấp vào Erase, đợi quá trình kết thúc và sau đó bạn có thể đóng cửa sổ Disk Utility.

Tiếp theo, chọn Reinstall macOS Big Sur, chấp nhận các điều khoản và chọn phân vùng chúng ta vừa tạo macOS và bắt đầu cài đặt. (Quá trình này có thể mất tầm 30 phút tới 1 tiếng).

Xem Thêm:  Cách sử dụng VPS Vultr cho người mới bắt đầu - Tặng 100$ Credit

Cách giả lập iOS bằng Docker 31

Hệ thống sẽ tự khởi động lại (hoặc không), mình phải làm điều đó theo cách thủ công vì nó không khởi động lại. Trong trường hợp đó, hãy đóng cửa sổ QEMU.

Cách giả lập iOS bằng Docker 32

Trong terminal, chúng ta sẽ nhập:

docker ps -a

Để biết ID container của chúng ta là gì và thì các bạn cần nhập lệnh dưới:

docker start ID

Cách giả lập iOS bằng Docker 33

Sau đó, hệ thống sẽ tự động khởi động lại (hoặc không), nên hãy đóng QUEMU lại và khởi động lại container.

Cách giả lập iOS bằng Docker 34

Khi hệ thống khởi động, hãy chọn tùy chọn macOS Installer và đợi quá trình kết thúc. Khi kết thúc, hệ thống sẽ khởi động lại.

Vậy là macOS đã được cài đặt thành công rồi đó. Chọn macOS.

Cách giả lập iOS bằng Docker 35

Màn hình chào mừng của macOS đã xuất hiện, lúc này bạn cần thiết lập macOS.

Cách giả lập iOS bằng Docker 36

Khi định cấu hình hệ thống, nhưng đừng đăng nhập AppleID.

Khi quá trình đó hoàn tất, màn hình của chúng ta sẽ xuất hiện và chúng ta sẽ đợi cho đến khi thanh dock xuất hiện vì sau đó, hệ thống sẽ ổn định nhất.

Cách giả lập iOS bằng Docker 37

Cách giả lập iOS bằng Docker 38

Bây giờ, chúng tôi sẽ sử dụng brew để cài đặt các package (gói) nhanh hơn.

Mở terminal trong macOS và cài đặt brew bằng lệnh dưới đây:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Nhập mật khẩu của bạn và đợi quá trình kết thúc.

Bây giờ, chúng ta sẽ cài đặt xcode trên Apple Store.

Cách giả lập iOS bằng Docker 39

Lúc này, chúng ta mới cần đăng nhập AppleID.

Cách giả lập iOS bằng Docker 40

Sau đó, mở xcode và chấp nhận các điều khoản và đợi cài đặt các dependencies.

Tiếp theo vào Preferences -> Locations -> Command-Line Tools, chọn phiên bản xCode.

Khi quá trình cài đặt hoàn tất, chúng ta sẽ mở lại terminal và cài đặt cocoapods bằng lệnh dưới. Nó đóng vai trò là trình quản lý packager của xCode.

brew install cocoapods

Cuối cùng, macOS của chúng ta sẽ được cài đặt và cấu hình để chạy các dự án.

Chạy ứng dụng với React Native

Tiếp theo, chúng ta sẽ thử chạy 1 chương trình React Native đơn giản. Mình chỉ test trên iOS thôi nhé.

Mở tterminal và nhập các lệnh sau:

Cài đặt node: brew install node

Cài đặt yarn (không bắt buộc): npm install -g yarn

Tạo dự án RN: npx react-native init teste

Nếu yêu cầu bạn cài đặt lại cocoapods, hãy chọn tùy chọn có brew.

Truy cập vào thư mục dự án: cd teste

Truy cập vào thư mục ios: cd ios

Cài đặt các dependencies: pod install

Quay lại thư mục gốc: cd ..

Liệt kê tất cả các thiết bị có sẵn (không bắt buộc): xcrun simctl list devices

Chạy dự án với xcode: npx react-native run-ios --simulator="iPhone 13"

Cách giả lập iOS bằng Docker 41

Chạy ứng dụng với Cordova

Tiếp theo là chạy dự án với Quasar để kiểm tra xem mọi thứ chúng ta đã làm có hoạt động hay không.

Quasar sử dụng Cordova / Capacitor cho iOS và Android.

Cài đặt node: brew install node

Cài đặt yarn: npm install -g yarn

Cài đặt quasar: yarn global add @quasar/cli

Cài đặt cordova: yarn global add cordova

*Tạo dự án với Quasar: quasar create teste

Truy cập vào thư mục dự án: cd teste

Thêm cordova vào dự án của bạn: quasar mode add cordova

Truy cập vào thư mục cordova: cd src-cordova

Thêm iOS vào dự án: cordova platform add ios

Xác minh xem mọi thứ có ổn không: cordova requirements

Liệt kê tất cả thiết bị có sẵn (không bắt buộc): cordova emulate iOS --list

Cài đặt các dependencies: yarn

Quay lại thư mục gốc: cd ..

Cài đặt các dependencies: yarn

Chạy quasar với chế độ phát triển trên iOS: quasar dev -m iOS -e "iPhone 8, 15.2"

Cách giả lập iOS bằng Docker 42

Tạo kết nối các thư mục qua SSH

Bây giờ ứng dụng của chúng ta đã chạy trên macOS, nhưng sẽ có một số vấm đề: Mở code editor hoặc IDE bên trong macOS là một trải nghiệm rất tệ vì máy chạy chậm, lỗi, mapping bàn phím,… Vì vậy, mình đã nghiên cứu giải pháp tạo kết nối tệp bằng SSH.

Xem Thêm:  Cài đặt giao thức SSL miễn phí cho Website - HTTPS free (VPS)

Ngoài ra, mình có thể mở máy chủ phát triển bên trong macOS và tạo kết nối trực tiếp từ linux hoặc macOS của mình để nó cập nhật cả hai bên, giống như hai chiều. Điều này đảm bảo chúng ta tận dụng hết tính năng trong chế độ phát triển, chẳng hạn như fast refresh.

Kết nối từ linux đến mac

Đầu tiên, chúng ta cần cho phép kết nối qua ssh thông qua mac. Để làm điều này, chúng ta cần mở terminal và nhập:

Lệnh để mở chỉnh sửa tệp cấu hình ssh: sudo nano /etc/ssh/sshd_config

Tìm PasswordAuthentication và đặt yes và xóa # ở dòng đầu.

Cách giả lập iOS bằng Docker 43

Lưu file lại.

Vào System Preferences -> Sharing -> Remote Login và kích hoạt all users:

Cách giả lập iOS bằng Docker 44

Lệnh khởi động lại ssh: sudo launchctl stop com.openssh.sshd && sudo launchctl start com.openssh.sshd

Bây giờ, trong terminal linux:

Cài đặt sshfs: sudo pacman -S sshfs

Lấy IP container: docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ID_CONTAINER

Tạo thư mục: mkdir projeto

Lệnh để mở một kết nối mới tới mac: sudo sshfs [email protected]_CONTAINER:/PATH/OF/PROJECT/ON/MAC /PATH/ON/LINUX -p 23

Ví dụ:

Cách giả lập iOS bằng Docker 45

Được rồi, bây giờ chúng ta có thể mở VSCode trên linux và cập nhật tệp trực tiếp trên mac.

Kết nối từ Mac với Linux

Cũng tương tự như trên, nhưng gói sshfs trên mac có thể được cài đặt bằng lệnh dưới đây:

Cài đặt sshfs: brew install --cask macfuse && brew install gromgit/fuse/sshfs-mac

Trên Linux:

Lệnh chỉnh sửa tệp cấu hình ssh: sudo nano /etc/ssh/sshd_config

Tìm PasswordAuthentication và đặt yes và xóa # ở dòng đầu.

Cách giả lập iOS bằng Docker 43

Lưu lại file.

Lệnh khởi động lại SHH trên Manjaro: sudo systemctl restart sshd.service

Trên Mac, chúng ta sẽ tạo một thư mục để mở kết nối.

Tạo thư mục: mkdir projeto

Lệnh mở kết nối mới tới linux: sudo sshfs [email protected]_HOST:/PATH/LINUX /PATH/MAC -p 23

Khi chúng ta gõ lệnh sẽ xảy ra lỗi.

Cách giả lập iOS bằng Docker 47

Mở preferences và nhấp vào Allow

Cách giả lập iOS bằng Docker 48

Khởi động lại máy mac của bạn.

Bây giờ, chúng ta có thể mở kết nối: (SSH của mình được mở ở một cổng khác, nhưng mặc định là 22)

Cách giả lập iOS bằng Docker 49

Sau khi hoàn tất, chúng ta có thể cập nhật từ một trong hai bên. Vậy là xong rồi đó, rất thích hợp cho việc remote, code team nhé.

Cảm ơn các bạn đã theo dõi TOP Thủ Thuật trên đây là những chia sẻ của chúng tôi về Cách giả lập iOS bằng Docker. Hy vọng bài viết tại chuyên mục Network sẽ giúp ích được cho bạn. Trân trọng !!!

vote
Article Rating
ShareTweetPin
Funky Boy

Funky Boy

Tôi là Funky Boy luôn chia sẻ kiến thức về tất cả những gì liên quan đến công nghệ, như sử dụng máy tính, sử dụng điện thoại, thủ thuật để sử dụng Internet một cách hiệu quả nhất...giúp bạn có được những trải nghiệm mới thú vị và đạt được hiệu quả cao trong công việc

BÀI VIẾT LIÊN QUAN

Cách dùng lệnh Find Tìm file và thư mục trên Linux
Network

Cách dùng lệnh Find Tìm file và thư mục trên Linux

by Funky Boy
21 Tháng Tám, 2022
Web 3.0 là gì? – Top Thủ Thuật
Network

Web 3.0 là gì? – Top Thủ Thuật

by Funky Boy
21 Tháng Tám, 2022
Cách lên lịch tác vụ bằng lệnh at trên Linux
Network

Cách lên lịch tác vụ bằng lệnh at trên Linux

by Funky Boy
21 Tháng Tám, 2022
Sự khác nhau giữa HTTP và HTTPS
Network

Sự khác nhau giữa HTTP và HTTPS

by Funky Boy
21 Tháng Tám, 2022
Cách lấy địa chỉ IP của người khác trong Discord
Network

Cách lấy địa chỉ IP của người khác trong Discord

by Funky Boy
21 Tháng Tám, 2022
Cách leo thang đặc quyền Linux bằng SUID
Network

Cách leo thang đặc quyền Linux bằng SUID

by Funky Boy
21 Tháng Tám, 2022
Next Post
VPN là gì? VPN hoạt động như thế nào và tại sao bạn cần một VPN

VPN là gì? VPN hoạt động như thế nào và tại sao bạn cần một VPN

Subscribe
Connect with
I allow to create an account
When you login first time using a Social Login button, we collect your account public profile information shared by Social Login provider, based on your privacy settings. We also get your email address to automatically create an account for you in our website. Once your account is created, you'll be logged-in to this account.
DisagreeAgree
Notify of
guest
I allow to create an account
When you login first time using a Social Login button, we collect your account public profile information shared by Social Login provider, based on your privacy settings. We also get your email address to automatically create an account for you in our website. Once your account is created, you'll be logged-in to this account.
DisagreeAgree
guest
0 Comments
Inline Feedbacks
View all comments

Có thể bạn sẽ cần

Native app là gì? Những ưu nhược điểm nổi bật của Native app
Công Nghệ

Native app là gì? Những ưu nhược điểm nổi bật của Native app

by Funky Boy
30 Tháng Mười Một, 2022
0

Native app là gì được xem là câu hỏi được rất nhiều người quan tâm hiện nay khi tìm hiểu...

Read more

Đề xuất cho bạn

Native app là gì? Những ưu nhược điểm nổi bật của Native app

Native app là gì? Những ưu nhược điểm nổi bật của Native app

30 Tháng Mười Một, 2022
Cách Kiếm Tiền Online Cho Mẹ Bỉm Sữa Uy Tín Và Ổn Định

Cách Kiếm Tiền Online Cho Mẹ Bỉm Sữa Uy Tín Và Ổn Định

23 Tháng Mười Hai, 2022
Cách tạo Chữ ngược, chữ nghiêng, gạch dưới để đặt tên, chat

Cách tạo Chữ ngược, chữ nghiêng, gạch dưới để đặt tên, chat

8 Tháng Chín, 2022
Tạo Phòng học ảo trên Zoom bằng Immersive View

Tạo Phòng học ảo trên Zoom bằng Immersive View

8 Tháng Chín, 2022
Các lệnh nguy hiểm nhất trên Windows bạn không nên dùng

Các lệnh nguy hiểm nhất trên Windows bạn không nên dùng

8 Tháng Chín, 2022
Cách tăng FPS trong game trên Laptop

Cách tăng FPS trong game trên Laptop

8 Tháng Chín, 2022

TOP THỦ THUẬT

Top Thủ Thuật – Chia Sẻ Kiến Thức Công Nghê, Máy Tính, Phần Mềm

ĐỐI TÁC

✩ S666

✩ https://iwin68.ltd/

✩ Go88 tài xỉu

✩ IWIN

✩ VN138

✩ 789BET

✩ May 88

✩ Sunc888

✩ Sunwin tài xỉu

LIÊN KẾT

✩ QH88

✩ FAFA191

✩ Top game bài đổi thưởng 

✩ SV368

✩ IWIN88

✩ Tải IWIN86

✩ Ku fun

Thông tin liên hệ

• 247 Hàm Nghi, Mỹ Đình, Nam Từ Liêm, Hà Nội

• Email: [email protected]

• Mobile: 0878310247

• Website: https://topthuthuat.com.vn/

✩ Bong da lu

  • Giới Thiệu
  • Liên Hệ
  • Chính Sách
  • Game Bài đổi thưởng
  • 168bet
  • BK8
  • TWIN

© 2021 Top Thủ Thuật - Tải game Offline miễn phí

No Result
View All Result
  • Thủ Thuật
    • Thủ Thuật Điện Thoại
    • Thủ Thuật Phần Mềm
    • Thủ Thuật internet
    • Thủ Thuật Tiện Ích
  • Network
  • Security
  • Công Nghệ
  • Kiến Thức
  • Ứng Dụng
  • Office
    • Học Word
    • Học Excel
    • Học Power Point
  • Game Offline
    • Code Game
    • Game Nhập Vai
    • Kinh Nghiệm Chơi Game

© 2021 Top Thủ Thuật - Tải game Offline miễn phí

Welcome Back!

Login to your account below

Forgotten Password?

Create New Account!

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply