Подтвердить что ты не робот

Создание архива для выпуска XCode 4.6 с помощью телефонной заставки v 2.9 не выполняется

Это кажется повторяющимся явлением.

Я видел несколько предыдущих вопросов, где решение заключалось в том, чтобы удалить armv6, и тогда архив будет работать. Конечно, armv6 ушел.

Итак, теперь, создавая как текущую, так и Xcode 4.6.3 телефонную разницу 2.9. И да, приложение отлично работает на iphones, ipads и в симуляторе.

Я получаю это сообщение в конце этапа создания архива:

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -F/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -filelist /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq.LinkFileList -dead_strip -weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a -ObjC -fobjc-link-runtime -miphoneos-version-min=5.0 -framework CoreLocation -framework ImageIO -framework OpenAL -framework AssetsLibrary /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a -framework Foundation -weak_framework UIKit -framework CoreGraphics -framework AddressBook -framework AddressBookUI -framework AudioToolbox -weak_framework AVFoundation -framework CFNetwork -framework MediaPlayer -framework QuartzCore -framework SystemConfiguration -framework MobileCoreServices -weak_framework CoreMedia -framework CoreLocation -o /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq

ld: file not found: /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

И подошел и осмотрел файловую систему там:

cd /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build
./Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/UninstalledProducts/libCordova.a

И он был построен, просто не помещал туда, где линкер хотел его найти.

Итак, нет сомнений, что некоторые настройки сборки говорят, что компоновщик смотрит туда, или сообщает сборке, чтобы поставить ее там, где линкер хочет ее найти.

Разве что-то еще.

Мой вопрос - как получить архив приложения для сборки правильно, поэтому он может выйти в магазин.

Спасибо, Джон


Прекрасный человек, который работает в Apple, сказал мне, где искать, и в этот момент это было решено.

В глубине настроек сборки задано поле, называемое другими флагами компоновщика

Он начинается без значения, но если вы нажмете на него, он появится с помощью Debug и Release.

В очень длинной строке, которая является Release, можно найти -force_load libCordova.a. и удаляет эту часть строки.

From:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load ${TARGET_BUILD_DIR}/libCordova.a -ObjC

To:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem  -ObjC

Скорее всего, это ошибка, связанная с тем, что телефонная задержка по умолчанию не применяется, я также свяжитесь с ними и проверьте, не может ли он по умолчанию восстановить его.

Его записка, которая указала мне на это:

Я замечаю, что ваша команда ссылок содержит следующее:

-force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a

и это:

/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a

Путь, передаваемый в -force_load, является фиктивным путем, о котором жалуется компоновщик. Я думаю, что вам нужно удалить флаг компоновщика "-force_load". У вас есть такой флаг, установленный в настройках "Другие флаги компоновщика"?

4b9b3361

Ответ 1

Найдено исправление.

  • В настройках целевой настройки найдите Other Linker Flags
  • Измените $(TARGET_BUILD_DIR)/libCordova.a
  • К $(BUILT_PRODUCTS_DIR)/libCordova.a

Ответ 2

Мне не удается перейти на "$ (BUILT_PRODUCTS_DIR)/libCordova.a" в "Другие флаги компоновщика". Проблема все еще существует. (Xcode 4.6.3 phonegap 2.9.0)

Итак, я попробую установить ниже, и это работает для меня.

  • В настройках целевой сборки найдите "Другие флаги компоновщика"
  • Удалить "$ (TARGET_BUILD_DIR)/libCordova.a"
  • Измените "-force_load" на "-all_load"

Это помогло мне.

======== Обновление ============

С помощью вышеупомянутого трюка я могу получить приложение и отправить в App Store без проблем. Но я узнал в iTune Connect, что он показывает "Invalid binary".