IBM Worklight / MobileFirst 6.x / 7.0 - " объект кода вообще не подписан."ошибка с buildtime.sh сценарий


У меня возникла ошибка при загрузке приложения Worklight в iTunes.

Проверка приложения завершается со следующей ошибкой:

Недействительная Подпись. Объект кода вообще не подписан. Двоичный в путь [MyApp.app/buildtime.sh] содержит недопустимую подпись. Убедиться вы подписали свое заявление сертификатом распространения, а не специальный сертификат или сертификат разработки. Убедитесь, что настройки подписи кода в Xcode являются правильными на целевом уровне (который переопределение любых значений на уровне проекта). Кроме того, убедитесь, что пакет, который вы загружаете, был построен с использованием цели выпуска в Xcode, не имитатор цели. Если вы уверены в настройках подписи кода правильно, выберите "Очистить все" в Xcode, удалите каталог " build в Искателе, и перестроить вашу цель выпуска. За дополнительной информацией, пожалуйста, проконсультируйтесь https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html

Моя проблема заключается в том, что я подал ту же заявку 2 недели назад, и она работала нормально. В сегодняшней версии было изменено только содержимое www/ папки, и она не работает с этой ошибкой.

Я погуглил проблему и нашел кодовый дизайн API Dropbox не работает в Xcode 4.6.3: "объект кода вообще не подписан" , но я попытался добавить --deep вариант и это не сработали для меня.

Может ли это относиться к чему-то с buildtime.sh сценарий? Когда я читаю его, кажется, что он просто обновляет значение buildtime в рабочем свете.файл plist:

#!/bin/bash
# Licensed Materials - Property of IBM
# 5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

# Update buildtime in project 
echo -n ${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/worklight.plist | xargs -0
/usr/libexec/PlistBuddy -c "Set :buildtime `date +"%s"`"

Кроме того, когда я гуглил проблему, я нашел похожую проблему на: https://github.com/AppGyver/steroids/issues/918 и они, кажется, используют гибридные приложения с SH-скриптами, которые заставляют меня думать, что проблема связана с buildtime.sh сценарий.

Я удалил buildtime скрипт, и удален запуск скрипта фазы на моем проекте Xcode, и на этот раз он не дает ошибку.

Безопасно ли это делать?

Кто-нибудь сталкивался с такой же ошибкой в проекте Worklight? Связано ли это с buildtime.sh сценарий или новая политика Apple?

1 4

1 ответ:

Сообщение в блоге об этой проблеме в Центре разработчиков МФП: https://developer.ibm.com/mobilefirstplatform/2015/05/01/recent-changes-in-apples-app-submission-process/

Проблема в том, что Apple теперь также проверяет, включены ли файлы .sh в пакет приложений (.ipa файл) подписаны или нет.

В приложении на платформе Worklight/MobileFirst есть один такой файл .sh, buildtime.sh, который добавляется в пакет. Нет никаких причин для этого. этот файл должен быть в результирующем пакете. Файл необходим только во время сборки, а не во время выполнения.

Существует простой обходной путь: удалить (не удаляйте файл buildtime.sh из целевой конфигурации в Xcode (на этапах сборки > копировать ресурсы пакета).

Также доступны iFixes (IBM APAR PI39826, Worklight / MFP Studio / CLI только; не требуется изменение сервера) от IBM Fix Центральный :

  • 6.0.0.2-IF201504301500
  • [22]}6.1.0.2-IF201504301501
  • 6.2.0.1-IF201504301522
  • 6.3.0.0-IF201504301455
  • 7.0.0.0-IF201504301556

Этот iFix предназначен только для:

  • вновь созданные приложения
  • приложения, которые удаляют и повторно генерируют свою родную папку

При использовании iFix эти приложения не будут иметь файл buildtime.sh в целевом файле конфигурация.

Существующие приложения должны просто удалить файл .sh из целевой конфигурации, как указано выше, а затем выполнить повторную сборку в Xcode.