2015-02-03 11 views
7

Xcode 6.1.1Wymagane jest podpisywanie kodu Xcode6 dla ram referencyjnych?

Próbujemy podpisać naszą aplikację do dystrybucji (lub nawet do przetestowania na urządzeniu fizycznym). W naszym projekcie mamy odniesione ramy. Mieliśmy wrażenie, że powinniśmy podpisywać tylko naszą aplikację (i mamy wszystkie identyfikatory podpisywania kodu, profile udostępniania itp.), Ale nie powinniśmy podpisywać tej zewnętrznej struktury, ponieważ jej nie napisaliśmy. Powinien otrzymywać swoje referencje do podpisywania kodu z projektu nadrzędnego.

Jednak za każdym razem, gdy próbujemy uruchomić na urządzeniu fizycznym, ten wzorzec odwołuje się do błędu kompilacji: "Błąd CodeSign: podpisywanie kodu jest wymagane dla typu produktu" Framework "w SDK" iOS 8.1 "".

Czy to oznacza, że ​​musimy to podpisać?

W szczególności ramy, z których próbujemy korzystać, to Alamofire.

Odpowiedz

4

myślę, że to zależy od tego, gdzie te ramy pochodzą z:

  • Jeśli są wasze (tj wewnętrzna biblioteka jesteś łączenie z projektem), trzeba je podpisać.
  • Jeśli pochodzą one z projektu o otwartym kodzie źródłowym, który budujesz ze źródła (np. Kapsuła od Cocoapods), musisz je podpisać.
  • Jeśli pochodzą od programisty innej firmy, powinny już być podpisane.

Jest aa krok nazywane „wklejenia szkieletowe” pod „Build Fazy” od celu, w którym można określić, które ramy osadzić w wiązki i co do kodu znaku:

Embed frameworks build phase

nie robi nie ma znaczenia, czy mają już podpis: twój zastąpi to, co tam było.

Zawsze możesz sprawdzić status certyfikatu ram z codesign narzędzia wiersza poleceń:

xcrun codesign --verify --verbose [MYFramework.framework/MYFramework]

i wydrukować podmiot śpiew:

xcrun codesign --display --verbose [MYFramework.framework/MYFramework]

+0

z Xcode 7 tego nie robi wydaje się już działać. Mam "Code Sign on Copy", ale framework nie otrzymuje podpisanego kodu. Dziwne jest to, że wiem, że ramy zostały podpisane, ponieważ stworzyłem kod w oddzielnym projekcie i podpisałem go za pomocą mojego certyfikatu "iPhone Developer". Co więcej, kiedy buduję swoją aplikację, pojawia się ostrzeżenie: "pomijam pasek fazy kopiowania, plik binarny jest podpisany kodem". Tak więc wszyscy myślą, że jest to kod podpisany, ale kiedy próbuję przesłać do App Store, narzeka, że ​​framework NIE jest podpisany przez kod i nie zaakceptuje kodu binarnego. Catch-22, nie jestem pewien, co robić ... – Bungles

+0

Nie mam żadnego problemu z Xcode 7 w tej chwili. Ramy muszą być podpisane za pomocą tego samego certyfikatu co aplikacja, inaczej iTunes będzie narzekał. Jeśli masz kilka certyfikatów w pęku kluczy "Programista iPhone'a", czasami wybiera inne dla różnych projektów. – duhanebel

+0

Wygląda na to, że w XCode 8 nie musisz w ogóle kodować struktur dynamicznych, jeśli chcesz je dystrybuować samodzielnie. Możesz więc polegać tylko na ostatecznym podpisaniu podczas całego procesu budowania aplikacji. Ale słyszałem, że są problemy z zagnieżdżonymi frameworkami - mogą być pozostawione bez podpisu podczas fazy kopiowania, a to jest problem. – JustAMartin

Powiązane problemy