Несколько приложений, построенных с одним и тем же исходным кодом с использованием xcconfig, не запускаются на устройстве / симуляторе - PullRequest
0 голосов
/ 10 июля 2020

Мы создаем и архивируем три разных приложения с одинаковым исходным кодом, используя xcconfig

Вот идентификаторы пакетов моих трех приложений.

com.mycompany.myapp.abc
com.mycompany.myapp.def
com.mycompany.myapp.xyz

Содержимое AB C .xcconfig

APP_BUNDLE_IDENTIFIER = com.mycompany.myapp.abc
IS_PROVISIONING_PROFILE_SPECIFIER = ABC Development
SIGNING_CERTIFICATE = Apple Development: XXXX XXXX (xxxxxxxxxx)
DEVELOPMENT_TEAM = XXXXXXXXXX
IS_APP_NAME = ABC

Содержимое DEF.xcconfig

APP_BUNDLE_IDENTIFIER = com.mycompany.myapp.def
IS_PROVISIONING_PROFILE_SPECIFIER = DEF Development
SIGNING_CERTIFICATE = Apple Development: XXXX XXXX (xxxxxxxxxx)
DEVELOPMENT_TEAM = XXXXXXXXXX
IS_APP_NAME = DEF

Содержимое XYZ.xcconfig

APP_BUNDLE_IDENTIFIER = com.mycompany.myapp.xyz
IS_PROVISIONING_PROFILE_SPECIFIER = XYZ Development
SIGNING_CERTIFICATE = Apple Development: XXXX XXXX (xxxxxxxxxx)
DEVELOPMENT_TEAM = XXXXXXXXXX
IS_APP_NAME = XYZ

Содержание основного Config.xcconfig

#include "DEF.xcconfig"

APP_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER)
IS_PROVISIONING_PROFILE_SPECIFIER = $(IS_PROVISIONING_PROFILE_SPECIFIER)
SIGNING_CERTIFICATE = $(SIGNING_CERTIFICATE)
DEVELOPMENT_TEAM = $(DEVELOPMENT_TEAM)
IS_APP_NAME = $(IS_APP_NAME)

Мы также установили соответствующие переменные в настройках сборки в цели и проекте.

Мы меняем Оператор include в Config.xcconfig с использованием сценария для создания и архивирования одного из трех приложений в Xcode Server сценарий предварительной интеграции бота

Он правильно архивирует и экспортирует ipa - абсолютно нормально .

Но, когда мы меняем конфигурацию, вручную изменяя оператор include в файле Config.xcconfig и запускаем его на устройстве или симуляторе, мы получаем следующую ошибку (Архивирование и экспорт ipa все еще работает абсолютно фи ne).

Также см. название продукта исчезает в навигаторе проекта, обведенном желтым кружком

enter image description here

When I clicked on Details button I get following details:

Details
Cannot launch simulated executable: no file found at 
/Users/myusername/Library/Developer/Xcode/DerivedData/xcodeserver_demo-eioiikwpjtixmdhjnzoorrphegcs/Build/Products/Debug-iphonesimulator/.app
Domain: IDEFoundationErrorDomain
Code: 1

But the file DEF.app present in /Users/myusername/Library/Developer/Xcode/DerivedData/xcodeserver_demo-eioiikwpjtixmdhjnzoorrphegcs/Build/Products/Debug-iphonesimulator/

On the other end, when we explicitly specify which config (e.g DEF.xcconfig) to use in project settings instead of directly editing include statement in Config.xcconfig it works (Run on device, archiving and exporting ipa)

введите описание изображения здесь

Мы пытались установить свойство EXECUTABLE_NAME в списке, но это не сработало.

Кто-нибудь может помочь?

...