• Network
  • Security
  • Software
  • Thủ thuật
  • Tin tức
  • Video hướng dẫn
  • Donate – Mời AnonyViet ly Cafe ☕
AnonyViet
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC
No Result
View All Result
AnonyViet
No Result
View All Result

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

Ellyx13 by Ellyx13
in Linux
Reading Time: 11 mins read
A A
0

Mục lục bài viết

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

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.

Tham gia kênh Telegram của AnonyViet  👉 Link 👈

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

Các bài viết liên quan

Cách tích hợp ChatGPT vào Siri trên iphone để tăng sức mạnh cho AI 51

Cách tích hợp ChatGPT vào Siri trên iphone để tăng sức mạnh cho AI

22/02/2023
iOS 16.3.1

Apple khuyên mọi người nên cập nhật iPhone lên iOS 16.3.1

16/02/2023
Cách dùng các App bản quyền miễn phí trên iPhone bằng VPN

Cách cài các App bản quyền miễn phí trên iPhone bằng VPN

08/02/2023
Cách Crack App trên iOS không cần Jailbreak 52

Cách Crack App trên iOS không cần Jailbreak

02/02/2023

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 :((.

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 27

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 28

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

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

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 30

Để đị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 31

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).

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

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 33

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 34

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 35

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 36

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 37

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 38

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

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 40

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

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

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 42

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 43

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.

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 44

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 45

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 46

Đượ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 44

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 48

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

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

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 50

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é.

Bài viết đạt: 5/5 - (100 bình chọn)
Tags: dockergiả lập iOSIOSmacos
Ellyx13

Ellyx13

Có người không dám bước vì sợ gãy chân, nhưng sợ gãy chân mà không dám bước đi thì khác nào chân đã gãy.

Related Posts

kiem tra file folder lon nhat linux
Linux

Cách tìm File/Folder lớn nhất trên Linux

23/03/2023
lenh linux chua hoc tren nha truong
Linux

Các lệnh Linux quan trọng mà trên trường không dạy cho bạn

14/11/2022
10 lệnh Linux cơ bản cho người mới 53
Linux

10 lệnh Linux cơ bản cho người mới

10/09/2022
Cách quay video hoạt động Terminal trên Linux bằng script 54
Linux

Cách quay video hoạt động Terminal trên Linux bằng script

12/08/2022
5 điểm khác nhau giữa MacOS và Linux 55
Linux

5 điểm khác nhau giữa MacOS và Linux

25/07/2022
Cách cài đặt Linux Mint trên WSL cho Windows 10 và 11 56
Linux

Cách cài đặt Linux Mint trên WSL cho Windows 10 và 11

24/07/2022
Next Post
Phone Diagnostics - Phần mềm test các chức năng của điện thoại

Dùng Phone Diagnostics để Test các chức năng khi mua điện thoại cũ

guest

guest

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

0 Comments
Inline Feedbacks
View all comments

Asia 300×600

Liên hệ Quảng Cáo

Lien he AnonyViet

Đối tác —

Fshare

Các bài mới

cac nhom hacker apt tren the gioi

Tổng hợp các nhóm Hacker APT trên thế giới

25/03/2023
Cách dùng AI của DALL-E 2 để tạo hình ảnh theo ý bạn 57

Cách dùng AI của DALL-E 2 để tạo hình ảnh theo ý bạn

24/03/2023
kiem tra file folder lon nhat linux

Cách tìm File/Folder lớn nhất trên Linux

23/03/2023
Cách đăng ký và sử dụng Google Bard - AI của Google 58

Cách đăng ký và sử dụng Google Bard – AI của Google

22/03/2023
Xiaomi Redmi Note 12 | Pro 5G giá bao nhiêu, mua điện thoại nào tốt? 59

Xiaomi Redmi Note 12 | Pro 5G giá bao nhiêu, mua điện thoại nào tốt?

22/03/2023

Ads

Giới thiệu

AnonyViet

AnonyViet

Nơi chia sẻ những kiến thức mà bạn chưa từng được học trên ghế nhà trường!

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến AnonyViet.

Hãy cùng AnonyViet xây dựng một cộng đồng CNTT lớn mạnh nhất!

Giới thiệu

AnonyViet là Website chia sẻ miễn phí tất cả các kiến thức về công nghệ thông tin. AnonyViet cung cấp mọi giải pháp về mạng máy tính, phần mềm, đồ họa và MMO.

Liên hệ

Email: anonyviet.com[@]gmail.com

1409 Hill Street #01-01A
Old Hill Street Police Station
Singapore 179369

 

Bản quyền: DMCA.com Protection Status

Phản hồi gần đây

  • thái trong Download IObit Uninstaller 12 Full Key – Gỡ bỏ phần mềm tận gốc
  • tiến trong Hướng dẫn Fake link Facebook để spam
  • Mạnh Cường trong Cách đăng ký và sử dụng Google Bard – AI của Google
  • Co Dang trong Cách Active Microsoft 365 Miễn Phí
  • hoahung trong Tổng quan về giới UG. Phần 1: UG là gì, CC chùa là gì
https://shbet8.org

©2023 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về Công nghệ. Google Bing Github Github stackoverflow Youtube wikipedia reddit iwinclublink.app tải game iwin tải iwin apk tải tdtc w88 top tải win456 iwin888 ku11net.co ku fun twin F8BET https://new8869.com https://okuytin.com

No Result
View All Result
  • Tin tức
  • Network
    • Mạng cơ bản
    • Hyper-V
    • Linux
    • Windown Server 2012
  • Security
    • Basic Hacking
    • Deface
    • Kali Linux / Parrot
    • SQL Injection
  • Thủ thuật
    • Khóa Học Miễn Phí
    • Code
    • Mẹo Vặt Máy Tính
    • Facebook
    • Windows 7/8/10/11
    • Đồ Họa
    • Video
  • Software
    • Phần mềm máy tính
    • Phần mềm điện thoại
  • Tin học văn phòng
  • Kiến thức
  • MMO
    • Advertisers – Publishers
    • Affiliate Program
    • Kiếm tiền bằng điện thoại
    • Pay Per Click – PPC

©2023 AnonyViet - Chúng tôi mang đến cho bạn những kiến thức bổ ích về Công nghệ. Google Bing Github Github stackoverflow Youtube wikipedia reddit iwinclublink.app tải game iwin tải iwin apk tải tdtc w88 top tải win456 iwin888 ku11net.co ku fun twin F8BET https://new8869.com https://okuytin.com

wpDiscuz
!

Ads

Ads Blocker Detected!!! - Vui lòng tắt Ad Blocker!!!

Vui lòng tắt Ad Blocker

Có vẻ như bạn đang bật trình chặn Quảng cáo.

{Trường hợp bạn đang dùng trình duyệt từ Facebook, hãy copy link bài viết qua Chrome để xem nội dung, như vậy sẽ không bị chặn}

Website chúng tôi duy trì nhờ vào doanh thu quảng cáo, vì vậy hãy tắt trình chặn quảng cáo để chúng tôi có kinh phí chi trả tiền thuê Server, xin cảm ơn!

I've disable Adblock - Tôi đã tắt Adblock