PROVISIONING LÀ GÌ

Phần 3: Provisioning Profiles

Trong bài viết trước của series này, chúng ta đã cùng nhau tìm hiểu về certificate và private key cần thiết cho quá trình code signing. Tiếp tục trong series này là bài viết về Provisioning Profilesentitlements. Có thể nói trong quá trình code iOS thì Provisioning Profiles được gọi là những gì đau đớn nhất của lập trình viên để có thể code sign. Trước khi đi vào chi tiết thì chúng ta cùng nhau tìm hiểu một số khái niệm liên quan đã nhé.Bạn đang xem: Provisioning là gì

Các khái niệm chúng ta sẽ tìm hiểu gồm có:

Team IDBundle IDApp IDDevice IDEntitlements

I. Khái niệm cơ bản

1. Team ID

Team ID chính là một định danh duy nhất cho một nhóm phát triển. Bạn có thể tìm thấy Team ID này trong trang thông tin dành cho nhà phát triển của Apple.

Bạn đang xem: Provisioning là gì


*

Ngoài việc bạn phải truy cập vào account thì cũng có thể xem Team ID thông development or distribution certification trong keychain bằng command sau:

security find-identity -v -p codesigningCác bạn thử đi nhé.

2. Bundle ID

Mỗi một ứng dụng iOS yêu cầu một mã định danh duy nhất để có thể xác định ứng dụng mà không gặp phải sự bối rối hay mơ hồ nào. Mỗi ứng dụng iOS phải đặt số nhận dạng gói duy nhất trong tên miền ngược của công ty hoặc cá nhân (tuỳ vào loại account). ID có thể được thiết lập trong khi tạo ứng dụng trong iTunes Connect cần được sử dụng trong tệp danh sách thuộc tính của ứng dụng iOS.

Mỗi target trong ứng dụng iOS nên có một mã định danh duy nhất. Bạn có thể đã từng thấy ID có định dạng com.company_name.com hoặc một cái gì đó như thế này. Trong Xcode, chúng ta có thể thấy ID trong tab General của target.

Xem thêm: Cách Ghi Hình Ảnh Đĩa (Iso & Img) Trong Windows Disc Image Burner Là Gì


*

instruments -s devicesBạn có thể thấy các thiết bị có tên, phiên bản iOS và UDID trong dấu ngoặc vuông. Nó trông giống như thế nàyiPhone 6 Plus (11.2) (Simulator)

5. Entitlements (Entitlements and App Sandbox)

Các ứng dụng iOS có thể tự mình làm mọi thứ, chúng ta phải nói rõ cho ứng dụng biết ứng dụng có thể làm gì hoặc không thể làm gì dưới dạng các quyền lợi. Ứng dụng có quyền làm một số điều mà chúng ta cần xác định trong hộp cát ứng dụng. Các hạn chế ứng dụng được quản lý bởi hộp cát. App Sandbox là cơ sở hạ tầng khác với cơ sở hạ tầng code sign, code sign chịu trách nhiệm chạy những gì bên trong hộp cát. Các quyền của ứng dụng được cấu hình để chỉ định tài nguyên nào của hệ thống mà ứng dụng được phép sử dụng và trong tình huống nào.

Quyền lợi cũng trao các khả năng và bảo mật của ứng dụng iOS. Các tài nguyên mà ứng dụng được phép sử dụng thường có một số giá trị mặc định nhưng chúng luôn bị vô hiệu hóa. Các nhà phát triển ứng dụng phải kích hoạt chúng một cách rõ ràng. Các giá trị quyền lợi thường được sử dụng là iCloud, APNS, Apple Pay và App Sandbox và nhiều hơn nữa.

Chúng ta có thể kích hoạt các quyền trong tab capabilities của Xcode cho một target cụ thể. Bạn chỉ nên kích hoạt những quyền lợi mà bạn cần. Điều này ngăn chặn mã độc xâm nhập vào ứng dụng


*

II. Provisioning Profiles

Vào lúc này, bạn phải tự hỏi tại sao chúng ta cần biết tất cả những điều trên để biết Provisioning profiles. Câu trả lời ngắn gọn là Provisioning profiles là sự kết hợp của tất cả những điều mà chúng ta đã thấy cho đến nay. Về cơ bản, nó bao gồm mọi thứ từ certificate, App ID, Device ID. Cấu hình cung cấp xác định quy tắc để chạy ứng dụng bên trong thiết bị. Vai trò của nó là xác nhận rằngỨng dụng cụ thể có App IDỨng dụng có App ID đó có thể chạy trên một số thiết bị có trong provisioning profiles. Provisioning profiles phát triển có danh sách các thiết bị được bao gồm.Ứng dụng chỉ nên có những quyền lợi được xác định trong provisioning profilesỨng dụng chỉ có thể chạy dựa trên certificates được nhúng trong provisioning profiles.

III. Creating Provisioning Profile

Có rất nhiều provisioning profiles. Nó có App ID, UDID, quyền lợi và certificates. Chúng ta sẽ hiểu điều này tốt hơn khi chúng ta tạo provisioning profiles từ trang thông tin dành cho nhà phát triển của Apple. Provisioning profiles có thể dễ dàng được tạo:


*

IV. Inside Provisioning Profile

Vị trí lưu

~/Library/MobileDevices/Provisioning ProfilesThông tin chi tiết có thể được xem bằng cách sử dụng command saucd ~/Library/MobileDevice/Provisioning\ Profiles/security cms -D -i xxxxxxxx_your_pp_id.mobileprovisionSau khi thực hiện các command trên bạn có thể biết thêm một số thông tinApp ID NameCreation DatePlatformDeveloper CertificatesEntitlementsExpiration DateProvisioned DevicesTeam IdentifierTeam NameVersionBạn nào đọc tới đây tức là đã gần hết series này rồi, có lẽ trong bài viết sau mình sẽ đi chi tiết về việc sử dụng nó trong ứng dụng.Cám ơn các bạn đã đọc, hãy cùng đợi bài viết sau nhé.