2016-09-19 14 views
5

Có gì Apple phản hồi: ứng dụng của bạn sử dụng hoặc tham chiếu API ngoài công lập như sau:Ứng dụng của tôi đã bị từ chối vì các API ngoài công lập

  • init:

Việc sử dụng các API không công khai không được phép trên App Store vì nó có thể dẫn đến trải nghiệm người dùng kém nếu các API này thay đổi.

điều khiến tôi bối rối nhất là "init:", ý tôi là, điều gì sai với "init:"? Chúng tôi không thể sử dụng "init:"? Hơn nữa, khi chúng tôi sử dụng các API không công khai thì có bất kỳ sự nóng lên nào Làm thế nào tôi có thể tìm thấy các API không công khai này?

+1

Tôi sẽ khiếu nại với Apple hoặc có thể thử lại. Dường như đã có rất nhiều vấn đề với API không công khai với bản phát hành iOS 10. – Paulw11

Trả lời

3

Bạn thực sự không nên sử dụng bất kỳ thứ gì có tên init:. Đó sẽ là phương thức init với một tham số, nhưng không có giải thích về tham số đó là gì. Ví dụ:

- (instancetype) init:(NSString *)string; 

Đó luôn là tên không chính xác. Tên chính xác sẽ là:

- (instancetype) initWithName:(NSString *)string; 

(hoặc initWithTitle: hoặc initWithSomeOtherThingButSomething:)

Vì vậy, đầu tiên tôi sẽ tìm kiếm init:, và rằng nên dễ dàng fixable. Nếu bạn không thực sự có bất kỳ phương pháp với tên đó, thì đây có thể là một lỗi trong công cụ của Apple và bạn sẽ cần phải thảo luận về nó với Apple.

+1

Tôi đồng ý. Tôi nghĩ rằng ruột kết là một giveaway. Tôi đã gặp vấn đề nơi tôi vô tình triển khai phương thức riêng tư; thật dễ dàng để làm do nhầm lẫn vì không gian tên chung. Nhưng trong mọi trường hợp, không nên có bất kỳ phương thức nào được gọi là 'init: '. Bạn có thể gọi 'init' không có tham số, hoặc' initWithThing: 'và tham số, nhưng không phải là' init: '. – matt

+0

Tôi tìm kiếm "init:" trong toàn bộ dự án của tôi sau đó hiển thị hai kết quả: - 'id writer = [[_SBJsonWriterClass alloc] init: [[NSArray alloc] initWithObjects: @" Basic functions ", @" Advanced functions ", @ "Định vị phụ kiện", @ "", nil]]; ' - 'id parser = [[_SBJSONParserClass alloc] init: [[NSArray alloc] initWithObjects: @" Chức năng cơ bản ", @" Chức năng nâng cao ", @" Accessory định vị ", @" ", nil]];' Chúng đều nằm trong tệp AFJSONUtilities.m của AFNetworking. Làm cách nào để giải quyết sự cố này mà không xóa AFNetworking? Chỉ cần đổi tên? –

+3

Nâng cấp AFNetworking. Điều đó nghe có vẻ giống như một phiên bản cổ (có lẽ là trước 1.0?). Điều quan trọng là giữ cho thư viện của nhà cung cấp được cập nhật thường xuyên. –

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