CocoaPods: pod install schlägt fehl

Beim Aufruf von „pod install“ erscheint folgende Fehlermeldung:

Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

Es handelt sich um einen Bug in libgit2 und dem Specs Repository. Als Workaround hilft das Löschen des Master Repos:

$ pod repo remove master
$ pod setup

Nach dem durchlaufen des Setup steht einem erneuten „pod install“ nichts mehr im Wege.

Developer Color Picker – Praktisches Tool für NSColor, UIColor und CGColorRef Farben

Das Library Plugin „Developer Color Picker“ klingt sich in den Standard OS X Color Picket ein und erweitert diesen. Die Installation ist sehr einfach. Das entpackte Paket wird in die Benutzer Library kopiert ( $ /Library/ColorPickers ) und danach müssen die Apps die den Picket verwenden neugestartet werden.

Wie auf dem Screenshot zu sehen, lässt sich aus den gepickten Farben schnell ein NSColor, UIColor oder CGColor Code Schnipsel erstellen:

 

[NSColor colorWithDeviceRed:0.953 green:0.553 blue:0.216 alpha:1.000];  // NSColor ohne Deklaration

NSColor *aColor = [NSColor colorWithDeviceRed:0.953 green:0.553 blue:0.216 alpha:1.000];  // NSColor mit Deklaration

 

[UIColor colorWithRed:0.953 green:0.553 blue:0.216 alpha:1.000];  // UIColor ohne Deklaration

UIColor *aColor = [UIColor colorWithRed:0.953 green:0.553 blue:0.216 alpha:1.000];  // UIColor mit Deklaration

 

CGColorCreateGenericRGB(0.953, 0.553, 0.216, 1.000);  // CGColor ohne Deklaration

CGColorRef aColor = CGColorCreateGenericRGB(0.953, 0.553, 0.216, 1.000);  // CGColor mit Deklaration

 

Developer Color Picker Plugin
Developer Color Picker Plugin
Veröffentlicht in Xcode

iOS 6.1 SDK in Xcode 5 verwenden.

Die Entwicklungsumgebung Xcode 5 wird exklusiv mit dem iOS 7.0 SDK (iPhoneOS7.0.sdk) zur Verfügung gestellt. Das bedeutet, dass alle zukünftigen Builds darauf basieren. Der App. Entwickler staunt nicht schlecht, wenn er seine iOS 6.1 App. das erste Mal mit Xcode 5 compiliert. Die neuen UI Elemente wie z.B. die einer UITableView oder einer UISegmentedControl sehen demnach ungewohnt aus und die App. wirkt wie ein iOS 6 & 7 Mixgetränk.

Soll dennoch ein App.-Update mit den alten UI Elementen in den App Store hochgeladen werden, so muss nicht zwangläufig eine Xcode 4.6.3 Version nachinstalliert werden. Es reicht das iOS 6.1 SDK (iPhoneOS6.1.sdk) aus dem alten Xcode 4 in das Xcode 5 Paket zu kopieren bzw. zu verlinken:

1.) Die bisherige Xcode 4.6.3 Version hier downloaden. Die dmg Datei mounten und die Xcode.app in einen temporären Ordner kopieren.

2.) Die Xcode.app in Xcode_4.6.3 umbenennen und in den regulären „Programme“ Order kopieren, so dass beide Xcode Versionen dort verfügbar sind:

Xcode 4.6.3 und Xcode 5 im Programme Order
Xcode 4.6.3 und Xcode 5 im Programme Order

 

3.) Das Terminal Programm aufrufen und mittels „cd“ in das aktuelle Xcode 5 Paket wechseln:

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

4.) Einen symbolischen Link – der auf das iOS 6.1 SDK verweist – erzeugen (Hinweis: Das Benutzer Passwort muss zur Bestätigung eingegeben werden).

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

 

Symbolischer Link zum iOS 6.1 SDK wurde erzeugt.
Symbolischer Link zum iOS 6.1 SDK wurde erzeugt.

 

5.) Xcode 5 starten und eine beliebige „iOS 7.0 unangepasste“ App öffnen. Dort in die Project Settings / Targets wechseln und im Reiter „Build Settings“ im Bereich „Architectures / Base SDK“ das jetzt verfügbare iOS 6.1 SDK auswählen.

Das Base SDK auf iOS 6.1 in den Project Targets Settings umstellen.
Das Base SDK auf iOS 6.1 in den Project Targets Settings umstellen.

6.) App wie gewohnt bauen und im iOS 7 Simulator testen. Das Resultat ist eine App. im gewohnten iOS 6.1 Gewand.

Veröffentlicht in Xcode

InfoPlist.strings couldn’t be opened because there is no such file.

Beim Kompilieren eines Xcode Projekts kann es vorkommen, dass Xcode den Vorgang mit folgenden Meldungen abbricht:

Copy .strings file Error
The file „InfoPlist.strings“ couldn’t be opened because there is no such file.

und / oder

Uncategorized
Interface Builder could not open the document „MasterViewController_iPhone.xib“ because it does not exist.

 

Fehlermeldung im Issue Navigator

 

Im Project Navigator sind diese Dateien zusätzlich rot markiert.

Dateien im Project Navigator

Das Problem tritt in der Regel nach dem Kopieren / Verschieben von Projekten auf. Das Resultat dieser Aktion ist dann, dass diese Dateien mit einem absoluten Pfaden in der Datei „projekt.pbxproj“ hinterlegt sind. Um diese Datei zu bearbeiten müssen wir zunächst die eigentliche Projektpaket mit einem Rechtsklick auf „Paketinhalt zeigen“ öffnen.

Projektinhalt anzeigen

Dort befindet sich die Datei „projekt.pbxproj“, die wir mit einem Textditor wie TextEdit öffnen.

Datei: projekt.pbxproj

In dieser Datei suchen nach der Zeichenkette

/* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de;

und finden dahinter den absoluten Pfad

path =“/Users/Steve/Dev/TestApp/TestApp/de.lproj/InfoPlist.strings“;

Diese verkürzen wir auf

path = de.lproj/InfoPlist.strings;

Die Anführungszeichen vom absoluten Pfad müssen auf jeden Fall mit entfernt werden! Zudem muss noch der sourceTree von

sourceTree = „“;

auf

sourceTree = „“;

geändert und gespeichert werden. Die korrigierte Zeile sollte jetzt so ausschauen:

/* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = „“; };

Diese Korrekturen müssen jetzt für alle weiteren Zeilen – die in dem Fehlerprotokoll des Issue Navigators standen –  vorgenommen werden. In meinem Beispiel zusätzlich noch für die Datei: MasterViewController_iPhone.xib. Nach Abschluss der Korrekturen lässt sich das Projekt wieder problemlos kompilieren und ausführen.

Xcode: View mit Hintergrundbild

Um die View mit einem Hintergrundbild zu versehen, verwenden wir in der Methode viewDidLoad folgenden Code:

self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@“myBackgroundImage.png“]];

Die Grafik myBackgroundImage.png muss nur noch per Drag&Drop in das Projekt eingefügt werden.

Xcode sauber deinstallieren

Manchmal sieht man den Wald vor lauter Bäumen nicht. Nach dem Testen der aktuellen Xcode 4.2 Developer Preview 7 brauchte ich einen sauberen Weg zurück zur offiziellen Xcode 4.1 Build 4B110 Version. Dazu starten wir das Terminal und geben folgende Zeile ein:

sudo /Developer/Library/uninstall-devtools –mode=all

Für die Deinstallation sind Superuser bzw.  Administrator Rechte notwendig. Daher der Aufruf mit sudo. Das einzugebende Passwort ist das des angemeldeten Benutzers. Sofern dieser über Admin-Rechte verfügt.

Xcode deinstallieren
Veröffentlicht in Xcode