2011-06-21 9 views
5

Czy wszystkie nagłówki w/usr/include gwarantują, że będą uważane za część publicznych interfejsów API, jeśli chodzi o przesyłanie do Mac App Store?Czy wszystkie nagłówki w/usr/include są uważane za publiczne API w MAS?

Rozważmy na przykład plik /usr/include/copyfile.h

komentarze w tym pliku to powiedzieć: „Ta implementacja jest niepełna, a interfejs może się zmienić w przyszłym wydaniu.” Czy powoduje to, że nagłówek jest niepubliczny? Jak ustalić, czy nagłówek jest uznawany za publiczny?

Odpowiedz

3

Przeczytaj dolną sekcję strony dokumentacji this.

Fragment:

Mac OS X zawiera wiele dynamicznych bibliotek w katalogu/usr/lib i jego podkatalogów. Dynamiczne biblioteki współużytkowane są identyfikowane przez rozszerzenie .dylib. Pliki nagłówkowe bibliotek znajdują się w/usr/include.

Wydaje się, że tutaj jest to, że w sposób dorozumiany biblioteki .dylib dołączony OS X są uczciwe gry do wykorzystania w aplikacji, ale trzeba mieć świadomość, że nie gwarantują one mieć szczególną wersję lib na przykład Lion, więc powinieneś dołączyć najbardziej ogólną wersję, jaką możesz.

Jak powiedział @ Dan, inną rzeczą, która przechyliłaby cię do biblioteki, która byłaby w porządku, byłoby użycie strony podręcznika. copyfile ma stronę podręcznika, więc można jej używać (ponieważ pokazują, jak z niej korzystać!). Aby sprawić, że sytuacja będzie jeszcze bardziej mętna, sprawdź stronę man getattrlist i wyszukaj "copyfile". Jedna z flag, które można odczytać pod względem pojemności, wskazuje obsługę dla drugiej funkcji copyfile() API. Tak więc w tym przypadku istnieją 2 funkcje API copyfile(), a ty możesz używać tylko strony podręcznika, ponieważ ta druga jest oznaczona jako prywatna i nieudokumentowana.

Dowolne nagłówki nie zawarte w folderze Frameworka i nie pasujące do .dylib lub strony podręcznika, generalnie unikałem używania.

5

Jest publiczny, jeśli jest udokumentowany. Masz wiele plików .hh w twoim systemie, które odnoszą się do prywatnych API. Nie w ten sposób wiesz, czy jest bezpieczny w sklepie. Jest bezpieczny w przechowywaniu, jest udokumentowany w dokumentacji ramowej.

+0

Masz czas szukać pliku kopii w dokumentacji Xcode? Zobaczysz to tam. Mówi on: "Funkcja copyfile() została wprowadzona w systemie Mac OS X 10.5". Czy to oznacza, że ​​używanie nagłówka /usr/include/copyfile.h gwarantuje bezpieczeństwo MAS? – Enchilada

Powiązane problemy