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



0 Answers

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

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

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

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

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

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

Question

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

Я видел ряд предыдущих вопросов, где решение заключалось в том, чтобы удалить 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

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

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

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

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

Спасибо, john

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

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

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

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

Из:

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

Для того, чтобы:

-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». У вас есть такой флаг, установленный в настройках «Другие флаги компоновщика»?






Related