W moim projekcie Xcode mam 4 różne schematy (prod, dev, inscenizacja, inscenizacja2), które zmieniają identyfikator pakietu aplikacji, która zostanie zainstalowana w telefonie. W ten sposób mogę mieć wszystkie 4 wersje zainstalowane obok siebie, podobne do this technique.Uzyskaj identyfikator pakietu od innego celu
Teraz buduję dziś rozszerzenie na iOS 8. Jest to nowy obiekt docelowy, który wymaga własnego identyfikatora pakietu.
Identyfikator pakietu rozszerzenia muszą być poprzedzone Dominującej Identyfikator pakietu aplikacji, czy jest ostrzeżenie rzucone:
error: Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.
Embedded Binary Bundle Identifier: com.company.app.TodayExtension
Parent App Bundle Identifier: com.company.app.staging
W tym przypadku wbudowania Binary Bundle Identyfikator musi być com.company.app.staging.TodayExtension
.
Czy istnieje sposób, w jaki mogę skonfigurować mój cel rozszerzenia Dzisiaj, aby ustawić identyfikator pakietu, najpierw sprawdzając identyfikator pakietu nadrzędnego celu? Być może poprzez niestandardową fazę tworzenia skryptów Run?
Czy możesz wyjaśnić bardziej szczegółowo, w jaki sposób rozwiązałeś ten problem? W odpowiedzi Jafara poniżej, czy byłeś w stanie ustawić PARENT_APP_BUNDLE_IDENTIFIER tylko przez zmianę schematów, a jeśli tak, to w jaki sposób? Lub w inny sposób co określiłeś dla identyfikatorów pakietów i PARENT_APP_BUNDLE_IDENTIFIER w każdym celu (w tym celu rozszerzenia)? Dzięki! – qix
W Ustawieniach projektu | Ustawienia kompilacji | Zdefiniowane przez użytkownika, utwórz nowy wpis o nazwie PARENT_APP_BUNDLE_ID. Mam 4 konfiguracje, dodaję wartość dla każdego (com.company.app.staging, com.company.app.de, itp.). W głównej aplikacji docelowej Info.plist ustaw identyfikator pakietu na $ (PARENT_APP_BUNDLE_ID). Na liście Info.plist rozszerzenia celu ustaw jego identyfikator pakietu na $ (PARENT_APP_BUNDLE_ID) .NameOfYourExtension. – djibouti33
Aha, całkowicie pominęło to, że robiłeś to przez dodatkowe niestandardowe konfiguracje kompilacji (Projekt | Info | Konfiguracje) i ustawianie różnej wartości PARENT_APP_BUNDLE_ID dla każdej konfiguracji na poziomie Projektu, zamiast tego myśląc, że w jakiś sposób zrobiłeś to przez przesłonięcie indywidualnych ustawień celu . Nadal możesz przełączać schematy tak, aby tworzyły różne identyfikatory pakietów, ponieważ każdy schemat używa innego zestawu konfiguracji kompilacji. Świetne, działa dla mnie i pomaga mi w oczyszczaniu zduplikowanych obiektów docelowych i plików plist! – qix