0
0
Lập trình
NM

Cách phát hành ứng dụng macOS ngoài App Store

Đăng vào 2 ngày trước

• 4 phút đọc

Giới thiệu

Khi tôi bắt đầu xây dựng Picmal, một công cụ chuyển đổi hình ảnh đơn giản cho macOS, App Store là đích đến rõ ràng. Tuy nhiên, mọi thứ đã thay đổi nhanh chóng.

Sau khi thanh toán cho giấy phép phát triển của Apple và chuẩn bị phiên bản đầu tiên, tôi gặp phải một vấn đề không ngờ: mỗi khi người dùng cố gắng lưu hình ảnh, một hộp thoại quyền truy cập xuất hiện. Điều này gây khó chịu và làm hỏng trải nghiệm. Nguyên nhân? Các hạn chế trong sandbox của Apple.

Cách duy nhất để vượt qua điều này là bỏ qua App Store hoàn toàn và phân phối ứng dụng độc lập.

Nhưng trước tiên, hãy để tôi kể cho bạn lý do tôi xây dựng Picmal. Ý tưởng này xuất phát từ một nỗi thất vọng hàng ngày: mở trình duyệt, tìm kiếm một công cụ chuyển đổi trực tuyến, tải lên hình ảnh, chờ đợi chúng được xử lý trên đám mây, và sau đó tải xuống lại. Tôi muốn một cái gì đó đơn giản, nhanh chóng và có thể sử dụng ngoại tuyến.

Vì vậy, tôi quyết định làm cho nó trở nên bản địa, mặc dù tôi chưa bao giờ xây dựng một ứng dụng hoàn toàn bản địa trước đây. Thách thức đầu tiên là. Thách thức thứ hai là tìm ra cách chia sẻ nó một cách mượt mà mà không cần App Store.

Sau một thời gian nghiên cứu, tôi phát hiện ra Gumroad. Nó trở thành cách đơn giản nhất để bán và phân phối ứng dụng của tôi trực tiếp. Đây là cách tôi đã thực hiện:

Bước 1: Xây dựng và xuất ứng dụng từ Xcode

Khi ứng dụng của bạn đã sẵn sàng để phát hành, hãy làm theo các bước sau:

  1. Trong Xcode, vào Product > Archive. Chọn phương thức "Phân phối trực tiếp".
  2. Chờ cho đến khi trạng thái xây dựng hiển thị "Sẵn sàng để phân phối".
  3. Nhấp vào "Xuất" và bạn sẽ xuất file .app.

Bước 2: Tạo trình cài đặt DMG

Để mang lại trải nghiệm tốt hơn cho người dùng khi cài đặt ứng dụng, tôi đã sử dụng create-dmg, một công cụ CLI đơn giản tạo ra một file DMG bóng bẩy.

Trong terminal, bạn cần thực hiện lệnh sau:

Copy
# Cài đặt create-dmg nếu bạn chưa có
brew install create-dmg

# Tạo trình cài đặt DMG
create-dmg \
  --volname "Tên ứng dụng của bạn" \
  --window-pos 200 120 \
  --window-size 600 300 \
  --icon-size 100 \
  --icon "YourApp.app" 175 120 \
  --hide-extension "YourApp.app" \
  --app-drop-link 425 120 \
  "YourApp.dmg" \
  "source_folder/"

Khi hoàn tất, bạn sẽ có trình cài đặt DMG sẵn sàng, nhưng bạn cần thực hiện một bước bổ sung, đó là notarize DMG này để tránh gặp lỗi như sau:

Bước 3: Notarize trình cài đặt DMG

Trước tiên, tôi rất khuyên bạn nên tạo một hồ sơ để mỗi khi bạn cần notarize các phiên bản mới, bạn không cần phải nhớ mật khẩu:

Copy
xcrun notarytool store-credentials --apple-id "your-email@example.com" \
  --team-id "YOUR_TEAM_ID_HERE" \
  --password "your-app-specific-password" \
  your-app-profile

Lưu ý: Mật khẩu bạn sử dụng ở đây phải là mật khẩu cụ thể cho ứng dụng được tạo từ tài khoản Apple ID của bạn. Mật khẩu Apple ID thông thường sẽ không hoạt động cho việc notarization. Nếu bạn chưa tạo một cái nào trước đó, hãy làm theo hướng dẫn của Apple để tạo mật khẩu cụ thể cho ứng dụng sử dụng với notarytool.

Sau khi tạo hồ sơ, bạn cần notarize file DMG bằng hồ sơ mới tạo:

Copy
xcrun notarytool submit YourApp.dmg --keychain-profile "your-app-profile" --wait

Bây giờ bạn cần gắn chặt DMG:

Copy
xcrun stapler staple YourApp.dmg

Và cuối cùng, bạn gần như đã sẵn sàng, chỉ cần kiểm tra xem quy trình này có hoạt động không, bạn có thể kiểm tra trong terminal bằng:

Copy
spctl --assess --type open --context context:primary-signature -v YourApp.dmg

# Kết quả mong đợi:
# YourApp.dmg: accepted
# source=Notarized Developer ID

Nếu bạn thấy thông điệp như vậy, bạn đã hoàn tất. Bạn có thể tải DMG của mình lên Gumroad (hoặc bất cứ nơi nào bạn thích) và bắt đầu bán hàng.

Thực hành tốt nhất

  • Đảm bảo rằng ứng dụng của bạn đã được thử nghiệm kỹ lưỡng trước khi phát hành.
  • Cập nhật tài liệu hướng dẫn sử dụng cho người dùng.
  • Theo dõi phản hồi của người dùng để cải thiện ứng dụng trong tương lai.

Những cạm bẫy phổ biến

  • Không đủ quyền truy cập khi người dùng cố lưu file.
  • Thiếu thông tin về cách cài đặt ứng dụng.

Mẹo hiệu suất

  • Tối ưu hóa kích thước file DMG để tải xuống nhanh hơn.
  • Đảm bảo rằng ứng dụng của bạn không có lỗi trước khi phát hành.

Khắc phục sự cố

  • Nếu người dùng không thể cài đặt ứng dụng, hãy kiểm tra xem họ đã làm theo đúng hướng dẫn hay chưa.

Câu hỏi thường gặp

  1. Làm cách nào để tạo mật khẩu cụ thể cho ứng dụng?
    Bạn có thể tạo mật khẩu này trong phần cài đặt tài khoản Apple ID.
  2. Có cần notarize mỗi phiên bản không?
    Có, mỗi khi bạn phát hành một phiên bản mới, bạn cần notarize lại.

Kết luận

Phát hành ứng dụng macOS ngoài App Store có thể là một thách thức, nhưng với một vài công cụ và quy trình hợp lý, bạn có thể dễ dàng phân phối ứng dụng của mình. Hãy thử nghiệm và tìm ra cách nào phù hợp nhất cho bạn và ứng dụng của bạn. Bắt đầu ngay hôm nay và chia sẻ ứng dụng của bạn với thế giới!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào