Nie można wygenerować archiwum aplikacji iOS w xcode

175

Mam problem z wygenerowaniem archiwum aplikacji iOS z aplikacji. Aplikacja dobrze się kompiluje i działa nawet w symulatorze. Teraz chciałem przeprowadzić testy ad hoc i nie mogę wygenerować archiwum aplikacji iOS. Kiedy klikam Produkt -> Archiwum, generuje ogólne archiwum xcode. Czy ktoś może mi pomóc. Powinienem wspomnieć, że wygenerowałem już archiwum aplikacji iOS tej aplikacji. Właśnie z jakiegoś powodu przestał generować archiwum iOS. Wielkie dzięki.

Filip Majernik
źródło
7
Mimo że pytanie dotyczy generowania archiwum z xcode, napotkałem ten problem przy użyciu xcodebuild. Rozwiązaniem jest określenie miejsca docelowego:xcodebuild -destination generic/platform=iOS
db42
Dzięki @ db42, zrobiłem to!
fabb
1
czy możesz rozwinąć rozwiązanie - gdzie dokonujesz zmiany?
jlo-gmail
Jeśli masz jakieś pliki .xcodeproj w Project> Targets> Build Phases> target zależności, usuń je stamtąd, a następnie skompiluj swój ipa. Mi to pasuje. Pozdrawiam
Kalpesh Panchasara

Odpowiedzi:

316

Sprawdź ustawienia kompilacji:

  1. Pomiń instalację jest NIE dla głównego celu projektu
  2. Pomiń instalację jest TAK dla celów ramowych (podprojektów)
  3. W fazach kompilacji dla podprojektów nagłówki kopiowania muszą znajdować się w projekcie, a nie publicznie (nie dotyczy tworzenia biblioteki statycznej)
  4. Katalog instalacyjny w obszarze Wdrożenie jest prawidłowy (na przykład / Aplikacje)
Alex L.
źródło
2
Jest to najbardziej kompletna odpowiedź, która zawiera powyższe odpowiedzi częściowe. Dzięki Alex L! Myślę, że to powinna być wybrana odpowiedź na to pytanie.
Brandon,
3
Jako metapytanie, jak to rozgryzłeś? Wygląda na to, że w przypadku wszystkich pytań związanych z kompilacją polegam na Stackoverflow.
philipkd
4
Piękny! Myślałem, że to problem z profilami aprowizacji, ale zadziałało świetnie. Podprojekt był gałęzią mapbox w route-me / MapView. Kopiowanie nagłówków było kluczowe, jak stwierdza poniższy post, można je znaleźć w fazach budowy podprojektu.
rcarver
7
# 3 naprawił mój problem, ale musiałem również przenieść pliki z prywatnego do projektu, zanim moje archiwum zostało zbudowane jako archiwum aplikacji iOS.
Thomas Hajcak,
4
Technicznie rzecz biorąc, problem nie polega na tym, że nagłówki są publiczne w obszarze Kopiuj nagłówki, ale w ustawieniach kompilacji> Ścieżka folderu nagłówków publicznych jest ustawiona domyślnie na /usr/local/include. Jeśli budujesz bibliotekę statyczną, nagłówki muszą być publiczne, więc bardziej poprawne jest, jeśli # 3 ma zmienić ścieżkę folderu nagłówków publicznych na coś bardziej sensownego include/$(TARGET_NAME). @CopperCash zauważa to w odpowiedzi poniżej.
bcattle
75

Może się to zdarzyć, jeśli dodałeś framework / bibliotekę ... musisz edytować Target-> Build Settings tej biblioteki i ustawić ustawienie „Skip Install” na „Yes”. Podczas ponownej archiwizacji XCode powinien ponownie zacząć tworzyć „Archiwum aplikacji iOS” zamiast „ogólnego archiwum xcode”.

delany
źródło
ale "Pomiń instalację" nie jest dostępne w xcode 4.4.1, przynajmniej nie mogę znaleźć pominięcia instalacji w moim xcode
Mashhadi
2
To samo dotyczy dodanych paczek.
Mark Horgan,
62

Oprócz opcji Pomiń instalację na tak, a jeśli otworzyłeś inny projekt lib / framwork w projekcie aplikacji, musisz przenieść nagłówki (jeśli istnieją) z publicznego do projektu w fazie budowy / kopiowaniu nagłówków .

faza budowania celu lib / framwork

ebtokyo
źródło
3
Już prawie straciłem nadzieję, ponieważ opcja Skip Install to Yes nie działa. Skopiowanie nagłówków do Project załatwiło mi sprawę. Dzięki!
ksm,
10
Aby pomóc Ci zlokalizować wadliwy podprojekt Xcode, możesz wyświetlić archiwum Generic Xcode w Finderze i zbadać pakiet. Wewnątrz .xcarchive zobaczysz błędne nagłówki w Products / usr / local / include.
MonsieurDart,
1
Po co umieszczanie kilku plików w celu skopiowania nagłówków do publicznej wiadomości zepsuło to?
mskw
mskw, myślę, że jeśli zbudowany artefakt zawiera jeden lub więcej nagłówków publicznych, nie może stać się archiwum „do wdrożenia na urządzeniu” (archiwum aplikacji iOS, z którego generujesz IPA). Pozostaje archiwum projektu Xcode. Dzięki
ebtokyo
1
cholera, dzięki, to na mnie zadziałało .. Zastanawiam się, jak do cholery udaje Ci się znaleźć takie rozwiązania :)
Fabio Napodano
45

Wykonałem następujące czynności, aby to zadziałało:

  1. Miałem bibliotekę statyczną Three20, użyłem cocoapods, aby dołączyć pliki do głównego projektu
  2. wykonałem pominięcie instalacji dla wszystkich innych projektów podrzędnych / bibliotek statycznych i przełączono nagłówki kopii z publicznego na projekt, jak wspomniano powyżej
  3. co najważniejsze: w każdej bibliotece używanej w projekcie przejdź do faz kompilacji -> Kopiuj pliki i upewnij się, że miejsce docelowe jest zmieniane z Absolute pathna products directory. Uwaga: zobacz poniższą wskazówkę, aby zawęzić wyszukiwanie i znaleźć bibliotekę powodującą ten błąd.

i to było to!

wskazówka: aby zorientować się, jakie pliki powodują, że Twoje archiwum tworzy plik archiwum, a nie ipa, wykonaj następujące czynności:

  1. Wybierz archiwum i kliknij przycisk Rozpowszechnij.
  2. Wybierz opcję „Zapisz zbudowane produkty”.
  3. Kliknij Dalej i Zapisz.
  4. Przeglądaj utworzony katalog w Finderze.
  5. Podkatalog „Libraries” zidentyfikuje biblioteki, dla których należy ustawić opcję Pomiń instalację na Tak.
  6. w niektórych przypadkach usr/local/includezidentyfikuje pliki nagłówkowe winowajców, które musisz przenieść z publicznego do projektu lub pliki, które musisz zmienić ze ścieżki bezwzględnej do katalogu produktów (lub nawet pliki, o których zapomniałeś ustawić opcję pomiń instalację na tak). ale ten katalog (tj. usr / local / include) różni się w zależności od struktury katalogów sublibrary. W wielu przypadkach ... zobaczysz wszystkie pliki wymienione w sekcji Kopiuj pliki w kroku 3 powyżej. Jeśli znajdziesz je tutaj, masz definitywną odpowiedź na temat przyczyny twojego problemu.

aktualizacja do podpowiedzi: aby życie było jeszcze prostsze ... jakiekolwiek pliki, które pojawiają się w kroku 4 w podpowiedzi powyżej ... po prostu wyszukaj je w globalnym wyszukiwaniu xcode ... i powinieneś otrzymać natychmiastowe wyniki dla tego, co chcesz ... na przykład, to była zawartość mojego folderu (postępując zgodnie z instrukcją powyżej):

wprowadź opis obrazu tutaj

Mogę więc powiedzieć, że ma to coś wspólnego z bibliotekami kryptograficznymi i ssl ... szukaniem ich:

wprowadź opis obrazu tutaj

uświadomił mi, że zapomniałem ustawić pominięcie instalacji na tak.

abbood
źródło
Świetna wskazówka! Zmieniłem niektóre nagłówki frameworka na „Prywatne”; z jakiegoś powodu powodowało to ich kopiowanie ./usr/local/include.
Ben Mosher,
1
zawsze miło jest móc pomóc @BenMosher :)
abbood
1
Najlepsza odpowiedź, jaką otrzymałem. Dzięki za wskazówkę, uratowałem mi dzień. !
neywen
Zdecydowanie odpowiedź, której szukałem - zapisywanie produktów do kompilacji wskazało mi dokładną przyczynę problemu.
Dennis L
Ta obszerna odpowiedź „Zapisz zbudowane produkty” jest bardzo pomocna - @abbood, wielkie dzięki dla Ciebie. Mam nadzieję, że pewnego dnia się odwdzięczą.
Scott Corscadden
21

Jeśli eksportujesz archiwum, otwórz je i zobacz /urs/local/includew produktach, wypróbuj tę sugestię :

W każdej pod pod Packaging, Private Headers Folder Pathi Public Headers Folder Pathjest ustawiony /usr/local/include. Jeśli je wyczyszczę, otrzymam prawidłowe archiwum.

wprowadź opis obrazu tutaj

Pracował dla mnie po uaktualnieniu mojej aplikacji React Native do 0.11.0Xcode 7i CocoaPods 0.39.0.beta.4.

Josh Habdas
źródło
1
Mogę potwierdzić, że to działa! O ile pamiętasz, aby wyczyścić zarówno ścieżki nagłówka prywatnego, jak i publicznego. Jest to również dość łatwe, jeśli po prostu wybierzesz wszystkie pody, wyszukaj ścieżkę nagłówka, a następnie wyczyść je wszystkie w tym samym czasie.
Dids
1
Mogę również potwierdzić, że to działa, zaoszczędziło mi dużo czasu, stało się tak, gdy zaktualizowałem moje pody do wersji 0.39.0.beta
Bryan P
Niesamowite. Pracował dla mnie :) Walczyłem od 1 i pół dnia. Dziękuję, dziękuję, dziękuję :) :) :)
Srikanth
Myślę, że to ten, który działał dla mnie Xcode 7.0 iOS9. Nie mam żadnych cocoapodów, ale to rozwiązało problem. Dzięki stary
Geoff H.
Oprócz tego musiałem ustawić SKIP_INSTALL na Tak w moim rozszerzeniu WatchKit i aplikacji, aby to działało.
Snowman
12

Jeśli używasz CocoaPods, a także WatchKit lub rozszerzenia Today, w repozytorium CocoaPods jest otwarty problem wyjaśniający, jaki może być Twój problem.

Rozwiązaniem dla mnie było, aby usunąć Copy Pod Resourcesfazę z WatchKit Extension i dziś Extension skierowany pod Build Phases. Gdy to zrobiłem, projekt został skompilowany i zarchiwizowany zgodnie z oczekiwaniami.

Mam nadzieję, że to komuś pomogło, przez cały dzień byłem zaskoczony!

rebello95
źródło
1
@ Lewis42 zawsze mógł dodać nagrodę;)
rebello95
Nie widzę opcji, głos w górę na Twój komentarz będzie musiał zrobić;)
lewis
@ Lewis42 musiałbyś dodać nagrodę do pytania i przyznać ją odpowiedzi lol
rebello95
@ rebello95, świetny koleś!
Matt,
10

Jeśli którakolwiek z powyższych odpowiedzi nie działa, prawdopodobnie problem dotyczy cocoaPods. Najnowsza aktualizacja 0.38.1zepsuła mi sprawę, ale potem obniżyłem poziom 0.37.1i wszystko wróciło do normy. Za pomocąXcode 6.3.1

Późniejsza edycja: aktualizacja do 0.38.2również to naprawi. Więcej informacji na temat przyczyny tego problemu znajdziesz tutaj: Cocoapods 0.38.1 nie utworzył prawidłowego archiwum

Ehmad Zubair
źródło
3
Zaktualizowałem do 0.38.2i nadal mam problemy. Czy korzystasz z Xcode 7?
Porter Hoskins
@PorterHoskins Właśnie napisałem ten problem, ponieważ Xcode 7 NIE zbuduje prawidłowego archiwum z tego samego projektu, który buduje prawidłowe archiwum w Xcode 6 . Używam Cocoa Pods 0.38.2, kiedy używam Xcode 6, wszystko jest w porządku, ale z Xcode 7 archiwum nie jest tworzone poprawnie. Czy sprawdziłeś strukturę folderów, aby zobaczyć, czy masz plik .appex poza .app w pakiecie?
Niedźwiedź polarny
Mam ramy w /Library/Frameworks. Myślę, że może to mieć coś wspólnego z tym, że strąki kakaowe Google nie są budowane jako dynamiczna struktura. Brzmi podobnie do github.com/CocoaPods/CocoaPods/issues/3889
Porter Hoskins
3
Przeniosłem się dla każdego nagłówka pod w Fazy / Nagłówki kompilacji do sekcji projektu z publicznego i zadziałało. Więc rzeczywiście problem może dotyczyć CocoaPods.
Denis Kutlubaev
7

Chociaż używam Xcode5 i to, co dla mnie załatwiło, to edycja schematu kompilacji - wypróbowanie wszystkich powyższych sugestii, które miały zastosowanie, nie pomogło w moim przypadku.

Miałem dwa cele, powiedzmy „App” i „App FREE”. Moje problemy z archiwum ogólnym wystąpiły, gdy próbowałem zarchiwizować wersję DARMOWĄ, którą dodałem po „normalnej” wersji aplikacji. W moim przypadku, kiedy wybrałem jego Schemat na pasku narzędzi i wybrałem Edytuj Schemat ... Zobaczyłem, że sekcja Build ma dwa cele, a mianowicie App i App FREE.

Odznacziłem wszystkie kolumny aplikacji, pozostawiając zaznaczone tylko kolumny App FREE i kliknąłem OK. Następnym razem, gdy wybrałem Produkt> Archiwum, otrzymałem moją aplikację ZA DARMO zamiast Archiwum ogólnego. :)

Stephen Watson
źródło
7

Jeśli masz tylko jeden projekt, może to rozwiązanie się przyda. Ten problem pojawił się, kiedy zduplikowałem cel. W rezultacie miałem zbudowane równolegle dwa cele. To powodowało problem. Zbudowano ogólne archiwum IOS.

Aby wyłączyć wbudowaną równoległość, przejdź do

  • Zarządzaj schematami,
  • Edytuj schemat,
  • Budować,
  • Usuń drugi cel.
roman777
źródło
5

Miałem ten problem po aktualizacji do iOS 9 i Xcode 7. Rozwiązanie Josha H działało dla mnie:

W każdym pod, w obszarze Pakowanie, Ścieżka do folderu nagłówków prywatnych i Ścieżka do folderu nagłówków publicznych jest ustawiona na / usr / local / include. Jeśli je wyczyszczę, otrzymam prawidłowe archiwum.

Zrobiłem również skrypt poinstalacyjny dla mojego Podfile, aby zrobić to automatycznie!

    post_install do |installer_representation|
        installer_representation.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['PUBLIC_HEADERS_FOLDER_PATH'] = [""];
                config.build_settings['PRIVATE_HEADERS_FOLDER_PATH'] = [""];
            end
        end
    end

Po prostu dodaj go na dole swojego pliku Podfile i uruchom pod install

julianwyz
źródło
5

Mam wiele projektów w moim obszarze roboczym (GTL, Pods i mój główny projekt) i oto, co zadziałało dla mnie:

Wybierz projekt, będą tam 2 typy, jest projekt i są cele .

W przypadku projektów, które nie są Twoim głównym polubieniem GTLlub PODS:

Projektowanie:

Skip Install = NO
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""

Cele:

Skip Install = YES
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""

W przypadku głównego projektu (który zwykle nosi taką samą nazwę jak nazwa produktu):

Projektowanie:

Skip Install = NO
Installation Directory = /Applications

Cele:

Skip Install = NO
Installation Directory = /Applications

Sprawdź cel wdrożenia ios w każdym projekcie i celu, aby upewnić się, że wszystkie są takie same.

Bryan P
źródło
Dzięki za wyjaśnienie tego krok po kroku. to naprawdę pomogło mi rozwiązać mój problem.
Arslan
4

Miałem ten problem. W moim przypadku było to spowodowane utrzymywaniem celu aplikacji Mac jako zależności aplikacji na iOS.

Powodem, dla którego tak skonfigurowano, było to, że aplikacja Mac była narzędziem używanym do generowania niektórych danych dla aplikacji na iOS, które zostały następnie zawarte w pakiecie.

Musiałem usunąć tę zależność i osobno skompilować narzędzie przed utworzeniem samej aplikacji na iOS.

Tomas Andrle
źródło
Biblioteki takie jak lippd są dostarczane z celami na iOS i OSX, zapomniałem usunąć cel
OSX
4

W moim scenariuszu otrzymywałem błędne „Archiwum ogólne” dopiero po tym, jak zacząłem włączać kod Swift do mojego projektu opartego głównie na Objective-C. Po wielu rozwiązywaniu problemów i sprawdzaniu pliku archiwum, który wypluwał Xcode, zauważyłem, że SwiftSupportfolder (z wymaganymi dylibami dla środowiska uruchomieniowego Swift) znajdował się w innym miejscu w moim archiwum niż w zupełnie nowym archiwum aplikacji projektu Swift .

Znalazłem Installation Directoryustawienie kompilacji i zauważyłem, że zostało ustawione na niestandardową ścieżkę w moim projekcie. Po prostu go usunąłem (ustawiając ogólną wartość/Applications ), a następna kompilacja -> Archiwum działała zgodnie z oczekiwaniami i dałem mi odpowiednie archiwum aplikacji na iOS.

TL; DR: upewnij się, że Installation Directoryustawienie kompilacji jest ustawione na wartość domyślną, /Applicationsgdy dołączasz kod Swift do aplikacji, zwłaszcza jeśli zaczynasz od starszego pliku projektu, który może mieć nieoczekiwane starsze ustawienia kompilacji.

Ryan Dorshorst
źródło
3

Zostawiając to tutaj, aby uratować innych z tej samej podróży.

Zauważyłem, że muszę usunąć tę samą fazę kompilacji Copy Pod Resources z docelowej biblioteki statycznej w moim obszarze roboczym.

Michael
źródło
po wypróbowaniu wielu z powyższych rzeczy zadziałało dla mnie (Xcode 7)
humphriesj
2

Dodatek do odpowiedzi Alexa L.

Punkt 3. Zmień „Ustawienia kompilacji” -> „Ścieżka do folderu nagłówka publicznego” na „dołącz / xxx”.

CopperCash
źródło
Jest to bardziej poprawne niż powyższy punkt 3. Twoje nagłówki muszą być publiczne, jeśli
budujesz
2

Jeśli żadne z powyższych nie pomogło ... po długim czasie .......

Usunąłem wartość z Info.plist dla wersji pakietu, ponieważ byłem wystarczająco zadowolony tylko z krótkiej wersji pakietu 1.0.Zły. Nie rób tego.

* Uwaga: Zrobiłem to, edytując go w interfejsie użytkownika po prawej stronie, nie zdając sobie sprawy, że umieści pusty klucz w pliku Info.plist. Myślę, że to czyni go nieważnym. Mój pakiet pojawił się podczas archiwizacji jako inne elementy i nie miał ikony, i nie mogłem przesłać go w inne miejsce.

Sprowadza się to do nieprawidłowych wartości w Info.plist. Jeśli nie jest to prawidłowe archiwum, spróbuj rozpakować stare archiwum i wrzucić / nadpisać bieżące i sprawdzić, czy to naprawi to podczas odbudowywania archiwum.

ohc192
źródło
1
  1. Przejdź do ustawień kompilacji i dodaj

    yourAppName / Resources / dist.plist do uprawnień do podpisywania kodu

  2. Naciśnij cmd + B z urządzeniem iOS lub rzeczywistym urządzeniem wybranym jako cel kompilacji

  3. Po zakończeniu -> przewiń do folderu „Produkty” i kliknij prawym przyciskiem myszy yourAppName.app

  4. Wybierz „Pokaż w Finderze”

  5. Utwórz folder z nazwą ładunku ( duże „P” )

  6. Skopiuj yourAppName do folderu ładunku

  7. Utwórz plik zip z folderu ładunku

  8. Zmień nazwę pliku ZIP na yourAppName.ipa

GOTOWE

LoVo
źródło
1

Po wypróbowaniu prawie wszystkiego:

  • Wyczyść, zarchiwizuj
  • usuń DerivedData, Archive
  • zrestartuj Xcode (używałem XCode7), Archive
  • kombinacje powyższych ...

Następnie zauważyłem, że na mojej partycji rozruchowej brakuje wolnego miejsca na dysku ... około 1 GB. Zrestartowałem, a potem dostałem około 18 GB za darmo.

Następnie otworzyłem Xcode i projekt, wykonałem Archiwum ... i, co zaskakujące (po godzinie próby zbudowania Archiwum) w końcu otrzymałem archiwum inne niż Generic.

Nie mam pojęcia, czy jest to problem z wolnym dyskiem, który go naprawił, czy ponowne uruchomienie systemu macOS, który go naprawił, ale zadziałał dla mnie.

Peter Li
źródło
0

W moim przypadku musiałem przenieść zarówno FMDB, jak i BlocksKit do bibliotek statycznych. Wcześniej były budowane jako podprojekty. Pamiętaj, że możesz używać lipo do tworzenia uniwersalnych bibliotek. Podczas budowania produktów końcowych kod symulatora zostanie automatycznie usunięty.

Maciej Swic
źródło
0

Innym możliwym powodem jest posiadanie odniesień w „Zależnościach docelowych” do projektów dla innej platformy. W moim przypadku pracowałem nad projektem, który udostępnia kod dla OSX i iOS. W jednym z celów iOS przypadkowo dodałem cel OSX jako zależność.

miguelSantirso
źródło
0

Aby być dokładnym, zamieszczam moje rozwiązanie.

Doświadczyłem dokładnie tego samego problemu, próbując zbudować archiwum projektu iOS w Xcode 5.1.1 (5B1008). Żadna z powyższych sugestii nie rozwiązała problemu, a większość z nich była nieistotna (nie dodałem żadnych ram i nie miałem żadnych wpisów publicznych w sekcji Kopiuj nagłówki w moich fazach kompilacji).

W moim przypadku naprawienie problemu polegało po prostu na zamknięciu mojego projektu, usunięciu wszelkich archiwów, które wcześniej utworzyłem, przejściu do Preferencji> Konta, usunięciu mojego konta programisty, zamknięciu Xcode, ponownym uruchomieniu, ponownym dodaniu mojego konta programisty, rozpoczęciu procesu archiwizacji jeszcze raz. To natychmiast rozwiązało mój problem.

Ade Ward
źródło
0

Jeszcze jedno rozwiązanie, ponieważ wszystko powyższe nie zadziałało ...

Zmieniono User Header Search Paths(przypuszczam, Header Search Pathsże działałoby równie elegancko) na "$(BUILT_PRODUCTS_DIR)/BlocksKit".

Tło :

W BlockKit programiści ustrukturyzowali nagłówki w głównym projekcie inaczej niż struktura podczas wdrażania. Dlatego nie możesz odwoływać się do nagłówków w projekcie i musisz odwoływać się do nagłówków skopiowanych do katalogu kompilacji.

Mazyod
źródło
0

Sposób, w jaki to zadziałało w (Xcode 5), miałem 2 cele i kiedy edytowałem schemat, w lewym panelu edytora schematów zobaczysz [BUILD, RUN, TEST, PROFILE XXX.APP, ANALYZE, ARCHIVE ] w okienku BUILD, zobaczysz cele projektu na liście. Po prawej stronie zobaczysz opcje ARCHIWUM, upewnij się, że tylko jeden cel jest wybrany do archiwizacji.

W projekcie miałem wybrane 2 cele, sprawdziłem tylko cel, który chciałem w produkcie i zadziałało!

dexyjones
źródło
0

Rozwiązałem ten błąd, otwierając wyłącznie projekt aplikacji w XCode, tj. nie otwierać obszaru roboczego zawierającego aplikację i inne projekty / biblioteki / frameworki.

Mając 2 oddzielne projekty, platformę lub bibliotekę współdzieloną i aplikację na iOS, musiałem otworzyć 2 różne okna XCode, każde bezpośrednio otwierając plik .xcodeproj zamiast wspólnego obszaru .xcworkspace , aby dobrze je zbudować.

Miły efekt uboczny XCode nie odbudowuje już każdego celu każdego projektu po wyczyszczeniu , co powoduje skrócenie czasu kompilacji.

Tło: tworzę SDK typu open source oraz aplikację demonstracyjną na iOS. Otworzyłem oba w jednym miejscu. Ustawienie opcji Pomiń instalację na TAK w celach SDK uniemożliwiłoby komukolwiek utworzenie archiwum, ponieważ byłoby ono puste, więc nie było to możliwe. Użycie programu Project zamiast publicznych nagłówków prowadziłoby do archiwum, w którym brakuje plików nagłówkowych, które powinny być dystrybuowane, więc nie było to również możliwe.

ofavre
źródło
0

To dlatego, że pracowałem w miejscu pracy. Projekt został zarchiwizowany, ale nie będzie wyświetlany w oknie organizatora. Sam zamknąłem obszar roboczy i otworzyłem projekt. Archiwum zostało otwarte w organizatorze ... mam nadzieję, że to pomoże.

Pierre-Yves Guillemet
źródło
0

W moim przypadku miałem niestandardowy skrypt, który kopiował niektóre pliki tymczasowe do:

${TARGET_BUILD_DIR}/myTempDir

Oznaczało to, że po zbadaniu archiwum w celu sprawdzenia jego zawartości znalazłem tuż obok pliku .app folder myTempDir. Po zmodyfikowaniu skryptu, aby zapisać gdzie indziej, rzeczy zostały posortowane.

Eli
źródło
0

Spróbuj ustawić nagłówki $ (PROJECT_NAME) w ścieżce folderu nagłówków publicznych programu Framework projektt. Musisz przejść do ustawień budowania elementu docelowego biblioteki, a następnie edytować ścieżkę folderu nagłówków publicznych jako nagłówki $ (PROJECT_NAME).

Inco Mob
źródło
0

Jeśli używasz Xcode 7 z cocoapods v.0.38.2 . Spróbuj usunąć copy pod resourcesz dzisiejszego celu rozszerzenia.

wprowadź opis obrazu tutaj

CoderPug
źródło
0

Napotkałem ten problem po dodaniu narzędzia wiersza poleceń OS X do projektu mojej aplikacji na iOS, a opcja Pomiń instalację była domyślnie ustawiona na NIE dla celu narzędzia wiersza poleceń. Ponieważ oczywiście nie można zainstalować pliku binarnego OS X na urządzeniu z systemem iOS, archiwizacja została domyślnie ustawiona na ogólne archiwum Xcode. Ustawienie opcji Pomiń instalację na TAK dla tego celu rozwiązało problem.

Brian Stewart
źródło