Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
85

Thủ thuật

Xây dựng và phát hành ứng dụng iOS/Mac mà không cần mở Xcode

(giờ Việt Nam)

Tóm tắt AI

Tối ưu hóa quy trình phát triển bằng cách sử dụng XcodeGen và các công cụ dòng lệnh để tự động hóa việc build, ký số và phân phối ứng dụng mà không cần giao diện Xcode, giúp tránh xung đột Git và tăng hiệu suất.

Bản dịch AI

Gần đây, tôi nghe nhiều podcaster chuyên về Apple bàn luận về việc Xcode tệ như thế nào, và Apple cần phải cải thiện trải nghiệm "vibe-coding" (lập trình theo cảm hứng) cho các ứng dụng Mac và iOS bằng cách làm cho Xcode bớt khó hiểu hơn. Họ không sai, nhưng tôi cũng không hiểu tại sao họ lại phải mở Xcode lên ngay từ đầu. Chỉ cần một chút chuẩn bị trước, bạn có thể "vibe code" các ứng dụng Mac và iOS thỏa thích mà không cần phải nhìn vào Xcode nữa.

Và nếu bạn từng nghi ngờ về cách thực hiện bất kỳ bước nào dưới đây, hãy đưa bài viết này cho Claude Code hoặc công cụ lập trình LLM mà bạn chọn, rồi để nó tự tìm cách giải quyết. Đó chính xác là công việc của nó: xử lý những thứ mà bạn không muốn phải bận tâm.

Tóm tắt (TL;DR)

Thiết lập ban đầu là phần duy nhất gây chút khó khăn, vì vậy hãy giải quyết nó trước.

Cài đặt Xcode

Bạn bắt buộc phải cài đặt Xcode, không có cách nào khác, vì quá trình build phụ thuộc vào các công cụ nằm bên trong Xcode.app.

Sau khi cài đặt Xcode, hãy đảm bảo nó là toolchain dòng lệnh được chọn, chứ không phải /Library/Developer/CommandLineTools. Nếu kết quả kiểm tra là /Applications/Xcode.app/Contents/Developer, thì bạn đã thiết lập đúng:

❯ xcode-select -p

/Applications/Xcode.app/Contents/Developer

Nếu nó TRẢ VỀ đường dẫn của CommandLineTools độc lập, hãy trỏ nó sang Xcode thay thế.

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

LƯU Ý: Tên gọi “Command Line Tools” có thể gây nhầm lẫn.

Điều này là do có một gói Command Line Tools độc lập, có sẵn thông qua lệnh xcode-select --install, đó chính là phiên bản /Library/Developer/CommandLineTools. Gói này chứa clang và git, nhưng không bao gồm iOS SDK, notarytool, devicectl và các thành phần khác cần thiết cho việc phát triển ứng dụng toàn diện.

Bộ công cụ hoàn chỉnh nằm bên trong Xcode.app, tại /Applications/Xcode.app/Developer, và nó có mọi thứ bạn cần. Nếu bạn đã cài đặt Xcode, bạn không cần gói Command Line Tools độc lập nữa.

Cài đặt XcodeGen

Xcode và các công cụ dòng lệnh của nó là chưa đủ để tự động tạo và quản lý các dự án Xcode. Để làm điều đó, bạn sẽ cần XcodeGen. Bạn có thể tải xuống từ Github hoặc cài đặt bằng homebrew:

brew install xcodegen

Tóm lại, các dự án Xcode thực chất là các thư mục mà macOS hiển thị như tệp tin, và chúng chứa mọi thứ về dự án của bạn cần thiết để tạo và biên dịch ứng dụng. Xcode liên tục sửa đổi các tệp và tham chiếu tệp, điều này gây ra vấn đề cho các kho lưu trữ git.

XcodeGen tạo ra một tệp project.yml (YAML) chứa tất cả các cài đặt dự án của bạn, và sau đó mỗi khi build, nó sẽ tạo lại toàn bộ thư mục.xcodeproj bằng tệp project.yml đó. Chỉ cần commit tệp YAML vào git, và toàn bộ thư mục.xcodeproj có thể được bỏ qua (ignore) trong git.

Cấu hình Xcode, chỉ một lần duy nhất

Bạn cần thiết lập Xcode ban đầu để không bao giờ phải nhìn vào nó nữa.

Giấy phép Xcode và các thành phần bổ sung

Đầu tiên, hãy chấp nhận giấy phép và cài đặt các thành phần bổ sung của nó, hoặc thực hiện thông qua dòng lệnh:

sudo xcodebuild -license accept

sudo xcodebuild -runFirstLaunch

Thiết lập tài khoản Apple Developer trong Xcode

Tiếp theo, mở Xcode, nhấp vào Settings → Accounts và nhấp vào dấu + để thêm tài khoản của bạn.

LƯU Ý: Bạn phải có tài khoản Apple Developer trả phí để có thể phân phối và notarize (chứng thực) ứng dụng của mình.

Và bạn sẽ muốn chúng được notarize để có thể cài đặt trên các thiết bị Mac và iOS của mình mà không bị hệ điều hành coi là phần mềm độc hại và xóa mất.

Tạo chứng chỉ Developer ID Application

Sau khi hoàn tất, hãy tạo chứng chỉ Developer ID Application (Settings → Accounts → Apple ID của bạn → Manage Certificates… → + → Developer ID Application), thao tác này sẽ tạo ra một chứng chỉ để ký cho gói.app đã xuất bản.

Xin lưu ý rằng chứng chỉ Developer ID Application và chứng chỉ Apple Development là hai thứ hoàn toàn khác nhau.

Định danh Apple Development dùng để build và chạy trên các thiết bị của riêng bạn — đẩy ứng dụng vào iPhone, debug cục bộ. Định danh Developer ID Application dùng cho tệp.app đã được notarize để vượt qua Gatekeeper và chạy trên máy Mac của người khác. Tập lệnh phát hành (release script) cần loại thứ hai.

Việc tạo chứng chỉ trong Xcode sẽ cài đặt cả chứng chỉ và khóa riêng (private key) của nó vào login keychain của bạn. Khóa riêng đó mới là thứ thực sự thực hiện việc ký, và nó không thể tải xuống lại — vì vậy đừng xóa nó, và hãy sao lưu keychain của bạn.

Khi nghi ngờ, hãy hỏi LLM mà bạn chọn về chúng và nhờ nó giúp bạn thiết lập. Dù sao thì đó cũng là thứ sẽ sử dụng Xcode thay cho bạn.

Và cuối cùng,

Lưu thông tin xác thực Notarization – Chỉ một lần, trong Terminal

Notarization sẽ tải ứng dụng đã ký của bạn lên Apple để quét phần mềm độc hại. notarytool xác thực bằng cách sử dụng một hồ sơ keychain đã lưu mà bạn tạo một lần, theo cách tương tác — nó sẽ yêu cầu mật khẩu dành riêng cho ứng dụng (app-specific password), và không có cách nào bỏ qua bước này:

xcrun notarytool store-credentials App-Name \

--apple-id "[email protected]" --team-id YOUR-TEAM-ID

iOSmacOSXcodeTự động hóaLập trình
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.