Mit dem Umstieg von Xcode 6.2 auf Xcode 6.3 werden das aktuelle iOS SDK, sowie weitere Deploymenttools ausgeliefert. Wenn du ein historisch gewachsenes Projekt am Start hast, dann kann es bei dem Umstieg zu verschiedensten Problemen kommen:
Problem 1: Interface Builder Files (xib-Files)
„Could not load NIB in bundle“ war die Fehlermeldung, die ich nach der Umstellung auf Xcode 6.3 erhalten habe. Hat wohl was mit der aktuellen Version der integrierten „ibtool“ Bibliothek zu tun, war in diversen Einträgen zu lesen. Die dort geschilderten Lösungen trugen aber nicht zu Lösung meines Problems bei und waren auch teilweise nicht umsetzbar (da ich Size Classes in meinen XIB-Files verwende).
Abhilfe schaffte bei mi eine Einstellungsmöglichkeit in den betreffenden XIB-Files:
- betreffendes XIB-File öffnen
- im rechten Einstellungsfenster auf das erste Tab-Icon („Show the File Inspector“) klicken
- unter der Sektion „Interface Builder Document“ die Einstellungsmöglichkeit „Builds For“ auf „Project Deployment Target (8.0)“ abändern
- Projekt neubauen und starten
Damit musste ich auch keine Size-Classes deaktivieren und meine App stürzt an den entsprechenden Stellen auch nicht mehr ab.
Anscheinend gibt es auch noch ein Problem mit dem Tildezeichen in der Benamung der xib-Files. Deswegen am besten das Zeichen nicht mehr verwenden und stattdessen das Minus- oder den Unterstrich benutzen (das funktioniert jedenfalls bei mir)
Problem 2: „Embedded binary’s bundle identifier is not prefixed with the parent app’s bundle identifier“
Ich habe in meiner App eine Watch Kit App integriert, sowie unterschiedliche Deployments für Debug und Live. Zu diesem Zweck hatte ich für das Main-Target Custom Variablen angelegt. Bis Xcode 6.2 hat das Bauen auch super funktioniert, da man für die Watch Kit App einfach diese Custom Variable im „Bundle Indentifier“ weglassen konnte. Unter Xcode 6.2 hatte man nämlich keine Möglichkeit sie für das „WatchKit App“-Target über die Projekteinstellung zu setzen. Dies ist ab Xcode 6.3 nun möglich. Dort wurden die Einstellungen eben für dieses Target aufgebohrt und man kann nun Custom Variables eben für diesen Anwendungsfall setzen. Hat man dies getan, können diese Custom Variablen auch zur Generierung des Bundle Indentifiers genutzt werden.
Problem 3: WatchKit Code Signing Issues mit Xcode 6.3
Unter Xcode 6.3 gibt es durch die neuen Einstellungsmöglichkeiten für die WatchKit App nun Code Signing Issues beim Deployen. Possible Mobile beschreibt in einem ausführlichen Beitrag, wie man dieses Problem beheben kann.