New issue
Advanced search Search tips

Issue 600491 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Bug



Sign in to add a comment

GN: support code signing and validate device builds

Project Member Reported by sdefresne@chromium.org, Apr 4 2016

Issue description

Code signing is required on iOS for device builds.
 
Labels: Build-Tools-GN
Cc: sdefresne@chromium.org
 Issue 603130  has been merged into this issue.
Cc: -sdefresne@chromium.org
Status: Started (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/14ddbb64afb087115791aeb2237dc880eac6de12

commit 14ddbb64afb087115791aeb2237dc880eac6de12
Author: sdefresne <sdefresne@chromium.org>
Date: Tue Jun 14 18:33:33 2016

[GN] Add support for code signing to "create_bundle" targets.

To be able to run iOS application on device, they have to be code signed.
The code signature needs all the files to have been copied in the bundle
(as it embeds a manifest) and embeds the signature in the binary. This
prevents running the code signature as a separate action (as it either
run before the file have been copied into the bundle, or it modify the
output of another target).

This CL adds support for running a script to perform the code signing as
the last step of creating the application bundle. If a script is defined,
it is run after all files have been copied into the bundle. The script can
add new file in the bundle but must not modify any file already there (on
iOS this means that the script will copy the binary into the bundle).

While adding support for code signing, found and fixed an issue where the
input dependencies of the create_bundle targets was incorrect (files that
are not generated were not listed as inputs).

BUG= 600491 

Review-Url: https://codereview.chromium.org/2060273002
Cr-Commit-Position: refs/heads/master@{#399755}

[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/bundle_data.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/bundle_data.h
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/command_desc.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/create_bundle_target_generator.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/create_bundle_target_generator.h
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/docs/reference.md
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/functions_target.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/ninja_create_bundle_target_writer.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/ninja_create_bundle_target_writer.h
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/ninja_create_bundle_target_writer_unittest.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/variables.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/variables.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/14ddbb64afb087115791aeb2237dc880eac6de12

commit 14ddbb64afb087115791aeb2237dc880eac6de12
Author: sdefresne <sdefresne@chromium.org>
Date: Tue Jun 14 18:33:33 2016

[GN] Add support for code signing to "create_bundle" targets.

To be able to run iOS application on device, they have to be code signed.
The code signature needs all the files to have been copied in the bundle
(as it embeds a manifest) and embeds the signature in the binary. This
prevents running the code signature as a separate action (as it either
run before the file have been copied into the bundle, or it modify the
output of another target).

This CL adds support for running a script to perform the code signing as
the last step of creating the application bundle. If a script is defined,
it is run after all files have been copied into the bundle. The script can
add new file in the bundle but must not modify any file already there (on
iOS this means that the script will copy the binary into the bundle).

While adding support for code signing, found and fixed an issue where the
input dependencies of the create_bundle targets was incorrect (files that
are not generated were not listed as inputs).

BUG= 600491 

Review-Url: https://codereview.chromium.org/2060273002
Cr-Commit-Position: refs/heads/master@{#399755}

[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/bundle_data.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/bundle_data.h
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/command_desc.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/create_bundle_target_generator.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/create_bundle_target_generator.h
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/docs/reference.md
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/functions_target.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/ninja_create_bundle_target_writer.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/ninja_create_bundle_target_writer.h
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/ninja_create_bundle_target_writer_unittest.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/variables.cc
[modify] https://crrev.com/14ddbb64afb087115791aeb2237dc880eac6de12/tools/gn/variables.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 16 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eecfedb63ad99ea127fd51bebf2c1b1e2e7785a0

commit eecfedb63ad99ea127fd51bebf2c1b1e2e7785a0
Author: sdefresne <sdefresne@chromium.org>
Date: Thu Jun 16 19:30:13 2016

[iOS/GN] Add code signing rules to ios_app_bundle target.

Add a new script build/config/ios/codesign.py that copy the application
binary into the application bundle and code sign it.

Call the script from the ios_app_bundle target when ios_enable_code_signing
is true (default when targetting a device build) and remove some unused
variables (the code signing identity is generally set for the whole build).

BUG= 600491 

Review-Url: https://codereview.chromium.org/2060943002
Cr-Commit-Position: refs/heads/master@{#400229}

[add] https://crrev.com/eecfedb63ad99ea127fd51bebf2c1b1e2e7785a0/build/config/ios/codesign.py
[modify] https://crrev.com/eecfedb63ad99ea127fd51bebf2c1b1e2e7785a0/build/config/ios/rules.gni
[modify] https://crrev.com/eecfedb63ad99ea127fd51bebf2c1b1e2e7785a0/ios/web/shell/BUILD.gn
[modify] https://crrev.com/eecfedb63ad99ea127fd51bebf2c1b1e2e7785a0/testing/test.gni

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 16 2016

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/c7ef0ce063d1f84ba5d55489976e32c7b36566e8

commit c7ef0ce063d1f84ba5d55489976e32c7b36566e8
Author: sdefresne <sdefresne@google.com>
Date: Thu Jun 16 22:00:22 2016

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 17 2016

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/5d1436a42c5ca33c42d58c32e7c81ca7bd853743

commit 5d1436a42c5ca33c42d58c32e7c81ca7bd853743
Author: sdefresne <sdefresne@google.com>
Date: Fri Jun 17 13:23:54 2016

Status: Fixed (was: Started)

Sign in to add a comment