| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import argparse | 5 import argparse |
| 6 import fnmatch | 6 import fnmatch |
| 7 import glob | 7 import glob |
| 8 import os | 8 import os |
| 9 import plistlib | 9 import plistlib |
| 10 import shutil | 10 import shutil |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 help='identity to use to codesign') | 261 help='identity to use to codesign') |
| 262 parser.add_argument( | 262 parser.add_argument( |
| 263 '--binary', '-b', required=True, | 263 '--binary', '-b', required=True, |
| 264 help='path to the iOS bundle binary') | 264 help='path to the iOS bundle binary') |
| 265 parser.add_argument( | 265 parser.add_argument( |
| 266 '--framework', '-F', action='append', default=[], dest='frameworks', | 266 '--framework', '-F', action='append', default=[], dest='frameworks', |
| 267 help='install and resign system framework') | 267 help='install and resign system framework') |
| 268 parser.add_argument( | 268 parser.add_argument( |
| 269 '--disable-code-signature', action='store_false', dest='sign', | 269 '--disable-code-signature', action='store_false', dest='sign', |
| 270 help='disable code signature') | 270 help='disable code signature') |
| 271 parser.add_argument( |
| 272 '--platform', '-t', required=True, |
| 273 help='platform the signed bundle is targetting') |
| 271 parser.set_defaults(sign=True) | 274 parser.set_defaults(sign=True) |
| 272 | 275 |
| 273 @staticmethod | 276 @staticmethod |
| 274 def _Execute(args): | 277 def _Execute(args): |
| 275 if not args.identity: | 278 if not args.identity: |
| 276 args.identity = '-' | 279 args.identity = '-' |
| 277 | 280 |
| 278 bundle = Bundle(args.path) | 281 bundle = Bundle(args.path) |
| 279 | 282 |
| 280 # Find mobile provisioning profile and embeds it into the bundle (if a code | 283 # Find mobile provisioning profile and embeds it into the bundle (if a code |
| 281 # signing identify has been provided, fails if no valid mobile provisioning | 284 # signing identify has been provided, fails if no valid mobile provisioning |
| 282 # is found). | 285 # is found). |
| 283 provisioning_profile_required = args.identity != '-' | 286 provisioning_profile_required = args.identity != '-' |
| 284 provisioning_profile = FindProvisioningProfile( | 287 provisioning_profile = FindProvisioningProfile( |
| 285 bundle.identifier, provisioning_profile_required) | 288 bundle.identifier, provisioning_profile_required) |
| 286 if provisioning_profile: | 289 if provisioning_profile and args.platform != 'iphonesimulator': |
| 287 provisioning_profile.Install(bundle) | 290 provisioning_profile.Install(bundle) |
| 288 | 291 |
| 289 # Delete existing code signature. | 292 # Delete existing code signature. |
| 290 signature_file = os.path.join(args.path, '_CodeSignature', 'CodeResources') | 293 signature_file = os.path.join(args.path, '_CodeSignature', 'CodeResources') |
| 291 if os.path.isfile(signature_file): | 294 if os.path.isfile(signature_file): |
| 292 os.unlink(signature_file) | 295 os.unlink(signature_file) |
| 293 | 296 |
| 294 # Install system frameworks if requested. | 297 # Install system frameworks if requested. |
| 295 for framework_path in args.frameworks: | 298 for framework_path in args.frameworks: |
| 296 InstallSystemFramework(framework_path, args.path, args) | 299 InstallSystemFramework(framework_path, args.path, args) |
| 297 | 300 |
| 298 # Copy main binary into bundle. | 301 # Copy main binary into bundle. |
| 299 if os.path.isfile(bundle.binary_path): | 302 if os.path.isfile(bundle.binary_path): |
| 300 os.unlink(bundle.binary_path) | 303 os.unlink(bundle.binary_path) |
| 301 shutil.copy(args.binary, bundle.binary_path) | 304 shutil.copy(args.binary, bundle.binary_path) |
| 302 | 305 |
| 303 if not args.sign: | 306 if not args.sign: |
| 304 return | 307 return |
| 305 | 308 |
| 306 # Embeds entitlements into the code signature (if code signing identify has | 309 # Embeds entitlements into the code signature (if code signing identify has |
| 307 # been provided). | 310 # been provided). |
| 308 codesign_extra_args = [] | 311 codesign_extra_args = [] |
| 309 if provisioning_profile: | 312 if provisioning_profile and args.platform != 'iphonesimulator': |
| 310 temporary_entitlements_file = tempfile.NamedTemporaryFile(suffix='.xcent') | 313 temporary_entitlements_file = tempfile.NamedTemporaryFile(suffix='.xcent') |
| 311 codesign_extra_args.extend( | 314 codesign_extra_args.extend( |
| 312 ['--entitlements', temporary_entitlements_file.name]) | 315 ['--entitlements', temporary_entitlements_file.name]) |
| 313 | 316 |
| 314 entitlements = GenerateEntitlements( | 317 entitlements = GenerateEntitlements( |
| 315 args.entitlements_path, provisioning_profile, bundle.identifier) | 318 args.entitlements_path, provisioning_profile, bundle.identifier) |
| 316 entitlements.WriteTo(temporary_entitlements_file.name) | 319 entitlements.WriteTo(temporary_entitlements_file.name) |
| 317 | 320 |
| 318 CodeSignBundle(bundle.path, args.identity, codesign_extra_args) | 321 CodeSignBundle(bundle.path, args.identity, codesign_extra_args) |
| 319 | 322 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 | 355 |
| 353 for action in [ CodeSignBundleAction, GenerateEntitlementsAction ]: | 356 for action in [ CodeSignBundleAction, GenerateEntitlementsAction ]: |
| 354 action.Register(subparsers) | 357 action.Register(subparsers) |
| 355 | 358 |
| 356 args = parser.parse_args() | 359 args = parser.parse_args() |
| 357 args.func(args) | 360 args.func(args) |
| 358 | 361 |
| 359 | 362 |
| 360 if __name__ == '__main__': | 363 if __name__ == '__main__': |
| 361 sys.exit(Main()) | 364 sys.exit(Main()) |
| OLD | NEW |