this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Pin IDB version

+126 -179
build_products/XCFrameworks/FBControlCore.xcframework/_CodeSignature/CodeDirectory

This is a binary file and will not be displayed.

+8 -8
build_products/XCFrameworks/FBControlCore.xcframework/_CodeSignature/CodeResources
··· 6 6 <dict> 7 7 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/FBControlCore</key> 8 8 <data> 9 - QidYMlh4nWuNZsTwYqd/vK0mcHk= 9 + mEEZFKRcfXjc0ugy9H2if+CEBZM= 10 10 </data> 11 11 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/Headers/FBAccessibilityCommands.h</key> 12 12 <data> ··· 390 390 </data> 391 391 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/Resources/libMaculator.dylib</key> 392 392 <data> 393 - 3ufnExPqefMd+0wWdwF6Ml2//Sw= 393 + 8eo78MLCgvMTZkk/XShHJmwmTqY= 394 394 </data> 395 395 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/Resources/libShimulator.dylib</key> 396 396 <data> 397 - PXwefqeldnUw2xg5FtOVAHfB+Dc= 397 + r6AsBomli8zxsh5x/TOn40fHP3U= 398 398 </data> 399 399 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/_CodeSignature/CodeResources</key> 400 400 <data> 401 - TWJbs5U0xelo2GRC2CxZJF7jPKo= 401 + mHmSdDVQsYc/5c3av8loR4od9jI= 402 402 </data> 403 403 </dict> 404 404 <key>files2</key> ··· 427 427 <dict> 428 428 <key>hash2</key> 429 429 <data> 430 - i5NtKntVuv+GGXrCh2geMEedc6fYjMDYm4iKCk4RNAw= 430 + /8aBUWGMoAxix42Ovj3wFlw81aQS13zAOW7RuAAc3vw= 431 431 </data> 432 432 </dict> 433 433 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/Headers/FBAccessibilityCommands.h</key> ··· 1099 1099 <dict> 1100 1100 <key>hash2</key> 1101 1101 <data> 1102 - ja/+WH0u8OJKDWS2CtjTL5JZ3+aY4L401yCjHOLOtL8= 1102 + vnEEd/TswF5abeUCiARn0tIE6SeYLGsX9+WqI31vyww= 1103 1103 </data> 1104 1104 </dict> 1105 1105 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/Resources/libShimulator.dylib</key> 1106 1106 <dict> 1107 1107 <key>hash2</key> 1108 1108 <data> 1109 - oAzfyEthhrUnracRfHUgFCFhFTziki/y0OtjSFpGmgY= 1109 + a+Ej9S0iAzAGWbGc6WedmrMMIiUPFyLJw6J09PJFx2M= 1110 1110 </data> 1111 1111 </dict> 1112 1112 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/A/_CodeSignature/CodeResources</key> 1113 1113 <dict> 1114 1114 <key>hash2</key> 1115 1115 <data> 1116 - YWU5bo+fK2ziHp/iM/zogDAOX+Doj6FY4UVzgX+ArBI= 1116 + qVlC7e1wJVk4wNSXrikTaPCQzWx5yGjbVYHW6Cmm4fA= 1117 1117 </data> 1118 1118 </dict> 1119 1119 <key>macos-arm64_x86_64/FBControlCore.framework/Versions/Current</key>
build_products/XCFrameworks/FBControlCore.xcframework/_CodeSignature/CodeSignature

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBControlCore.xcframework/macos-arm64_x86_64/FBControlCore.framework/Versions/A/FBControlCore

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBControlCore.xcframework/macos-arm64_x86_64/FBControlCore.framework/Versions/A/Resources/libMaculator.dylib

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBControlCore.xcframework/macos-arm64_x86_64/FBControlCore.framework/Versions/A/Resources/libShimulator.dylib

This is a binary file and will not be displayed.

+4 -4
build_products/XCFrameworks/FBControlCore.xcframework/macos-arm64_x86_64/FBControlCore.framework/Versions/A/_CodeSignature/CodeResources
··· 10 10 </data> 11 11 <key>Resources/libMaculator.dylib</key> 12 12 <data> 13 - 3ufnExPqefMd+0wWdwF6Ml2//Sw= 13 + 8eo78MLCgvMTZkk/XShHJmwmTqY= 14 14 </data> 15 15 <key>Resources/libShimulator.dylib</key> 16 16 <data> 17 - PXwefqeldnUw2xg5FtOVAHfB+Dc= 17 + r6AsBomli8zxsh5x/TOn40fHP3U= 18 18 </data> 19 19 </dict> 20 20 <key>files2</key> ··· 688 688 <dict> 689 689 <key>hash2</key> 690 690 <data> 691 - ja/+WH0u8OJKDWS2CtjTL5JZ3+aY4L401yCjHOLOtL8= 691 + vnEEd/TswF5abeUCiARn0tIE6SeYLGsX9+WqI31vyww= 692 692 </data> 693 693 </dict> 694 694 <key>Resources/libShimulator.dylib</key> 695 695 <dict> 696 696 <key>hash2</key> 697 697 <data> 698 - oAzfyEthhrUnracRfHUgFCFhFTziki/y0OtjSFpGmgY= 698 + a+Ej9S0iAzAGWbGc6WedmrMMIiUPFyLJw6J09PJFx2M= 699 699 </data> 700 700 </dict> 701 701 </dict>
build_products/XCFrameworks/FBDeviceControl.xcframework/_CodeSignature/CodeDirectory

This is a binary file and will not be displayed.

+8 -8
build_products/XCFrameworks/FBDeviceControl.xcframework/_CodeSignature/CodeResources
··· 6 6 <dict> 7 7 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/FBDeviceControl</key> 8 8 <data> 9 - XrsDqrLas7/iaxII7AtlchdYVoA= 9 + WX4wW0Z7FuP/znpT+CqLuOjEcB0= 10 10 </data> 11 11 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Headers/FBAFCConnection.h</key> 12 12 <data> ··· 98 98 </data> 99 99 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo</key> 100 100 <data> 101 - 8jOG9s54elG2Nph9E2b5MHHLij4= 101 + qWLRUC9gTXD8hpPGGILMvIkSvV0= 102 102 </data> 103 103 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo</key> 104 104 <data> 105 - jT8ce0E40wVJ+/rvWALJVfKMsbc= 105 + Un6tH6z5YFamhmh8kOBkvMOOkxU= 106 106 </data> 107 107 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/arm64-apple-macos.abi.json</key> 108 108 <data> ··· 150 150 </data> 151 151 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/_CodeSignature/CodeResources</key> 152 152 <data> 153 - yLt79OO5Qg7IJbk3AHNBMqxFvw4= 153 + JzUL6dVzNmYCmIgxSQm1BCJps20= 154 154 </data> 155 155 </dict> 156 156 <key>files2</key> ··· 189 189 <dict> 190 190 <key>hash2</key> 191 191 <data> 192 - wiZfG3sVslr+z/ISGqrRmVbSo/fFQ4UE2r0TYPtEgR8= 192 + DJcZCwdsNEGx5vMV7idonyp6eUGUG8/JE9NnHb0Oja8= 193 193 </data> 194 194 </dict> 195 195 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Headers/FBAFCConnection.h</key> ··· 350 350 <dict> 351 351 <key>hash2</key> 352 352 <data> 353 - P4sIx57qBtt10orgoPwyq/yRZY73Gb8rICvhhXMulgY= 353 + WwsOWwWQnIKDCF6j6tIFJtuolpXXUU88euE+zBak7Vs= 354 354 </data> 355 355 </dict> 356 356 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo</key> 357 357 <dict> 358 358 <key>hash2</key> 359 359 <data> 360 - vrMTjkgeDv8K9d97AznbEY44r8yLU/Atpys0OOUiXSU= 360 + oa/57+TDxTJcvTBbjWWnXGX7oWIweO5TP9u3TDzwq58= 361 361 </data> 362 362 </dict> 363 363 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/arm64-apple-macos.abi.json</key> ··· 441 441 <dict> 442 442 <key>hash2</key> 443 443 <data> 444 - i4Qn9i3QMbvMl87EWECJ/ar8aXBakgvJXEKowuiaH1o= 444 + wXky5AsHtw/+JyFl9E0RwMhxedvfy7QfiXPFwe11bco= 445 445 </data> 446 446 </dict> 447 447 <key>macos-arm64_x86_64/FBDeviceControl.framework/Versions/Current</key>
build_products/XCFrameworks/FBDeviceControl.xcframework/_CodeSignature/CodeSignature

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBDeviceControl.xcframework/macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/FBDeviceControl

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBDeviceControl.xcframework/macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/Project/arm64-apple-macos.swiftsourceinfo

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBDeviceControl.xcframework/macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/Modules/FBDeviceControl.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo

This is a binary file and will not be displayed.

+2 -2
build_products/XCFrameworks/FBDeviceControl.xcframework/macos-arm64_x86_64/FBDeviceControl.framework/Versions/A/_CodeSignature/CodeResources
··· 169 169 <dict> 170 170 <key>hash2</key> 171 171 <data> 172 - P4sIx57qBtt10orgoPwyq/yRZY73Gb8rICvhhXMulgY= 172 + WwsOWwWQnIKDCF6j6tIFJtuolpXXUU88euE+zBak7Vs= 173 173 </data> 174 174 </dict> 175 175 <key>Modules/FBDeviceControl.swiftmodule/Project/x86_64-apple-macos.swiftsourceinfo</key> 176 176 <dict> 177 177 <key>hash2</key> 178 178 <data> 179 - vrMTjkgeDv8K9d97AznbEY44r8yLU/Atpys0OOUiXSU= 179 + oa/57+TDxTJcvTBbjWWnXGX7oWIweO5TP9u3TDzwq58= 180 180 </data> 181 181 </dict> 182 182 <key>Modules/FBDeviceControl.swiftmodule/arm64-apple-macos.abi.json</key>
build_products/XCFrameworks/FBSimulatorControl.xcframework/_CodeSignature/CodeDirectory

This is a binary file and will not be displayed.

+6 -17
build_products/XCFrameworks/FBSimulatorControl.xcframework/_CodeSignature/CodeResources
··· 6 6 <dict> 7 7 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/FBSimulatorControl</key> 8 8 <data> 9 - UlX/RwTGgZLHyKsoHgcPcNL1rUA= 9 + vUbrbiFYHB9vB2LKXrL7q8jtuLQ= 10 10 </data> 11 11 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBFramebuffer.h</key> 12 12 <data> ··· 23 23 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorAccessibilityCommands.h</key> 24 24 <data> 25 25 HbIL2CIiOlwtqF9i688bTkcN9iU= 26 - </data> 27 - <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorApplicationCommands.h</key> 28 - <data> 29 - 2yE7/TJEVFgVPEa5Fi0jjXBuIME= 30 26 </data> 31 27 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorBootConfiguration.h</key> 32 28 <data> ··· 46 42 </data> 47 43 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorControl.h</key> 48 44 <data> 49 - ujkOcqU5sAgGMcIJRHMBDDNEf0c= 45 + uOuuE8q0wFrXC/jomh3roUf4xS0= 50 46 </data> 51 47 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorControlConfiguration.h</key> 52 48 <data> ··· 122 118 </data> 123 119 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/_CodeSignature/CodeResources</key> 124 120 <data> 125 - KoC4EEq/GQaNP6IzW1nmgs24eu0= 121 + C1tlIwIjYpXscf539N7sRlETi2c= 126 122 </data> 127 123 </dict> 128 124 <key>files2</key> ··· 161 157 <dict> 162 158 <key>hash2</key> 163 159 <data> 164 - PHg6TLZ0FkgGl+mcoY+U1ruH+3gFuZSnPdRfS5Uu0lM= 160 + YP5GPe6MfgugYPjmOsDBr+vcYpCsfdoPqJFg5Ml3URw= 165 161 </data> 166 162 </dict> 167 163 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBFramebuffer.h</key> ··· 192 188 MkxR1k3+0WF2RduGU6b0jI2WV6TMiE1iSgzyJOESQAY= 193 189 </data> 194 190 </dict> 195 - <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorApplicationCommands.h</key> 196 - <dict> 197 - <key>hash2</key> 198 - <data> 199 - ATwEmA1iM2IZVKD3YLDk8UJPQkfXW/J+HN24rO2szTg= 200 - </data> 201 - </dict> 202 191 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorBootConfiguration.h</key> 203 192 <dict> 204 193 <key>hash2</key> ··· 231 220 <dict> 232 221 <key>hash2</key> 233 222 <data> 234 - /8wLBaLJ4IQLwdwRdEevy7JSofEYxVcDx4J/QmxHwk4= 223 + yUnJSWeWmNOrD0U1Kxahc8UffGR/qrjkvKl7g773Svs= 235 224 </data> 236 225 </dict> 237 226 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorControlConfiguration.h</key> ··· 364 353 <dict> 365 354 <key>hash2</key> 366 355 <data> 367 - o6vCwadUpaKl9Z75cuVZZWxToJSuQWrtuGGCA7Tdyew= 356 + J+JuN7p27/GXtTeHMol9yyuhUaqFAsoLDYYpuSnJ8A0= 368 357 </data> 369 358 </dict> 370 359 <key>macos-arm64_x86_64/FBSimulatorControl.framework/Versions/Current</key>
build_products/XCFrameworks/FBSimulatorControl.xcframework/_CodeSignature/CodeSignature

This is a binary file and will not be displayed.

build_products/XCFrameworks/FBSimulatorControl.xcframework/macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/FBSimulatorControl

This is a binary file and will not be displayed.

-38
build_products/XCFrameworks/FBSimulatorControl.xcframework/macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorApplicationCommands.h
··· 1 - /* 2 - * Copyright (c) Meta Platforms, Inc. and affiliates. 3 - * 4 - * This source code is licensed under the MIT license found in the 5 - * LICENSE file in the root directory of this source tree. 6 - */ 7 - 8 - #import <Foundation/Foundation.h> 9 - 10 - #import <FBControlCore/FBControlCore.h> 11 - 12 - NS_ASSUME_NONNULL_BEGIN 13 - 14 - @class FBSimulator; 15 - /** 16 - Implementation of FBApplicationCommands for Simulators. 17 - */ 18 - @interface FBSimulatorApplicationCommands : NSObject <FBApplicationCommands> 19 - 20 - /** 21 - Returns the mapping of group container to absolute path for a given simulator. 22 - 23 - @param simulator the simulator to obtain the path mapping for. 24 - @return a future wrapping the path mapping. 25 - */ 26 - + (FBFuture<NSDictionary<NSString *, NSURL *> *> *)groupContainerToPathMappingForSimulator:(FBSimulator *)simulator; 27 - 28 - /** 29 - Returns the mapping of application container to absolute path for a given simulator. 30 - 31 - @param simulator the simulator to obtain the path mapping for. 32 - @return a future wrapping the path mapping. 33 - */ 34 - + (FBFuture<NSDictionary<NSString *, NSURL *> *> *)applicationContainerToPathMappingForSimulator:(FBSimulator *)simulator; 35 - 36 - @end 37 - 38 - NS_ASSUME_NONNULL_END
-1
build_products/XCFrameworks/FBSimulatorControl.xcframework/macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/Headers/FBSimulatorControl.h
··· 9 9 #import <FBSimulatorControl/FBSimulator+Private.h> 10 10 #import <FBSimulatorControl/FBSimulator.h> 11 11 #import <FBSimulatorControl/FBSimulatorAccessibilityCommands.h> 12 - #import <FBSimulatorControl/FBSimulatorApplicationCommands.h> 13 12 #import <FBSimulatorControl/FBSimulatorBootConfiguration.h> 14 13 #import <FBSimulatorControl/FBSimulatorConfiguration+CoreSimulator.h> 15 14 #import <FBSimulatorControl/FBSimulatorConfiguration.h>
+1 -8
build_products/XCFrameworks/FBSimulatorControl.xcframework/macos-arm64_x86_64/FBSimulatorControl.framework/Versions/A/_CodeSignature/CodeResources
··· 39 39 MkxR1k3+0WF2RduGU6b0jI2WV6TMiE1iSgzyJOESQAY= 40 40 </data> 41 41 </dict> 42 - <key>Headers/FBSimulatorApplicationCommands.h</key> 43 - <dict> 44 - <key>hash2</key> 45 - <data> 46 - ATwEmA1iM2IZVKD3YLDk8UJPQkfXW/J+HN24rO2szTg= 47 - </data> 48 - </dict> 49 42 <key>Headers/FBSimulatorBootConfiguration.h</key> 50 43 <dict> 51 44 <key>hash2</key> ··· 78 71 <dict> 79 72 <key>hash2</key> 80 73 <data> 81 - /8wLBaLJ4IQLwdwRdEevy7JSofEYxVcDx4J/QmxHwk4= 74 + yUnJSWeWmNOrD0U1Kxahc8UffGR/qrjkvKl7g773Svs= 82 75 </data> 83 76 </dict> 84 77 <key>Headers/FBSimulatorControlConfiguration.h</key>
build_products/XCFrameworks/XCTestBootstrap.xcframework/_CodeSignature/CodeDirectory

This is a binary file and will not be displayed.

+2 -2
build_products/XCFrameworks/XCTestBootstrap.xcframework/_CodeSignature/CodeResources
··· 130 130 </data> 131 131 <key>macos-arm64_x86_64/XCTestBootstrap.framework/Versions/A/XCTestBootstrap</key> 132 132 <data> 133 - 2xWxpnlp4/AN8gQlGEPJD4Dz0H4= 133 + pRnGd1PqUdGa5WQbjy0IPfxbfXA= 134 134 </data> 135 135 <key>macos-arm64_x86_64/XCTestBootstrap.framework/Versions/A/_CodeSignature/CodeResources</key> 136 136 <data> ··· 385 385 <dict> 386 386 <key>hash2</key> 387 387 <data> 388 - Ggcld4iRhP8DPxiN3u0VDa3QBt+6yCDkwF7VxUfrM8U= 388 + ljNrHRmMN41hBasNv6pdRGE1JTOGkY53yEgURAHwV90= 389 389 </data> 390 390 </dict> 391 391 <key>macos-arm64_x86_64/XCTestBootstrap.framework/Versions/A/_CodeSignature/CodeResources</key>
build_products/XCFrameworks/XCTestBootstrap.xcframework/_CodeSignature/CodeSignature

This is a binary file and will not be displayed.

build_products/XCFrameworks/XCTestBootstrap.xcframework/macos-arm64_x86_64/XCTestBootstrap.framework/Versions/A/XCTestBootstrap

This is a binary file and will not be displayed.

+95 -91
scripts/build.sh
··· 6 6 7 7 # Environment and Configuration 8 8 IDB_CHECKOUT_DIR="${IDB_CHECKOUT_DIR:-./idb_checkout}" 9 + IDB_GIT_REF="${IDB_GIT_REF:-76639e4d0e1741adf391cab36f19fbc59378153e}" 9 10 BUILD_OUTPUT_DIR="${BUILD_OUTPUT_DIR:-./build_products}" 10 11 DERIVED_DATA_PATH="${DERIVED_DATA_PATH:-./build_derived_data}" 11 12 BUILD_XCFRAMEWORK_DIR="${BUILD_XCFRAMEWORK_DIR:-${BUILD_OUTPUT_DIR}/XCFrameworks}" ··· 67 68 function invoke_xcodebuild() { 68 69 local arguments=$@ 69 70 print_info "Executing: xcodebuild ${arguments[*]}" 70 - 71 + 71 72 local exit_code 72 73 if [[ -n $HAS_XCPRETTY ]]; then 73 74 NSUnbufferedIO=YES xcodebuild $arguments | xcpretty -c ··· 76 77 xcodebuild $arguments 2>&1 77 78 exit_code=$? 78 79 fi 79 - 80 + 80 81 return $exit_code 81 82 } 82 83 83 84 function clone_idb_repo() { 84 85 if [ ! -d $IDB_CHECKOUT_DIR ]; then 85 86 print_info "Creating $IDB_DIRECTORY directory and cloning idb repository..." 86 - git clone --depth 1 https://github.com/facebook/idb.git $IDB_CHECKOUT_DIR 87 - print_success "idb repository cloned successfully." 87 + git clone https://github.com/facebook/idb.git $IDB_CHECKOUT_DIR 88 + (cd $IDB_CHECKOUT_DIR && git checkout "$IDB_GIT_REF") 89 + print_success "idb repository cloned at $IDB_GIT_REF." 88 90 else 89 - print_warning "$IDB_CHECKOUT_DIR directory already exists." 91 + print_info "Updating idb repository to $IDB_GIT_REF..." 92 + (cd $IDB_CHECKOUT_DIR && git fetch --all --tags --prune && git reset --hard "$IDB_GIT_REF") 93 + print_success "idb repository updated to $IDB_GIT_REF." 90 94 fi 91 95 } 92 96 ··· 101 105 102 106 print_subsection "🔨" "Building framework: ${scheme_name}" 103 107 print_info "Project: ${project_file}" 104 - 108 + 105 109 invoke_xcodebuild \ 106 110 -project "${project_file}" \ 107 111 -scheme "${scheme_name}" \ ··· 118 122 GCC_TREAT_WARNINGS_AS_ERRORS=NO \ 119 123 SWIFT_TREAT_WARNINGS_AS_ERRORS=NO 120 124 local build_exit_code=$? 121 - 125 + 122 126 if [ $build_exit_code -eq 0 ]; then 123 127 print_success "Framework ${scheme_name} built successfully!" 124 128 else ··· 173 177 -framework "${signed_framework_path}" \ 174 178 -output "${xcframework_path}" 175 179 local xcframework_exit_code=$? 176 - 180 + 177 181 if [ $xcframework_exit_code -eq 0 ]; then 178 182 print_success "XCFramework ${scheme_name}.xcframework created at ${xcframework_path}" 179 183 else ··· 202 206 local output_base_dir="$1" 203 207 local framework_name="$2" 204 208 local framework_path="${output_base_dir}/Frameworks/${framework_name}" 205 - 209 + 206 210 if [ -d "$framework_path" ]; then 207 211 print_info "Resigning framework: ${framework_name}" 208 - 212 + 209 213 # First, sign all dynamic libraries and binaries inside the framework 210 214 print_info "Signing embedded binaries in ${framework_name}..." 211 - 215 + 212 216 # Find and sign all .dylib files recursively 213 217 find "$framework_path" -name "*.dylib" -type f | while read -r dylib_path; do 214 218 print_info " Signing dylib: $(basename "$dylib_path")" ··· 218 222 --timestamp \ 219 223 --verbose \ 220 224 "$dylib_path" 221 - 225 + 222 226 if [ $? -ne 0 ]; then 223 227 echo "❌ Error: Failed to sign dylib: $dylib_path" 224 228 exit 1 225 229 fi 226 230 done 227 - 231 + 228 232 # Remove any existing signature from the main framework binary first 229 233 print_info "Removing existing signature from ${framework_name}..." 230 234 codesign --remove-signature "$framework_path" 2>/dev/null || true 231 - 235 + 232 236 # Sign the main framework bundle with specific notarization-compatible options 233 237 print_info "Signing main framework bundle: ${framework_name}" 234 238 codesign --force \ ··· 238 242 --timestamp \ 239 243 --verbose \ 240 244 "$framework_path" 241 - 245 + 242 246 if [ $? -eq 0 ]; then 243 247 print_success "Framework ${framework_name} resigned successfully" 244 - 248 + 245 249 # Verify the signature with strictest verification 246 250 print_info "Performing strict verification for ${framework_name}..." 247 251 codesign -vvv --strict "$framework_path" 248 - 252 + 249 253 if [ $? -eq 0 ]; then 250 254 print_success "Signature verification passed for ${framework_name}" 251 - 255 + 252 256 # Display signature details 253 257 print_info "Signature details for ${framework_name}:" 254 258 codesign -dv "$framework_path" 2>&1 | grep -E "(Identifier|TeamIdentifier|Authority|Timestamp)" || true ··· 272 276 local output_base_dir="$1" 273 277 local xcframework_name="$2" 274 278 local xcframework_path="${output_base_dir}/XCFrameworks/${xcframework_name}" 275 - 279 + 276 280 if [ -d "$xcframework_path" ]; then 277 281 print_info "Resigning XCFramework: ${xcframework_name}" 278 - 282 + 279 283 # Sign XCFramework with Developer ID and runtime hardening 280 284 codesign --force \ 281 285 --sign "Developer ID Application: Cameron Cooke (BR6WD3M6ZD)" \ ··· 283 287 --deep \ 284 288 --timestamp \ 285 289 "$xcframework_path" 286 - 290 + 287 291 if [ $? -eq 0 ]; then 288 292 print_success "XCFramework ${xcframework_name} resigned successfully" 289 - 293 + 290 294 # Verify the signature with strictest verification and deep checking 291 295 print_info "Performing strict verification for XCFramework ${xcframework_name}..." 292 296 codesign -vvv --deep "$xcframework_path" 293 - 297 + 294 298 if [ $? -eq 0 ]; then 295 299 print_success "XCFramework signature verification passed for ${xcframework_name}" 296 - 300 + 297 301 # Display signature details 298 302 print_info "XCFramework signature details for ${xcframework_name}:" 299 303 codesign -dv --deep "$xcframework_path" 2>&1 | grep -E "(Identifier|TeamIdentifier|Authority)" || true ··· 320 324 321 325 print_subsection "⚡" "Building AXe executable" 322 326 print_info "Using Swift Package Manager to build AXe..." 323 - 327 + 324 328 # Clean any existing build products to ensure fresh build 325 329 print_info "Cleaning previous build products..." 326 330 swift package clean 327 - 331 + 328 332 # Build using Swift Package Manager (rely on environment variables for cache control) 329 333 swift build --configuration ${build_config} 330 334 local build_exit_code=$? 331 - 335 + 332 336 if [ $build_exit_code -eq 0 ]; then 333 337 print_success "AXe executable built successfully!" 334 - 338 + 335 339 # Copy executable to build products directory 336 340 print_info "Installing executable to ${executable_dest}" 337 341 cp "${executable_source}" "${executable_dest}" 338 342 print_success "AXe executable installed to ${executable_dest}" 339 - 343 + 340 344 # Configure rpath for organized framework loading 341 345 print_info "Configuring executable rpath for organized framework loading..." 342 - 346 + 343 347 # Remove any existing rpaths first 344 348 install_name_tool -delete_rpath "@executable_path/Frameworks" "${executable_dest}" 2>/dev/null || true 345 349 install_name_tool -delete_rpath "@loader_path/Frameworks" "${executable_dest}" 2>/dev/null || true 346 - 350 + 347 351 # Add primary rpath: look for frameworks in Frameworks/ subdirectory relative to executable 348 352 install_name_tool -add_rpath "@executable_path/Frameworks" "${executable_dest}" 349 353 print_success "Added rpath: @executable_path/Frameworks" 350 - 354 + 351 355 # Add fallback rpath: look for frameworks in Frameworks/ relative to current library 352 356 install_name_tool -add_rpath "@loader_path/Frameworks" "${executable_dest}" 353 357 print_success "Added rpath: @loader_path/Frameworks" 354 - 358 + 355 359 # Verify rpath configuration 356 360 print_info "Verifying rpath configuration..." 357 361 local rpath_output=$(otool -l "${executable_dest}" | grep -A2 LC_RPATH | grep path | awk '{print $2}') ··· 363 367 else 364 368 print_warning "No rpath entries found in executable" 365 369 fi 366 - 370 + 367 371 print_success "Executable rpath configured for organized framework deployment" 368 372 else 369 373 echo "❌ Error: AXe executable build failed with exit code ${build_exit_code}" ··· 376 380 function sign_axe_executable() { 377 381 local output_base_dir="$1" 378 382 local executable_path="${output_base_dir}/axe" 379 - 383 + 380 384 if [ -f "$executable_path" ]; then 381 385 print_info "Signing AXe executable: ${executable_path}" 382 - 386 + 383 387 # Sign with Developer ID and runtime hardening 384 388 codesign --force \ 385 389 --sign "Developer ID Application: Cameron Cooke (BR6WD3M6ZD)" \ ··· 387 391 --entitlements entitlements.plist \ 388 392 --timestamp \ 389 393 "$executable_path" 390 - 394 + 391 395 if [ $? -eq 0 ]; then 392 396 print_success "AXe executable signed successfully" 393 - 397 + 394 398 # Verify the signature with strictest verification 395 399 print_info "Performing strict verification for AXe executable..." 396 400 codesign -vvv "$executable_path" 397 - 401 + 398 402 if [ $? -eq 0 ]; then 399 403 print_success "AXe executable signature verification passed" 400 - 404 + 401 405 # Display signature details 402 406 print_info "AXe executable signature details:" 403 407 codesign -dv "$executable_path" 2>&1 | grep -E "(Identifier|TeamIdentifier|Authority)" || true ··· 424 428 425 429 print_subsection "📦" "Creating notarization package" >&2 426 430 print_info "Package name: ${package_name}" >&2 427 - 431 + 428 432 # Create temporary package directory 429 433 rm -rf "${package_dir}" "${package_zip}" 430 434 mkdir -p "${package_dir}" 431 - 435 + 432 436 # Copy executable to package directory 433 437 print_info "Copying executable to package..." >&2 434 438 cp "${output_base_dir}/axe" "${package_dir}/" 435 - 439 + 436 440 # Create zip package (redirect zip output to stderr) 437 441 print_info "Creating zip package: ${package_zip}" >&2 438 442 (cd "${output_base_dir}" && zip -r "${package_name}.zip" "${package_name}/") >&2 439 - 443 + 440 444 # Clean up temporary directory 441 445 rm -rf "${package_dir}" 442 - 446 + 443 447 if [ -f "${package_zip}" ]; then 444 448 print_success "Notarization package created: ${package_zip}" >&2 445 449 # Store the clean absolute path ··· 456 460 # $1: Package zip path 457 461 function notarize_package() { 458 462 local package_zip="$1" 459 - 463 + 460 464 print_subsection "🍎" "Submitting for Apple notarization" 461 - 465 + 462 466 # Check if API key exists 463 467 if [ ! -f "${NOTARIZATION_API_KEY_PATH}" ]; then 464 468 echo "❌ Error: Notarization API key not found at ${NOTARIZATION_API_KEY_PATH}" 465 469 print_info "Please ensure the API key file exists or set NOTARIZATION_API_KEY_PATH environment variable" 466 470 exit 1 467 471 fi 468 - 472 + 469 473 print_info "API Key: ${NOTARIZATION_API_KEY_PATH}" 470 474 print_info "Key ID: ${NOTARIZATION_KEY_ID}" 471 475 print_info "Issuer ID: ${NOTARIZATION_ISSUER_ID}" 472 476 print_info "Package: ${package_zip}" 473 477 print_info "Temporary directory: ${TEMP_DIR}" 474 - 478 + 475 479 # Submit for notarization 476 480 print_info "Submitting package for notarization..." 477 481 local submit_output=$(xcrun notarytool submit "${package_zip}" \ ··· 480 484 --issuer "${NOTARIZATION_ISSUER_ID}" \ 481 485 --wait 2>&1) 482 486 local submit_exit_code=$? 483 - 487 + 484 488 echo "${submit_output}" 485 - 489 + 486 490 if [ $submit_exit_code -eq 0 ] && echo "${submit_output}" | grep -q "status: Accepted"; then 487 491 # Extract submission ID from output 488 492 local submission_id=$(echo "${submit_output}" | grep "id:" | head -1 | awk '{print $2}') 489 493 print_success "Notarization completed successfully!" 490 494 print_info "Submission ID: ${submission_id}" 491 - 495 + 492 496 # Extract notarized executable from package and replace original 493 497 print_info "Extracting notarized executable to replace original..." 494 498 local temp_extract_dir="${BUILD_OUTPUT_DIR}/temp_notarized" 495 499 rm -rf "${temp_extract_dir}" 496 500 mkdir -p "${temp_extract_dir}" 497 - 501 + 498 502 # Extract the notarized package 499 503 unzip -q "${package_zip}" -d "${temp_extract_dir}" 500 - 504 + 501 505 # Find the extracted executable 502 506 local extracted_executable=$(find "${temp_extract_dir}" -name "axe" -type f | head -1) 503 - 507 + 504 508 if [ -f "${extracted_executable}" ]; then 505 509 # Replace the original executable with the notarized one 506 510 cp "${extracted_executable}" "${BUILD_OUTPUT_DIR}/axe" 507 511 print_success "Original executable replaced with notarized version" 508 - 512 + 509 513 # Verify notarization status using spctl 510 514 print_info "Verifying notarization with spctl assessment..." 511 515 spctl -a -v "${BUILD_OUTPUT_DIR}/axe" 2>&1 | grep -q "accepted" || { 512 516 print_info "Note: spctl shows 'not an app' for command-line tools - this is expected" 513 517 print_info "Notarized command-line tools are validated differently by macOS" 514 518 } 515 - 519 + 516 520 # Check if the executable has the notarization signature 517 521 print_info "Checking code signature details..." 518 522 local sig_info=$(codesign -dv "${BUILD_OUTPUT_DIR}/axe" 2>&1) ··· 521 525 else 522 526 print_warning "Runtime hardening not detected in signature" 523 527 fi 524 - 528 + 525 529 print_success "Notarized executable is ready for distribution" 526 - 530 + 527 531 # Ensure Frameworks directory exists for final package 528 532 print_info "Preparing Frameworks directory for final package..." 529 533 if [ ! -d "${BUILD_OUTPUT_DIR}/Frameworks" ]; then 530 534 print_info "Frameworks directory not found, recreating from XCFrameworks..." 531 535 mkdir -p "${BUILD_OUTPUT_DIR}/Frameworks" 532 - 536 + 533 537 # Extract frameworks from XCFrameworks for deployment 534 538 for xcframework in "${BUILD_OUTPUT_DIR}/XCFrameworks"/*.xcframework; do 535 539 if [ -d "$xcframework" ]; then 536 540 local framework_name=$(basename "$xcframework" .xcframework) 537 541 print_info "Extracting ${framework_name}.framework from XCFramework..." 538 - 542 + 539 543 # Find the macOS framework inside the XCFramework 540 544 local macos_framework=$(find "$xcframework" -name "${framework_name}.framework" -path "*/macos-*" | head -1) 541 545 if [ -d "$macos_framework" ]; then ··· 550 554 else 551 555 print_info "Frameworks directory already exists" 552 556 fi 553 - 557 + 554 558 # Create final deployment package in temporary directory 555 559 print_info "Creating final deployment package..." 556 560 local final_package_name="AXe-Final-$(date +%Y%m%d-%H%M%S)" 557 561 local final_package_dir="${TEMP_DIR}/${final_package_name}" 558 562 local final_package_zip="${TEMP_DIR}/${final_package_name}.zip" 559 - 563 + 560 564 # Create final package directory 561 565 mkdir -p "${final_package_dir}" 562 - 566 + 563 567 # Copy notarized executable and frameworks to final package 564 568 cp "${BUILD_OUTPUT_DIR}/axe" "${final_package_dir}/" 565 569 if [ -d "${BUILD_OUTPUT_DIR}/Frameworks" ]; then ··· 568 572 else 569 573 print_info "No Frameworks directory found - creating executable-only package" 570 574 fi 571 - 575 + 572 576 # Create final zip package 573 577 print_info "Creating final package: ${final_package_zip}" 574 578 (cd "${TEMP_DIR}" && zip -r "${final_package_name}.zip" "${final_package_name}/") 575 - 579 + 576 580 # Clean up temporary package directory 577 581 rm -rf "${final_package_dir}" 578 - 582 + 579 583 if [ -f "${final_package_zip}" ]; then 580 584 print_success "Final deployment package created: ${final_package_zip}" 581 - 585 + 582 586 # Clean up build artifacts (axe executable and Frameworks, keep XCFrameworks) 583 587 print_info "Cleaning up build artifacts..." 584 588 rm -f "${BUILD_OUTPUT_DIR}/axe" 585 589 rm -rf "${BUILD_OUTPUT_DIR}/Frameworks" 586 590 print_success "Cleaned up axe executable and Frameworks directory" 587 591 print_info "Preserved XCFrameworks directory for Swift package builds" 588 - 592 + 589 593 # Output the final package path 590 594 echo "" 591 595 echo "📦 Final Package Location:" 592 596 echo "${final_package_zip}" 593 597 echo "" 594 - 598 + 595 599 # Update the global PACKAGE_ZIP variable 596 600 PACKAGE_ZIP="${final_package_zip}" 597 601 else 598 602 echo "❌ Error: Failed to create final deployment package" 599 603 exit 1 600 604 fi 601 - 605 + 602 606 # Clean up temporary extraction directory and original notarization package 603 607 rm -rf "${temp_extract_dir}" 604 608 rm -f "${package_zip}" ··· 609 613 fi 610 614 else 611 615 echo "❌ Error: Notarization failed" 612 - 616 + 613 617 # Extract submission ID for log fetching 614 618 local submission_id=$(echo "${submit_output}" | grep "id:" | head -1 | awk '{print $2}') 615 - 619 + 616 620 if [ -n "${submission_id}" ]; then 617 621 print_info "Submission ID: ${submission_id}" 618 622 print_info "Fetching notarization log for detailed error information..." 619 - 623 + 620 624 # Fetch the notary log using notarytool 621 625 echo "" 622 626 echo "📋 Notarization Log:" ··· 630 634 else 631 635 print_info "Could not extract submission ID from notarization output" 632 636 fi 633 - 637 + 634 638 exit 1 635 639 fi 636 640 } ··· 644 648 Commands: 645 649 help 646 650 Print this usage information. 647 - 651 + 648 652 setup 649 653 Clone the IDB repository and set up directories. 650 - 654 + 651 655 clean 652 656 Clean previous build products and derived data. 653 - 657 + 654 658 frameworks 655 659 Build all IDB frameworks (FBControlCore, XCTestBootstrap, FBSimulatorControl, FBDeviceControl). 656 - 660 + 657 661 install 658 662 Install built frameworks to the Frameworks directory. 659 - 663 + 660 664 strip 661 665 Strip nested frameworks from the built frameworks. 662 - 666 + 663 667 sign-frameworks 664 668 Code sign all frameworks with Developer ID. 665 - 669 + 666 670 xcframeworks 667 671 Create XCFrameworks from the built frameworks. 668 - 672 + 669 673 sign-xcframeworks 670 674 Code sign all XCFrameworks with Developer ID. 671 - 675 + 672 676 executable 673 677 Build the AXe executable using Swift Package Manager. 674 - 678 + 675 679 sign-executable 676 680 Code sign the AXe executable with Developer ID. 677 - 681 + 678 682 package 679 683 Create a notarization package (zip file). 680 - 684 + 681 685 notarize 682 686 Submit package for Apple notarization and replace original executable. 683 - 687 + 684 688 build (default) 685 689 Run all steps from setup through notarization. 686 690 ··· 729 733 730 734 function cmd_install() { 731 735 print_section "📦" "Installing Frameworks" 732 - install_framework "FBControlCore" "${BUILD_OUTPUT_DIR}" 736 + install_framework "FBControlCore" "${BUILD_OUTPUT_DIR}" 733 737 install_framework "XCTestBootstrap" "${BUILD_OUTPUT_DIR}" 734 738 install_framework "FBSimulatorControl" "${BUILD_OUTPUT_DIR}" 735 739 install_framework "FBDeviceControl" "${BUILD_OUTPUT_DIR}" ··· 804 808 805 809 function cmd_build() { 806 810 print_section "🚀" "IDB Framework Builder for AXe Project" 807 - 811 + 808 812 print_info "IDB Checkout Directory: ${IDB_CHECKOUT_DIR}" 809 813 print_info "Build Output Directory: ${BUILD_OUTPUT_DIR}" 810 814 print_info "Derived Data Path: ${DERIVED_DATA_PATH}" ··· 878 882 exit 1;; 879 883 esac 880 884 881 - exit 0 885 + exit 0