Добавить значение в массив Info.plist после сборки (но перед установкой) - PullRequest
0 голосов
/ 14 мая 2019

У меня есть проект Xcode, который встраивается в несколько разных приложений (whitelabels) с использованием разных конфигураций. Для нового способа оплаты мне нужно, чтобы каждое приложение имело уникальный CFBundleURLScheme.

Я написал следующий «Run Script», который является до Compile Sources в «Этапы сборки».

INFO_PLIST="${PROJECT_DIR}/${INFOPLIST_FILE}"
plutil -insert CFBundleURLTypes.0.CFBundleURLSchemes.0 -string "swish${PRODUCT_BUNDLE_IDENTIFIER//.}" $INFO_PLIST

Это добавляет значение swishourbundleidentifier. (Итак, swish + our.bundle.identifier, но без точек)

В настоящее время изменяется фактический список Info.plist. Я хочу, чтобы он изменял Info.plist, который находится в папке, в которую собирается приложение, так, чтобы он каждый раз перезаписывался (чтобы не было двойных значений), и чтобы добавленное значение не отображалось в git.

Как мне поступить? Я думаю, это просто меняется "${PROJECT_DIR}/${INFOPLIST_FILE}", но на что?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

РЕДАКТИРОВАТЬ: На самом деле, если это возможно, лучшим решением было бы добавить что-то вроде swish${PRODUCT_BUNDLE_IDENTIFIER//.} в схемы URL Info.plist. Так что это скомпилировано с этим во время сборки, но без двойных значений. Я попробовал это, но, к сожалению, это не сработало.

Ответы [ 2 ]

1 голос
/ 14 мая 2019

Вы можете получить доступ к каталогу сборки с помощью

$CONFIGURATION_BUILD_DIR/$CONTENTS_FOLDER_PATH

Ссылка: https://help.apple.com/xcode/mac/10.2/#/itcaec37c2a6

1 голос
/ 14 мая 2019

Комплект приложений доступен только для чтения. Info.plist в комплекте приложений

...