All Projects → Karumi → Kin

Karumi / Kin

Licence: apache-2.0
Simple PBXProj Verifier

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Kin

Lldebugtool
LLDebugTool is a debugging tool for developers and testers that can help you analyze and manipulate data in non-xcode situations.
Stars: ✭ 673 (+1.97%)
Mutual labels:  xcode, tool
Lldebugtoolswift
LLDebugTool is a debugging tool for developers and testers that can help you analyze and manipulate data in non-xcode situations.
Stars: ✭ 40 (-93.94%)
Mutual labels:  xcode, tool
Fbsnapshotsviewer
A mac os application that shows the failing snapshot tests from FBSnapshotTestCase
Stars: ✭ 221 (-66.52%)
Mutual labels:  xcode, tool
Flightanimator
Advanced Natural Motion Animations, Simple Blocks Based Syntax
Stars: ✭ 588 (-10.91%)
Mutual labels:  xcode
Imnodes
A small, dependency-free node editor for dear imgui
Stars: ✭ 591 (-10.45%)
Mutual labels:  tool
Pasteex
📋 Paste As File 把剪贴板的内容直接粘贴为文件
Stars: ✭ 634 (-3.94%)
Mutual labels:  tool
Xcodes
The best command-line tool to install and switch between multiple versions of Xcode.
Stars: ✭ 653 (-1.06%)
Mutual labels:  xcode
Monkeydev
CaptainHook Tweak、Logos Tweak and Command-line Tool、Patch iOS Apps, Without Jailbreak.
Stars: ✭ 5,492 (+732.12%)
Mutual labels:  xcode
Capslock Plus
An efficiency tool that provides various functions by enhancing the Caps Lock key into a modifier key.
Stars: ✭ 650 (-1.52%)
Mutual labels:  tool
React Native Inappbrowser
📱InAppBrowser for React Native (Android & iOS) 🤘
Stars: ✭ 624 (-5.45%)
Mutual labels:  xcode
Search Deflector
A small program that forwards searches from Cortana to your preferred browser and search engine.
Stars: ✭ 620 (-6.06%)
Mutual labels:  tool
Windows Kernel Exploits
windows-kernel-exploits Windows平台提权漏洞集合
Stars: ✭ 5,963 (+803.48%)
Mutual labels:  tool
Xcdiff
A tool which helps you diff xcodeproj files.
Stars: ✭ 641 (-2.88%)
Mutual labels:  xcode
Badgehub
A way to quickly add a notification badge icon to any view. Make any view of a full-fledged animated notification center.
Stars: ✭ 592 (-10.3%)
Mutual labels:  xcode
Awesome Swift Korean Lecture
훌륭한 Swift 세션 동영상(강좌), 한글 자막있는 혹은 한국어 강의 정보 링크 모음 (Awesome Swift Korean lecture information)
Stars: ✭ 649 (-1.67%)
Mutual labels:  xcode
Xspear
Powerfull XSS Scanning and Parameter analysis tool&gem
Stars: ✭ 583 (-11.67%)
Mutual labels:  tool
Imogen
GPU Texture Generator
Stars: ✭ 648 (-1.82%)
Mutual labels:  tool
Learningmasteringalgorithms C
Mastering Algorithms with C 《算法精解:C语言描述》源码及Xcode工程、Linux工程
Stars: ✭ 615 (-6.82%)
Mutual labels:  xcode
Seqkit
A cross-platform and ultrafast toolkit for FASTA/Q file manipulation in Golang
Stars: ✭ 607 (-8.03%)
Mutual labels:  tool
Pdfgenerator
A simple generator of PDF written in Swift.
Stars: ✭ 629 (-4.7%)
Mutual labels:  tool

logo

Kin Build Status

Kin is a minimalistic tool to check whether your project.pbxproj file is correct.

What does it do?

Have you ever found yourself undoing a merge due to a broken Xcode build? Then Kin is your tool. It will parse your project configuration file and detect errors.

How does it work?

Kin is just a syntax checker built with ANTLR 4 with a very thin layer to be usable from command line. On the fly syntax checking integration for text editors and IDEs is a work in progress (see the "Text editor/IDE integration" section below).

Usage

Install Kin with your favorite python package manager.

Using pip

pip install kin

Using easy_install

easy_install kin

Once installed, use Kin from your Xcode project directory. Kin will automatically detect where your project configuration is located and check whether it is correct.

$> kin
CORRECT

If there is an error in your configuration file, Kin will return the offending line and a short description of the problem found.

$> kin
ERROR: line 400:3 mismatched input ')' expecting 'inputPaths'

Optionally, you can provide the location of your project.pbxproj to Kin:

$> kin myProject/myProject.xcodeproj/project.pbxproj
CORRECT

Text editor/IDE integration

The following text editor and IDE integration packages are available:

Emacs

Do you want to contribute?

Feel free to add any useful feature to Kin, we will be glad to improve it with your help.

If you modify the grammar file (PBXProj.g4), make sure you compile it using ANTLR. ANLTR version 4.6 can be installed with the following commands (the current version is 4.8 but is not compatible):

curl -O https://raw.githubusercontent.com/Homebrew/homebrew-core/92cd4dbae4ae77853e3693b4eb3c24d71855103f/Formula/antlr.rb
sed -i -e 's/EOS.undent/EOS/g' antlr.rb
brew install antlr.rb

After changes have been made to the PBXProj.g4 file it can be compiled with:

cd kin/grammar
bash /usr/local/Cellar/antlr/4.6/bin/antlr4 PBXProj.g4 -Dlanguage=Python2

The updated files can optionally be copied with this command for testing:

cp * path/to/site-packages/kin/grammar/

Only the PBXProj.g4 file needs to be committed, GitHub Actions will produce the compiled grammar files.

To run tests, first install the current version of kin by running pip install .. Then you can execute ./tests/tester.py to run all the scenarios we created.

License

Copyright 2016 Karumi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].