``` $ rcodesign debug-create-macho MyApp.app/Contents/MacOS/MyApp assuming default minimum version 11.0.0 writing Mach-O to MyApp.app/Contents/MacOS/MyApp $ rcodesign debug-create-info-plist --bundle-name MyApp MyApp.app/Contents/Info.plist writing MyApp.app/Contents/Info.plist $ mkdir -p MyApp.app/Contents/Resources $ touch MyApp.app/Contents/Resources/AppIcon.icns $ rcodesign debug-create-macho --file-type dylib MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle assuming default minimum version 11.0.0 writing Mach-O to MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle $ rcodesign debug-create-info-plist --bundle-name Sparkle MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist writing MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist $ mkdir -p MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Headers $ mkdir -p MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Modules $ mkdir -p MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/PrivateHeaders $ mkdir -p MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj $ touch MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Headers/Sparkle.h $ touch MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Modules/module.modulemap $ touch MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/DarkAqua.css $ touch MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings $ rcodesign debug-create-macho MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate assuming default minimum version 11.0.0 writing Mach-O to MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate $ rcodesign debug-create-info-plist --bundle-name Autoupdate MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist writing MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist $ mkdir -p MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj $ touch MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings $ ln -s A MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/Current $ ln -s Versions/Current/Headers MyApp.app/Contents/Frameworks/Sparkle.framework/Headers $ ln -s Versions/Current/Modules MyApp.app/Contents/Frameworks/Sparkle.framework/Modules $ ln -s Versions/Current/PrivateHeaders MyApp.app/Contents/Frameworks/Sparkle.framework/PrivateHeaders $ ln -s Versions/Current/Resources MyApp.app/Contents/Frameworks/Sparkle.framework/Resources $ ln -s Versions/Current/Sparkle MyApp.app/Contents/Frameworks/Sparkle.framework/Sparkle $ rcodesign sign MyApp.app MyApp.app.signed signing MyApp.app to MyApp.app.signed signing bundle at MyApp.app signing 3 nested bundles in the following order: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app Contents/Frameworks/Sparkle.framework/Versions/A Contents/Frameworks/Sparkle.framework entering nested bundle Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app signing bundle at MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app into MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app signing main executable Contents/MacOS/Autoupdate leaving nested bundle Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app entering nested bundle Contents/Frameworks/Sparkle.framework/Versions/A signing bundle at MyApp.app/Contents/Frameworks/Sparkle.framework/Versions/A into MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A signing Mach-O file Resources/Autoupdate.app/Contents/MacOS/Autoupdate signing main executable Sparkle leaving nested bundle Contents/Frameworks/Sparkle.framework/Versions/A entering nested bundle Contents/Frameworks/Sparkle.framework signing bundle at MyApp.app/Contents/Frameworks/Sparkle.framework into MyApp.app.signed/Contents/Frameworks/Sparkle.framework leaving nested bundle Contents/Frameworks/Sparkle.framework signing bundle at MyApp.app into MyApp.app.signed signing main executable Contents/MacOS/MyApp $ rcodesign debug-file-tree MyApp.app.signed d MyApp.app.signed/ d MyApp.app.signed/Contents d MyApp.app.signed/Contents/Frameworks d MyApp.app.signed/Contents/Frameworks/Sparkle.framework l MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Headers -> Versions/Current/Headers l MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Modules -> Versions/Current/Modules l MyApp.app.signed/Contents/Frameworks/Sparkle.framework/PrivateHeaders -> Versions/Current/PrivateHeaders l MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Resources -> Versions/Current/Resources l MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Sparkle -> Versions/Current/Sparkle d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Headers f e3b0c44298fc1c149afb MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Headers/Sparkle.h d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Modules f e3b0c44298fc1c149afb MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Modules/module.modulemap d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents f 41d88c15e923bda8c225 MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS f e5285f3d61163f8e24e7 MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj f e3b0c44298fc1c149afb MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature f 0740079f9cc964f82201 MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources f e3b0c44298fc1c149afb MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/DarkAqua.css f fc10a69db39ae9732767 MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj f e3b0c44298fc1c149afb MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings f 5026a5974b59f2d51496 MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle d MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/_CodeSignature f 3f7b659efab61e49f00e MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/A/_CodeSignature/CodeResources l MyApp.app.signed/Contents/Frameworks/Sparkle.framework/Versions/Current -> A f 0a5902dc8e47f490d038 MyApp.app.signed/Contents/Info.plist d MyApp.app.signed/Contents/MacOS f 0a12ae975b24eff375a4 MyApp.app.signed/Contents/MacOS/MyApp d MyApp.app.signed/Contents/Resources f e3b0c44298fc1c149afb MyApp.app.signed/Contents/Resources/AppIcon.icns d MyApp.app.signed/Contents/_CodeSignature f 58059ede340668b8ba13 MyApp.app.signed/Contents/_CodeSignature/CodeResources $ rcodesign print-signature-info MyApp.app.signed - path: Contents/Frameworks/Sparkle.framework/Headers symlink_target: Versions/Current/Headers entity: other - path: Contents/Frameworks/Sparkle.framework/Modules symlink_target: Versions/Current/Modules entity: other - path: Contents/Frameworks/Sparkle.framework/PrivateHeaders symlink_target: Versions/Current/PrivateHeaders entity: other - path: Contents/Frameworks/Sparkle.framework/Resources symlink_target: Versions/Current/Resources entity: other - path: Contents/Frameworks/Sparkle.framework/Sparkle symlink_target: Versions/Current/Sparkle entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Headers/Sparkle.h file_size: 0 file_sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Modules/module.modulemap file_size: 0 file_sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist file_size: 591 file_sha256: 41d88c15e923bda8c2256d9ec934b3dd53ef43db06bf73cdb68fc25eff77b78e entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate file_size: 22544 file_sha256: e5285f3d61163f8e24e72ba0b56113162c173fc2d72282292ce5144b01519b92 entity: mach_o: macho_linkedit_start_offset: 16384 / 0x4000 macho_signature_start_offset: 16400 / 0x4010 macho_signature_end_offset: 16779 / 0x418b macho_linkedit_end_offset: 22544 / 0x5810 macho_end_offset: 22544 / 0x5810 linkedit_signature_start_offset: 16 / 0x10 linkedit_signature_end_offset: 395 / 0x18b linkedit_bytes_after_signature: 5765 / 0x1685 signature: superblob_length: 379 / 0x17b blob_count: 3 blobs: - slot: CodeDirectory (0) magic: fade0c02 length: 323 sha1: b5beeda58526510469076d273d094613752cc24d sha256: 7c6687159b670afc8f13a92b01b5fecb04880ffe2b845b5c5be5fac157f94fad - slot: RequirementSet (2) magic: fade0c01 length: 12 sha1: 3a75f6db058529148e14dd7ea1b4729cc09ec973 sha256: 987920904eab650e75788c054aa0b0524e6a80bfc71aa32df8d237a61743f986 - slot: CMS Signature (65536) magic: fade0b01 length: 8 sha1: 2a7254313aa41796079bb0e9d0f044345f69f98b sha256: e6c83bc98a10348492c7d4d2378a54572ef29e1a5692ccd02b5e29f4b762d6a0 code_directory: version: '0x20400' flags: CodeSignatureFlags(ADHOC) identifier: Autoupdate digest_type: sha256 platform: 0 signed_entity_size: 16400 executable_segment_flags: ExecutableSegmentFlags(MAIN_BINARY) code_digests_count: 5 slot_digests: - 'Info (1): 0000000000000000000000000000000000000000000000000000000000000000' - 'RequirementSet (2): 987920904eab650e75788c054aa0b0524e6a80bfc71aa32df8d237a61743f986' cms: null - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings file_size: 0 file_sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/_CodeSignature/CodeResources file_size: 2579 file_sha256: 0740079f9cc964f8220145e3ef8c10590cfa3ae48707b8a649b833f5661f8887 entity: bundle_code_signature_file: !ResourcesXml - - - - - ' files' - ' ' - ' Resources/en.lproj/Sparkle.strings' - ' ' - ' hash' - ' ' - ' 2jmj7l5rSw0yVb/vlWAYkK/YBwk=' - ' ' - ' optional' - ' ' - ' ' - ' ' - ' files2' - ' ' - ' Resources/en.lproj/Sparkle.strings' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' optional' - ' ' - ' ' - ' ' - ' rules' - ' ' - ' ^Resources/' - ' ' - ' ^Resources/.*/.lproj/' - ' ' - ' optional' - ' ' - ' weight' - ' 1000' - ' ' - ' ^Resources/.*/.lproj/locversion.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 1100' - ' ' - ' ^Resources/Base/.lproj/' - ' ' - ' weight' - ' 1010' - ' ' - ' ^version.plist$' - ' ' - ' ' - ' rules2' - ' ' - ' .*/.dSYM($|/)' - ' ' - ' weight' - ' 11' - ' ' - ' ^(.*/)?/.DS_Store$' - ' ' - ' omit' - ' ' - ' weight' - ' 2000' - ' ' - ' ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/' - ' ' - ' nested' - ' ' - ' weight' - ' 10' - ' ' - ' ^.*' - ' ' - ' ^Info/.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 20' - ' ' - ' ^PkgInfo$' - ' ' - ' omit' - ' ' - ' weight' - ' 20' - ' ' - ' ^Resources/' - ' ' - ' weight' - ' 20' - ' ' - ' ^Resources/.*/.lproj/' - ' ' - ' optional' - ' ' - ' weight' - ' 1000' - ' ' - ' ^Resources/.*/.lproj/locversion.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 1100' - ' ' - ' ^Resources/Base/.lproj/' - ' ' - ' weight' - ' 1010' - ' ' - ' ^[^/]+$' - ' ' - ' nested' - ' ' - ' weight' - ' 10' - ' ' - ' ^embedded/.provisionprofile$' - ' ' - ' weight' - ' 20' - ' ' - ' ^version/.plist$' - ' ' - ' weight' - ' 20' - ' ' - ' ' - - - '' - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/DarkAqua.css file_size: 0 file_sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist file_size: 582 file_sha256: fc10a69db39ae97327678df5b093982db866a9a478a77a84e8c47f6333170bdf entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings file_size: 0 file_sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 entity: other - path: Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle file_size: 22544 file_sha256: 5026a5974b59f2d514967caaa921d82c9843019a4851549f300fc4c00b78e812 entity: mach_o: macho_linkedit_start_offset: 16384 / 0x4000 macho_signature_start_offset: 16400 / 0x4010 macho_signature_end_offset: 16821 / 0x41b5 macho_linkedit_end_offset: 22544 / 0x5810 macho_end_offset: 22544 / 0x5810 linkedit_signature_start_offset: 16 / 0x10 linkedit_signature_end_offset: 437 / 0x1b5 linkedit_bytes_after_signature: 5723 / 0x165b signature: superblob_length: 421 / 0x1a5 blob_count: 3 blobs: - slot: CodeDirectory (0) magic: fade0c02 length: 365 sha1: bb61608eb8b7677e5594ad00c6154051c1f78330 sha256: 2a6380ba1a41404c3d3ab69cd54b05119cb13a2b3b39a25ceac46fedf1b056f6 - slot: RequirementSet (2) magic: fade0c01 length: 12 sha1: 3a75f6db058529148e14dd7ea1b4729cc09ec973 sha256: 987920904eab650e75788c054aa0b0524e6a80bfc71aa32df8d237a61743f986 - slot: CMS Signature (65536) magic: fade0b01 length: 8 sha1: 2a7254313aa41796079bb0e9d0f044345f69f98b sha256: e6c83bc98a10348492c7d4d2378a54572ef29e1a5692ccd02b5e29f4b762d6a0 code_directory: version: '0x20400' flags: CodeSignatureFlags(ADHOC) identifier: com.example.mybundle digest_type: sha256 platform: 0 signed_entity_size: 16400 executable_segment_flags: ExecutableSegmentFlags(0x0) code_digests_count: 5 slot_digests: - 'Info (1): fc10a69db39ae97327678df5b093982db866a9a478a77a84e8c47f6333170bdf' - 'RequirementSet (2): 987920904eab650e75788c054aa0b0524e6a80bfc71aa32df8d237a61743f986' - 'Resources (3): 3f7b659efab61e49f00e872683cc14242b8f0f6d475221f68b30fd8103c50be2' cms: null - path: Contents/Frameworks/Sparkle.framework/Versions/A/_CodeSignature/CodeResources file_size: 4311 file_sha256: 3f7b659efab61e49f00e872683cc14242b8f0f6d475221f68b30fd8103c50be2 entity: bundle_code_signature_file: !ResourcesXml - - - - - ' files' - ' ' - ' Resources/Autoupdate.app/Contents/Info.plist' - ' ' - ' JfaPHt3iYsKzZnh6nfeTIpJWVqE=' - ' ' - ' Resources/Autoupdate.app/Contents/MacOS/Autoupdate' - ' ' - ' apwGEW+W2ghwpHtZD2rJ1FcX9d8=' - ' ' - ' Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings' - ' ' - ' hash' - ' ' - ' 2jmj7l5rSw0yVb/vlWAYkK/YBwk=' - ' ' - ' optional' - ' ' - ' ' - ' Resources/DarkAqua.css' - ' ' - ' 2jmj7l5rSw0yVb/vlWAYkK/YBwk=' - ' ' - ' Resources/Info.plist' - ' ' - ' lv+5FkNAh6bulcE7JEu8aWkDqmI=' - ' ' - ' Resources/en.lproj/Sparkle.strings' - ' ' - ' hash' - ' ' - ' 2jmj7l5rSw0yVb/vlWAYkK/YBwk=' - ' ' - ' optional' - ' ' - ' ' - ' ' - ' files2' - ' ' - ' Headers/Sparkle.h' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' ' - ' Modules/module.modulemap' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' ' - ' Resources/Autoupdate.app/Contents/Info.plist' - ' ' - ' hash2' - ' ' - ' QdiMFekjvajCJW2eyTSz3VPvQ9sGv3PNto/CXv93t44=' - ' ' - ' ' - ' Resources/Autoupdate.app/Contents/MacOS/Autoupdate' - ' ' - ' hash2' - ' ' - ' 5ShfPWEWP44k5yugtWETFiwXP8LXIoIpLOUUSwFRm5I=' - ' ' - ' ' - ' Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' optional' - ' ' - ' ' - ' Resources/DarkAqua.css' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' ' - ' Resources/Info.plist' - ' ' - ' hash2' - ' ' - ' /BCmnbOa6XMnZ431sJOYLbhmqaR4p3qE6MR/YzMXC98=' - ' ' - ' ' - ' Resources/en.lproj/Sparkle.strings' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' optional' - ' ' - ' ' - ' ' - ' rules' - ' ' - ' ^Resources/' - ' ' - ' ^Resources/.*/.lproj/' - ' ' - ' optional' - ' ' - ' weight' - ' 1000' - ' ' - ' ^Resources/.*/.lproj/locversion.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 1100' - ' ' - ' ^Resources/Base/.lproj/' - ' ' - ' weight' - ' 1010' - ' ' - ' ^version.plist$' - ' ' - ' ' - ' rules2' - ' ' - ' .*/.dSYM($|/)' - ' ' - ' weight' - ' 11' - ' ' - ' ^(.*/)?/.DS_Store$' - ' ' - ' omit' - ' ' - ' weight' - ' 2000' - ' ' - ' ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/' - ' ' - ' nested' - ' ' - ' weight' - ' 10' - ' ' - ' ^.*' - ' ' - ' ^Info/.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 20' - ' ' - ' ^PkgInfo$' - ' ' - ' omit' - ' ' - ' weight' - ' 20' - ' ' - ' ^Resources/' - ' ' - ' weight' - ' 20' - ' ' - ' ^Resources/.*/.lproj/' - ' ' - ' optional' - ' ' - ' weight' - ' 1000' - ' ' - ' ^Resources/.*/.lproj/locversion.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 1100' - ' ' - ' ^Resources/Base/.lproj/' - ' ' - ' weight' - ' 1010' - ' ' - ' ^[^/]+$' - ' ' - ' nested' - ' ' - ' weight' - ' 10' - ' ' - ' ^embedded/.provisionprofile$' - ' ' - ' weight' - ' 20' - ' ' - ' ^version/.plist$' - ' ' - ' weight' - ' 20' - ' ' - ' ' - - - '' - path: Contents/Frameworks/Sparkle.framework/Versions/Current symlink_target: A entity: other - path: Contents/Info.plist file_size: 576 file_sha256: 0a5902dc8e47f490d03889d3593d17bddbf79e6c1f79494e20dd28f9459effa5 entity: other - path: Contents/MacOS/MyApp file_size: 22544 file_sha256: 0a12ae975b24eff375a4b1c185f64fd828463d0a7af23705cf6eddf7bdab6136 entity: mach_o: macho_linkedit_start_offset: 16384 / 0x4000 macho_signature_start_offset: 16400 / 0x4010 macho_signature_end_offset: 16821 / 0x41b5 macho_linkedit_end_offset: 22544 / 0x5810 macho_end_offset: 22544 / 0x5810 linkedit_signature_start_offset: 16 / 0x10 linkedit_signature_end_offset: 437 / 0x1b5 linkedit_bytes_after_signature: 5723 / 0x165b signature: superblob_length: 421 / 0x1a5 blob_count: 3 blobs: - slot: CodeDirectory (0) magic: fade0c02 length: 365 sha1: 79ce26960d675b8d0d1cd17e10f31d61fe272e2e sha256: cee30ebf04245267bd4386ce78879317a880fbbec12c9f4da7ddf33bae86a083 - slot: RequirementSet (2) magic: fade0c01 length: 12 sha1: 3a75f6db058529148e14dd7ea1b4729cc09ec973 sha256: 987920904eab650e75788c054aa0b0524e6a80bfc71aa32df8d237a61743f986 - slot: CMS Signature (65536) magic: fade0b01 length: 8 sha1: 2a7254313aa41796079bb0e9d0f044345f69f98b sha256: e6c83bc98a10348492c7d4d2378a54572ef29e1a5692ccd02b5e29f4b762d6a0 code_directory: version: '0x20400' flags: CodeSignatureFlags(ADHOC) identifier: com.example.mybundle digest_type: sha256 platform: 0 signed_entity_size: 16400 executable_segment_flags: ExecutableSegmentFlags(MAIN_BINARY) code_digests_count: 5 slot_digests: - 'Info (1): 0a5902dc8e47f490d03889d3593d17bddbf79e6c1f79494e20dd28f9459effa5' - 'RequirementSet (2): 987920904eab650e75788c054aa0b0524e6a80bfc71aa32df8d237a61743f986' - 'Resources (3): 58059ede340668b8ba13e8dd532726324ceafca75ad55ebf98e21b60cb590ecb' cms: null - path: Contents/Resources/AppIcon.icns file_size: 0 file_sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 entity: other - path: Contents/_CodeSignature/CodeResources file_size: 2678 file_sha256: 58059ede340668b8ba13e8dd532726324ceafca75ad55ebf98e21b60cb590ecb entity: bundle_code_signature_file: !ResourcesXml - - - - - ' files' - ' ' - ' Resources/AppIcon.icns' - ' ' - ' 2jmj7l5rSw0yVb/vlWAYkK/YBwk=' - ' ' - ' ' - ' files2' - ' ' - ' Frameworks/Sparkle.framework' - ' ' - ' cdhash' - ' ' - ' KmOAuhpBQEw9Orac1UsFEZyxOis=' - ' ' - ' requirement' - ' cdhash H"2a6380ba1a41404c3d3ab69cd54b05119cb13a2b"' - ' ' - ' Resources/AppIcon.icns' - ' ' - ' hash2' - ' ' - ' 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' - ' ' - ' ' - ' ' - ' rules' - ' ' - ' ^Resources/' - ' ' - ' ^Resources/.*/.lproj/' - ' ' - ' optional' - ' ' - ' weight' - ' 1000' - ' ' - ' ^Resources/.*/.lproj/locversion.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 1100' - ' ' - ' ^Resources/Base/.lproj/' - ' ' - ' weight' - ' 1010' - ' ' - ' ^version.plist$' - ' ' - ' ' - ' rules2' - ' ' - ' .*/.dSYM($|/)' - ' ' - ' weight' - ' 11' - ' ' - ' ^(.*/)?/.DS_Store$' - ' ' - ' omit' - ' ' - ' weight' - ' 2000' - ' ' - ' ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/' - ' ' - ' nested' - ' ' - ' weight' - ' 10' - ' ' - ' ^.*' - ' ' - ' ^Info/.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 20' - ' ' - ' ^PkgInfo$' - ' ' - ' omit' - ' ' - ' weight' - ' 20' - ' ' - ' ^Resources/' - ' ' - ' weight' - ' 20' - ' ' - ' ^Resources/.*/.lproj/' - ' ' - ' optional' - ' ' - ' weight' - ' 1000' - ' ' - ' ^Resources/.*/.lproj/locversion.plist$' - ' ' - ' omit' - ' ' - ' weight' - ' 1100' - ' ' - ' ^Resources/Base/.lproj/' - ' ' - ' weight' - ' 1010' - ' ' - ' ^[^/]+$' - ' ' - ' nested' - ' ' - ' weight' - ' 10' - ' ' - ' ^embedded/.provisionprofile$' - ' ' - ' weight' - ' 20' - ' ' - ' ^version/.plist$' - ' ' - ' weight' - ' 20' - ' ' - ' ' - - - '' $ rcodesign sign --shallow MyApp.app MyApp.app.signed-shallow ? 1 signing MyApp.app to MyApp.app.signed-shallow signing bundle at MyApp.app 3 nested bundles will be copied instead of signed because shallow signing enabled: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app Contents/Frameworks/Sparkle.framework/Versions/A Contents/Frameworks/Sparkle.framework entering nested bundle Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app shallow signing enabled; bundle will be copied instead of signed leaving nested bundle Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app entering nested bundle Contents/Frameworks/Sparkle.framework/Versions/A shallow signing enabled; bundle will be copied instead of signed leaving nested bundle Contents/Frameworks/Sparkle.framework/Versions/A entering nested bundle Contents/Frameworks/Sparkle.framework shallow signing enabled; bundle will be copied instead of signed leaving nested bundle Contents/Frameworks/Sparkle.framework signing bundle at MyApp.app into MyApp.app.signed-shallow Error: binary does not have code signature data $ rcodesign sign --shallow MyApp.app.signed MyApp.app.signed-shallow signing MyApp.app.signed to MyApp.app.signed-shallow signing bundle at MyApp.app.signed 3 nested bundles will be copied instead of signed because shallow signing enabled: Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app Contents/Frameworks/Sparkle.framework/Versions/A Contents/Frameworks/Sparkle.framework entering nested bundle Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app shallow signing enabled; bundle will be copied instead of signed leaving nested bundle Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app entering nested bundle Contents/Frameworks/Sparkle.framework/Versions/A shallow signing enabled; bundle will be copied instead of signed leaving nested bundle Contents/Frameworks/Sparkle.framework/Versions/A entering nested bundle Contents/Frameworks/Sparkle.framework shallow signing enabled; bundle will be copied instead of signed leaving nested bundle Contents/Frameworks/Sparkle.framework signing bundle at MyApp.app.signed into MyApp.app.signed-shallow signing main executable Contents/MacOS/MyApp ```