2014-10-08 6 views
6

Używam polecenia xcodebuild do generowania dynamicznego frameworka. Aby był zgodny z symulatorem iPhone'a 5s, muszę go zbudować w architekturze x86_64. ale nie buduje ram.Xcodebuild nie generuje dynamicznego frameworka z architekturą x86_64

Używam poniżej polecenia dla tego.

xcodebuild -project $PROJECT_PATH -configuration 'Release' -sdk 'iphonesimulator7.0' clean build ARCHS='x86_64' VALID_ARCHS='x86_64' IPHONEOS_DEPLOYMENT_TARGET='7.0' TARGET_BUILD_DIR="$BUILD_DIR/build-x86_64" BUILT_PRODUCTS_DIR="BUILD_DIR/build-x86_64" 

Proszę o pomoc ...

+0

Nie można wygenerować go w XCode? – wshcdr

+0

Czy projekt ramowy jest wymieniony jako zależność w fazach budowy? Xcode rozwiąże niejawnie zależności, ale linia poleceń nie. – borrrden

+0

Jest generowany, gdy używam xcode, ale nie generuję polecenia xcodebuild. –

Odpowiedz

0

Dzięki za odpowiedzi ..

Właśnie okazało się, że iphonesimulator7.0 SDK nie został zainstalowany na moim komputerze więc nie powiodło się podczas budowy.

Zmieniłem go na iphonesimulator i teraz działa.

0

Jest możliwe brakuje parametru -target "MyTarget". Domyślnie, jeśli nie przekażesz tego parametru, xcodebuild zbuduje pierwszy cel wymieniony w projekcie. Czy twój wybrany cel jest pierwszym celem w projekcie?

Inną opcją, którą można wypróbować, jest wypróbowana i przetestowana metoda budowania uniwersalnych frameworków dla systemu iOS. Użyłem opisanej tutaj metody z wieloma frameworkami z doskonałymi wynikami: https://github.com/jverkoey/iOS-Framework. Nie jestem twórcą tej metody.

Bez wysyłania jakichkolwiek komunikatów o błędach, a nawet jak wiesz, że się nie udaje, trudno jest podać więcej szczegółów. Czy nie buduje (tak, że otrzymujesz komunikat o błędzie)? Czy to się nie udaje, ponieważ nie widzisz architektury x86_64 w ostatecznej strukturze?

0

Spróbuj coś takiego na liście argumentów xcodebuild manual link

-destination "platform=iOS Simulator,OS=8.0,name=iPhone 6" 

to, co jest wyświetlane na projekt (robię to założenie opiera się na kontekście powyżej)

xcodebuild [-project projectname] -scheme schemename [-destination destinationspecifier] 
      [-destination-timeout value] [-configuration configurationname] 
      [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] 
      [-userdefault=value ...] 

W jednym z ich przykładów możesz również wyświetlić wiele miejsc docelowych.

xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=iOS 
      Simulator,name=iPhone' -destination 'platform=iOS,name=My iPad' test 

Jestem osobiście w projekcie, który używa obszaru roboczego, więc muszę wymienić schemat.

Notatka poboczna, zauważyłem, że ustawiasz TARGET_BUILD_DIR i BUILD_PRODUCTS. Ustawiłem OBJROOT i SYMROOT, a katalogi wyglądają tak samo, jak gdyby użyłem GUI Xcode.

Ostatnio tu jest prawdziwym przykładem z flagą docelowy

BUILDDIR="<path/to/build/directory>" 
xcodebuild -workspace "<path/to/workspace/>my.xcworkspace" -scheme "NameOfMySchemeToBuild" -destination "platform=iOS Simulator,OS=8.0,name=iPhone 6" -configuration "Release" OBJROOT=$BUILDDIR SYMROOT=$BUILDDIR 

nadzieję, że to pomaga!

Powiązane problemy