2012-03-29 22 views
6

Vì vậy, rõ ràng Apple đã bắt đầu từ chối các ứng dụng sử dụng [UIDevice uniqueIdentifier]. Tôi đã nghe báo cáo về các ứng dụng bị từ chối và được chấp thuận trong tuần qua sử dụng nó (một số thông qua, một số thì không). Tuy nhiên, không có mạng quảng cáo chính nào (tạo doanh thu cho ứng dụng của tôi) chưa ra mắt với một API không sử dụng UDID. Tất cả các API của họ được bao gồm trong ứng dụng của tôi đều sử dụng nó. Tất cả đều nói rằng họ đang làm việc trên một API mới và nó sẽ sớm ra mắt, nhưng nó có thể là một vài tháng nữa. Có vẻ như rất lạ đối với tôi rằng Apple sẽ thực thi chính sách này thông qua quy trình xem xét ứng dụng, thay vì thông qua một phiên bản mới của hệ điều hành không cho phép (và mọi người có thời gian để lập trình trong giai đoạn beta) .Apple phát hiện truy cập UDID trong quá trình xem xét ứng dụng như thế nào?

Tất cả những gì đã nói, câu hỏi của tôi là Apple phát hiện chính xác như thế nào nếu bạn đang truy cập UDID trong quá trình đánh giá ứng dụng? Họ bằng cách nào đó quét các gói để xem nếu cuộc gọi là ở đó, hoặc họ theo dõi các cuộc gọi hệ thống thực sự được thực hiện trong khi họ kiểm tra các ứng dụng? Tôi đã nghĩ đến việc có lẽ không truy cập vào các API quảng cáo nếu người dùng muốn trả tiền hoặc cho họ lựa chọn để hỗ trợ quảng cáo và do đó cung cấp UDID của họ. Nhưng, tôi cần phải hiểu nếu Apple đang từ chối dựa trên [UIDevice uniqueIdentifier] chỉ đơn giản là được biên dịch vào mã của bạn, hoặc nếu họ phát hiện dựa trên bạn gọi [UIDevice uniqueIdentifier] trong quá trình kiểm tra xem xét ứng dụng.

Vui lòng không trả lời câu hỏi này với lý do tại sao bạn không nên sử dụng [UIDevice uniqueIdentifier] hoặc cách tạo UDID của riêng bạn, v.v. Vấn đề của tôi là thư viện của bên thứ ba mà tôi yêu cầu chưa có giải pháp thay thế. Câu hỏi đặt ra là: Apple phát hiện truy cập UDID như thế nào trong quá trình đánh giá ứng dụng?

+1

"thay vì thông qua phiên bản hệ điều hành mới chỉ đơn giản là không cho phép" nhưng sau đó Apple không thể sử dụng nó. ;) – Joel

+0

Xóa API, mà không buộc các nhà phát triển cập nhật ứng dụng trước, sẽ phá vỡ các ứng dụng hiện đã được phê duyệt và mua hiện đang chạy trên thiết bị của khách hàng, có khả năng khiến khách hàng không hài lòng với bản cập nhật hệ điều hành. – hotpaw2

Trả lời

7

Chúng đã được biết là sử dụng phân tích tĩnh, về cơ bản quét mã nhị phân đã biên dịch của bạn cho các phiên bản được biên dịch của các cuộc gọi đến các phương pháp cụ thể. Họ cũng sử dụng điều này để phát hiện các cuộc gọi đến các API riêng tư. Có thể đánh lừa phân tích tĩnh bằng cách xây dựng bộ chọn từ chuỗi theo cách sáng tạo. Mặc dù đó là không có cách nào trung thực hoặc khuyến khích.

Nhưng phương pháp mạnh mẽ hơn rất có thể thông qua proxy HTTP, thông qua việc sử dụng ứng dụng của bạn, họ có thể xem lưu lượng HTTP cho bất kỳ UDID nào được gửi đi. Mà có thể có thể được nhận xung quanh bằng cách băm hoặc mã hóa 2way. Điều này cũng sẽ không trung thực hoặc được đề nghị.

Và khi iOS6 ra mắt vào mùa hè này, phương pháp này có thể sẽ bị xóa hoàn toàn, làm cho tất cả mọi thứ trở nên phức tạp.

+0

API mạng quảng cáo của bên thứ ba được biên dịch trước để không có cách nào "làm xáo trộn" cuộc gọi tới [UIDevice uniqueIdentifier] trong mã nguồn của chúng. Tôi chỉ đơn giản nghĩ đến việc cung cấp cho người dùng tùy chọn, thay vì kết nối với API tự động khi khởi động. Nhưng câu trả lời hay. Cảm ơn. – user1301928

2

Apple đã được báo cáo sử dụng quét tĩnh cho tất cả chữ ký phương thức được sử dụng trong ứng dụng (đôi khi từ chối ứng dụng để sử dụng cùng chữ ký cho lớp tùy chỉnh của nhà phát triển như của một trong số không công khai của Apple Ngoài ra, họ cũng đã được báo cáo trước đó để chạy các ứng dụng đang được xem xét trên các phiên bản hệ điều hành phần cứng và không được phát hành đặc biệt, có thể có hoặc không bao gồm thiết bị phân loại, ví dụ trên lưu lượng mạng.

Các vấn đề liên quan