@truebit truebit released this Apr 7, 2016 · 7 commits to master since this release

Assets 2

Fixed bugs and new features:

  • #25 adding warning output to ask for removing reduntant sections manually; before only the line with unused uuid would be removed, that will make project file cannot open.
  • #28 add Python 3 compatibility

Thanks @heni for the python3 support contribution

@truebit truebit released this Sep 6, 2015 · 22 commits to master since this release

Assets 2

Now you can use xUnique in terminal directly like xunique -h, no more python prefixes.

Fixed bugs and new features:

  • #21 add command line script in PATH, so you can use xunique as a common command in terminal.
  • #19 add advices for Cocoapods users
  • #22 fixes typos in README
  • #22 fixes pep8 style issues in xUnique

Thanks @schwa for the contributions in #21 #22
Thanks @Julyyq for the suggestions in #19

Assets 2

fixes #18: make CopyFiles and ShellScript build phase more unique

@truebit truebit released this Jan 16, 2015 · 34 commits to master since this release

Assets 2

Change the way of generating MD5:
This will make all MD5 in your project file change! so if you collaborate with others in vcs, make sure that you all update to 4.1.0 via pip install --upgrade xUnique

Fixed bugs and new features:

  • add more versbose output in -v mode
  • refactored MD5 generating rule, changed path generating method: now it is surrounded with an isa type and []

@truebit truebit released this Nov 26, 2014 · 36 commits to master since this release

Assets 2

Now I have uploaded xUnique to PyPI.
You can install it with one command: pip install xUnique, and then use it via python2 -mxUnique [options] path_to_xcodeproj/or_pbxproj

Fixed bugs and new features:

  • find one missing isa type: PBXBuildRule and add support for it
  • remove unused children in reference and group type
  • print out removed lines when uniquifying and sorting
  • change README format to reStructedText
  • add support for PyPi
    and I have already uploaded this new version to PyPI

@truebit truebit released this Sep 6, 2014 · 48 commits to master since this release

Assets 2

This is the first production release that can be used in production environment.
This version is now used in ongoing Taobao Trip v5 version of Alibaba Trip BU . The project consists of ~25 Xcode sub-projects. And now xUnique works like a charm in the whole project.
Cheers to all the developers in Alibaba Trip iOS Developer team to gave suggestions and send bugged project file to help improving xUnique.

New features

  • Two new argument options:
    • add -c option: When project file was modified, xUnique quit with non-zero status. Without this option, the status code would be zero if so. This option is usually used in Git hook to submit xUnique result combined with your original new commit.
    • add -p option: Sort PBXFileReference and PBXBuildFile sections in project file ordered by file names. before v4.0.0,it was default in -s option and cannot be turned off. Now, without this option, xUnique will sort these two types by MD5 digests, the same as Xcode does.
  • New features:
    • now xUnique will also remove duplicate items in PBXBuildFile, PBXFileReference, children and files
    • colorful xUnique output:
      • RED: fatal error
      • YELLOW: warning
      • GREEN: pass
    • add more output when xUnique modified project file
    • rewrote how to use section in README: now added a recommended method to use xUnique, with a gif animation demo.
  • Bug fix:
    • Fix bug #2
    • Fix bug #3
    • Fix bug #4
    • Fix bug #5
    • Fix bug #6
    • Fix bug #7
    • Fix bug #8
    • Fix bug #9
    • Fix bug #10
    • Fix bug #11
    • As Mac OS X is only case preserving, now use PBXProject name found in project file as the root node path. Do not use xcodeproj name from file path any more.

@truebit truebit released this Aug 18, 2014 · 88 commits to master since this release

Assets 2
  • As I reveiced an one-time, non-reproducible bug, that the root node path (xcodeproj dir name) was not correct; now I got the root node path found from pbxproj file instead of path name of xcodeproj dir.
    • It is backward compatible that there is a suffix .xcodeproj added to the found PBXProject name.
  • Other polishings:
    • corrected wrong pre-push hook script in README
    • add two new supported types in README, xUnique could handle them without new code
    • add more verbose output and xUnique would generate a result json file in verbose mode (using -v)
    • make path name clear in source code

@truebit truebit released this Aug 6, 2014 · 93 commits to master since this release

Assets 2

Refactored code, new features below:

  • now support separately execute part of xUnique functions by using different options in arguments:
    • unique the project file, a.k.a convert UUID to MD5 digest
    • sort the project file, no matter the project is original UUID type or uniquified type by xUnique
  • added verbose print switch, default is off. turn it on by add -v in arguments

See README file for more details


@truebit truebit released this Aug 4, 2014 · 97 commits to master since this release

Assets 2
  • Fix UnicodeDecodeError: 'ascii' codec can't decode byte error
  • add more check on input encoding

@truebit truebit released this Aug 3, 2014 · 100 commits to master since this release

Assets 2


  • Using pure Python to sort project file, removed nasty perl script download/execute process. This sort function is similar with sort-Xcode-Project-file with two new features:
    • support to sort PBXFileReference and PBXBuildFile section
    • avoid create new project file if no changes made, makes the Git/SVN hook more quiet