2015-04-15 4 views
1

Я использую пользовательские настройки (например, CustomAppBundleId), чтобы изменить идентификатор пакета для разных конфигураций. В файле plist приложения я установил CFBundleIdentifier в ${CustomAppBundleId}. Для конфигурации Release Я использую пакет:Пользовательские настройки для WatchKit

com.yourcompany.${PRODUCT_NAME:rfc1034identifier} 

и AdHoc я использую:

com.yourcompany.adhoc.${PRODUCT_NAME:rfc1034identifier} 

Теперь я добавил WatchKit расширение и WatchKit App. Для идентификатора пакета LookKit Extension я могу использовать тот же подход. Я также должен изменить WKAppBundleIdentifier, чтобы соответствовать идентификатору пакета в приложении WatchKit. Опять же, я мог бы использовать пользовательские настройки. Теперь последний бит - приложение WatchKit. К сожалению, приложение WatchKit не имеет возможности добавлять пользовательские настройки, но мне нужно установить правильные значения для CFBundleIdentifier и WKCompanionAppBundleIdentifier (что равно CustomAppBundleId в приложении). Могу ли я это сделать? Или я должен использовать другой подход?

ответ

2

Определите свои «Пользовательские» переменные в настройках сборки проекта, а не в целевых. Таким образом, вы будете иметь одинаковые пользовательские переменные, автоматически доступные (унаследованные) в WatchKit Extension и App target.


Btw убедитесь, что у вас есть последний Xcode 6.3 из App Store. Эта версия (и последняя Xcode 6.3 beta 4) уже позволяет вам определять пользовательские «User-Defined» в настройках сборки).

Предыдущие версии были просто отсутствуют «Build Settings» на вкладке в выходные WatchKit App, но если вы достаточно смелы, вы могли бы изменить их вручную в текстовом редакторе :-)

0

Обновление до Xcode 6.3.

В 6.3 у вас будут дополнительные вкладки для целевой конфигурации, которые должны обеспечить то, что вам нужно.

Но я почти уверен, что вы столкнетесь с проблемами с помощью раскадровки приложений WatchKit.
В Scenes > Identity Inspector > Custom Class вы должны установить правильный модуль - это не возможно, если у вас есть более чем на 1 (если не больше, чем один я был бы более чем заинтересованы в вашей установке)

Я решил эту проблему с сценарием предварительного действия, который обновляет XML раскадровки соответственно

Смежные вопросы