Project

iarrogant

0.0
No commit activity in last 3 years
No release in over 3 years
iArrogant is a command line tool that converts a XML style plist .entitlements file into the proper XML style plist .xcent used by codesign; purpose built for our testing CI system @Fittr.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
~> 10.3
~> 3.2

Runtime

~> 3.1
~> 0.19
 Project Readme

iArrogant: Convert .entitlements into codesignable entitlements

Gem Version Build Status Bitdeli Badge License

What is this?

iArrogant is a command line tool that converts a XML style plist .entitlements file into the proper XML style plist .xcent used by codesign; purpose built for our testing CI system @Fittr.

Before you run your entitlements through iarrogant, it may look like this

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.developer.healthkit</key>
	<true/>
</dict>
</plist>

After running through iarrogant and passing in the bundle id of com.myapp and team identifier of ZMEAK3CXPR

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>application-identifier</key>
	<string>ZMEAK3CXPR.com.myapp</string>
	<key>aps-environment</key>
	<string>production</string>
	<key>com.apple.developer.healthkit</key>
	<true/>
	<key>com.apple.developer.team-identifier</key>
	<string>ZMEAK3CXPR</string>
	<key>get-task-allow</key>
	<false/>
</dict>
</plist>

Requirements

  • iOS 7.0+ / Mac OS X 10.9+ (Untested)
  • Xcode 6.1
  • Ruby 2.1 or Higher

Communication

  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Installation

Run sudo gem install iarrogant


Usage

#entitlement_file_path - The user created .entitlements file, usually has a few items put in automatically by capabilities in XCode
#team_identifier - The typically 10 capitalized alpha-numeric team identifier, e.g. LOETE2NOBU
#bundle_id - Your apps bundle id given in Xcode e.g. (com.awesome_app)
#aps_environment - Usually set to 'production'
#output_xcent_file - The output file location to save the generated entities
(sh)>iarrogant <entitlement file path> <team identifier> <bundle id> <aps environment> <output_xcent_file>

Convert an entitlement file

(sh)>iarrogant MyApp.entitlements ABCDEFG com.my_app production MyApp.xcent

Now you can sucessfully codesign

#Codesign your .app
(sh)>codesign --force --sign <SIGNING_IDENTITY (e.g. dev certificate SHA1)> --entitlements MyApp.xcent MyApp.app

#View the embedded signed entitlements
(sh)>codesign -d --entitlements - MyApp.app

FAQ

When should I use iarrogant?

When you're putting a build server togeather for CI and need to alter the provisioning profile with an adhoc distribution. Codesign will require a copy of the original xcent entitlements which is a modified version of the entitlements file. iarrogant will produce the correct xcent file for codesign

Wait, can't I just use the regular .xcent file during the build and then sign the provisioning profile?

This may work sometimes. However, many times XCode inserts other keys, e.g. beta-test that will be incompatible across builds.

What's Fittr?

Fittr is a SaaS company that focuses on providing personalized workouts and health information to individuals and corporations through phenomenal interfaces and algorithmic data-collection and processing.


Creator

License

iarrogant is released under the MIT license. See LICENSE for details.