|  | // Copyright 2015 The Bazel Authors. All rights reserved. | 
|  | // | 
|  | // 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. | 
|  | syntax = "proto2"; | 
|  |  | 
|  | package devtools.xcode; | 
|  | option java_outer_classname = "BundleMergeProtos"; | 
|  | option java_package = "com.google.devtools.build.xcode.bundlemerge.proto"; | 
|  |  | 
|  | // Contains all the arguments necessary to drive the BundleMerge tool, | 
|  | // including the path to the output file and extra files to include in the | 
|  | // bundle. | 
|  | // Next Id: 17 | 
|  | message Control { | 
|  | // Previously used fields. | 
|  | reserved 1, 3, 9, 11, 13; | 
|  |  | 
|  | // The single info.plist file to be bundled into the archive. This plist will | 
|  | // not be modified by bundlemerge. | 
|  | optional string bundle_info_plist_file = 16; | 
|  |  | 
|  | // Path to the .ipa file to write. This is the final application bundle. Note | 
|  | // this is ignored for nested bundles. | 
|  | optional string out_file = 2; | 
|  |  | 
|  | // One of the symbols in the com.google.devtools.build.xcode.common.Platform | 
|  | // (e.g. "DEVICE", "SIMULATOR"). | 
|  | optional string platform = 4; | 
|  |  | 
|  | // The version of the SDK used to build the app. | 
|  | optional string sdk_version = 5; | 
|  |  | 
|  | // Earliest iOS version on which the app will run. | 
|  | optional string minimum_os_version = 6; | 
|  |  | 
|  | // The directory inside which all files are placed in the final bundle. | 
|  | // For the top-most bundle, this is generally "Payload/{app_name}.app". If | 
|  | // this bundle is nested, then this bundle_root is relative to to the parent's | 
|  | // bundle_root. | 
|  | optional string bundle_root = 7; | 
|  |  | 
|  | // All files to put in the bundle besides automatically-generated files such | 
|  | // as Info.plist and PkgInfo. This should include the application binary. | 
|  | repeated BundleFile bundle_file = 8; | 
|  |  | 
|  | // Zip files to merge with the final zip. Note that bundle_root is ignored | 
|  | // when merging zips, so to place items in the bundle root, you should do one | 
|  | // of the following: | 
|  | // 1. make the merge_zips have entries that are named "{bundle_root}/foo" | 
|  | //    rather than just "foo" | 
|  | // 2. set the root property on the MergeZip protobuf to {bundle_root} | 
|  | // Note that the paths of these zips are always relative to the zip file root | 
|  | // - they are not relative to the containing bundle. | 
|  | repeated MergeZip merge_zip = 10; | 
|  |  | 
|  | // Bundles that are nested within this one. bundle_root in these bundles is | 
|  | // relative to the containing bundle's bundle_root. | 
|  | repeated Control nested_bundle = 12; | 
|  |  | 
|  | // A reverse-DNS string identifier for this bundle. | 
|  | optional string primary_bundle_identifier = 14; | 
|  |  | 
|  | // A fallback bundle identifier used when primary is not filled. | 
|  | optional string fallback_bundle_identifier = 15; | 
|  | } | 
|  |  | 
|  | // Represents a zip file to merge with the final zip. | 
|  | message MergeZip { | 
|  | // The prefix to prepend to every entry name before putting it in the final | 
|  | // zip. For instance, "Payload/Foo.app/" (notice the final slash). | 
|  | optional string entry_name_prefix = 1; | 
|  |  | 
|  | // The path to the source file to merge. | 
|  | optional string source_path = 2; | 
|  | } | 
|  |  | 
|  | message BundleFile { | 
|  | // The path of the file to put in the bundle. | 
|  | optional string source_file = 1; | 
|  |  | 
|  | // The path of the file in the bundle, relative to the bundle root. | 
|  | optional string bundle_path = 2; | 
|  |  | 
|  | // The external file attribute field in the central directory record in the | 
|  | // .zip file. If omitted, the ZipInputEntry.DEFAULT_EXTERNAL_FILE_ATTRIBUTE | 
|  | // constant is used. | 
|  | optional int32 external_file_attribute = 3; | 
|  | } |