2015-01-06 27 views
5

Czy "iOS 8 obsługuje teraz dynamiczne frameworki" oznacza, że ​​jest to dozwolone w przypadku przesyłania do sklepu App Store?Czy aplikacje z iOS 8 z osadzonymi wersjami są dozwolone w App Store?

Wygląda na to, że wcześniej programiści, którzy mogli używać dylibs do własnych aplikacji, ale używali ich w czymś przesłanym do App Store, mogliby zostać odrzuceni. Czy to nadal się dzieje, czy ta zmiana w iOS 8 sprawiła, że ​​wszystko w porządku?

Na przykład, jeśli napisałem aplikację przy użyciu OpenCV, czy byłoby teraz możliwe zbudowanie i wysłanie dylib OpenCV (zakładając, że zbudowałem OpenCV jako dylub) zamiast statycznego łączenia?

Jestem zainteresowany, ponieważ mamy istniejącą strukturę opartą na Qt, która sama ma kilka bibliotek współdzielonych, które obecnie tworzymy dla systemów Linux, OS X, Windows i Android. W przypadku iOS wydaje się, że musimy to zmienić, aby utworzyć pojedynczą aplikację ze wszystkimi naszymi komponentami i statycznie połączonymi Qt. Jeśli aplikacje na iOS i App Store zaczynają obsługiwać (osadzane) dynamiczne biblioteki, nasze kompilacje iOS mogą wysyłać wszystkie składniki jako biblioteki dynamiczne, tak jak to robimy na wszystkich innych platformach.

pokrewne:

+0

Wszelkie aktualizacje w tej sprawie? – Macke

Odpowiedz

1

Wydaje się, że nadal istnieje granica, że ​​aplikacje tylko statycznie połączone są akceptowane na iOS App Store. można przeczytać w App Store wytycznych recenzja:

2.7 aplikacji, które pobrać kod w jakikolwiek sposób lub forma zostaną odrzucone

2.8 aplikacje, które instalują lub uruchomić inny kod wykonywalny zostanie odrzucony

To nie jest ograniczenie techniczne, ale legalne. Został zbanowany z powodów bezpieczeństwa, ponieważ biblioteka dynamiczna może być ładowana i rozładowywana w czasie wykonywania, aby pobrać dodatkowy kod wykonywalny i załadować go (jak wtyczkę). Dlatego Apple ściśle kontroluje dynamiczne łączenie, co jest problemem bezpieczeństwa dla pozornie bezpiecznych systemów operacyjnych, takich jak ios.

Po tym wszystkim trzeba mieć komercyjną licencję na wdrożenie Qt w sklepie App Store. Możesz kupić licencję na urządzenia mobilne Indie i pomijać wyzwania stworzone przez sklepy innych firm. Oznacza to, że możesz dystrybuować swoją aplikację za pośrednictwem dowolnego sklepu ze stronami trzecimi, który chcesz.

+1

Ponieważ 'dylibs' są obsługiwane w> =' iOS 8', polityki są teraz nieco rozluźnione i prawdopodobnie ulegną zmianie w przyszłości. Jednak w rzeczywistości akceptacja naprawdę zależy od recenzenta i jak ściśle on/ona interpretuje wytyczne. Dlatego nie sądzę, że chodzenie do bibliotek dynamicznych byłoby mądrym wyborem w tej chwili i/lub w niedalekiej przyszłości. – BaCaRoZzo