Releases: MobileNativeFoundation/rules_xcodeproj
0.10.2: Indexing fixes
What’s Changed
- Fixed handling of absolute paths in error messages: #1379
- Fixed capitalization of error messages: #1380
- Fixed indexing of generated and external sources: #1381
See the 0.10.0 release notes for more details of what is in the 0.10.0 release.
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "b4e71c7740bb8cfa4bc0b91c0f18ac512debcc111ebe471280e24f579a3b0782",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.10.2/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.10.1: BwX linker fixes
What’s Changed
- Fixed some BwX linker bugs
See the 0.10.0 release notes for more details of what is in the 0.10.0 release.
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "598449ff3a08972227363a55d22b54707468ecf4370ff56662f9d6026f72c7a7",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.10.1/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.10.0: Optimizations
What’s Changed
⚠️ Breaking Changes ⚠️
- If you used the undocumented command-line API, it's been replaced by an official one (mentioned below). See the new section in the Usage Guide for more details.
New
- Added official command-line API: #1350 and #1371
- Added support for propagating env values from
*_test
rules: #1275 - Added
pre_post_actions
totest_action
: #1333
Fixes and Improvements
- Upgraded skylib to 1.3.0: #1236
- A separate output base is now used for building as well, reducing analysis cache invalidations: #1221 and #1264
- Optimized BwB build performance by removing most target dependencies and target embedding: #1238, #1262, #1271, #1272, #1273, #1274, #1276, #1277, #1278, #1285, #1288, #1311, and #1323
- Improved the baseline BwtB experience: #1239, #1242, #1300, and #1306
- Fixed scheme symlink creation: #1279, #1291, and #1301
- Refactored file path resolution: #1241,#1243, #1246, #1250, and #1347
- Fixed
-add_ast_path
for merged targets: #1245 - Changed
PROJECT_DIR
to Bazel's execution root: #1249, #1251, #1252, #1260, #1263, #1286, #1287, #1293, #1295, #1299, #1304, #1327, and #1329 - We now work around Bazel's handling of
DEVELOPER_DIR
: #1257, #1258, and #1259 - Fixed handling of top-level linkopts: #1248
- We now apply normal configuration segregation to
BUILD_DIR
: #1267 and #1305 - Fixed BwB Indexing handling of modulemaps: #1269
- Removed env variable filtering: #1280
- Removed use of output group maps: #1307
- Fixed and optimized
rsync
exclude files: #1309, #1355, #1357, #1358, #1362, and #1364 - We now set a pattern override for BuildBuddy, to improve the look of invocations: #1310
- Fixed BwX Swift generated header path for merged targets (i.e. frameworks): #1313
- Added
-emit-symbol-graph-dir
to filtered swiftcopts: #1316 - Fixed target dependency to merged target: #1315
- Added support for mixed language modules: #1317, #1318, #1319, and #1328
- Fixed
test_action.diagnostics
propagation: #1321 - Removed extra
bazel info
calls: #1326, #1345, #1346, and #1348 - We now symlink instead of copy BwB SwiftUI Previews framework dependencies: #1330 and #1363
- We now properly set
ENABLE_STRICT_OBJC_MSGSEND
: #1331 - Improved performance of project generation: #1335, #1337, #1338, #1339, #1341, and #1343
- Prevent
bazel clean
from affecting rules_xcodeproj's output base (use the new command-line API to clean it instead): #1353 - Fixed BwB debugging of framework targets: #1356
- Moved target merging into Starlark: #1366, #1367, #1368, #1369, and #1370
Full Changelog: 0.9.0...0.10.0
Contributors
First PRs
- @sebastianv1 made their first contribution in #1333
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "2f9638b7bae45c0ba6f53a66788a0ec17db6455f4db4df6abaf07017ee9a9419",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.10.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.9: Dynamic frameworks
What’s Changed
⚠️ Breaking Changes ⚠️
- Moved public rules and macros to
xcodeproj/defs.bzl
: #1115
New
- Added support for custom pre and post build scripts in BwB mode: #1117, #1129, and #1156
- Added support for Runtime Sanitizers: #1134, #1137, #1138, #1127, #1142, #1155, #1168, #1193, #1195, #1196, #1209, #1232, #1233, #1234, and #1235
- Added support for dynamic frameworks: #1133, #1135, #1136, #1140, #1141, #1145, #1146, #1148, #1149, #1150, #1151, #1157, #1160, #1162, #1164, #1166, #1163, #1165, #1178, #1183, #1190, #1191, #1192, #1199, #1201, and #1200
- Added
top_level_targets
convenience function: #1207 and #1219
Fixes and Improvements
- Added support for
STRICT_SWIFT_CONCURRENCY
: #1109 - Updated rules_swift to 1.2.0 and rules_apple to 1.1.2: #1112
- Fixed issue with
-fmodule-map-file
in BwX mode: #1121 - Fixed Xcode 14 resource bundle code signing: #1124
- Added support for Alternate Icons: #1125
- Xcode no longer sets default search paths: #1161
- Added support for
--features=swift.file_prefix_map
: #1173 - Improved libtool stub performance: #1185
- Improved file unfocusing: #1187
- Improved error handling of XCBuildData caches: #1188 and #1213
- Fixed handling of implicit SDK frameworks: #1202
- Fixed handling of
None
swift.module.swiftsourceinfo
: #1204 - Fixed handling of
None
module.clang
: #1205 - Fixed handling of
None
AppleBundleInfo.bundle_id
: #1211 - Converted swiftc stub to a compiled binary: #1198, #1225, and #1227
- Fixed
--incompatible_unambiguous_label_stringification
handling: #1218 - We now apply the same
env -i
during project generation: #1220 and #1222 - Generated source files are now always downloaded from remote caches: #1223
- Added index-while-building to SwiftUI Preview builds: #1230
- Schemes no longer have
Find Implicit Dependencies
checked: #1226
Full Changelog: 0.8.0...0.9.0
Contributors
First PRs
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "564381b33261ba29e3c8f505de82fc398452700b605d785ce3e4b9dd6c73b623",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.9.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.8: Bazel configurability
What’s Changed
⚠️ Breaking Changes ⚠️
device_and_simulator
has been deprecated. Use the newtop_level_target.target_environments
argument instead: #965xcode_provisioning_profile
has moved fromxcodeproj/experimental.bzl
toxcodeproj/xcodeproj.bzl
: #1069xcodeproj.build_mode
now defaults to"bazel"
: #1022- It is now an error to list non-top-level targets in
top_level_targets
: #1104
New
- The project generator is now run inside a runner script, and allows for configuration via Bazel configs: #911, #950, #952, #990, #1061, #1062, and #1075
- This means that most command-line flags you pass to
bazel run //:xcodeproj
are ignored - To adjust the project generation, use the newly available Bazel configs
- This means that most command-line flags you pass to
- Bazel-built Swift now uses index-while-building: #1040, #1043, #1096, and #1098
- Added support for custom working directory in custom scheme launch actions: #1051, #1074, and #1076
- Added support for custom Swift toolchains: #1027
- Added support for adding extra files to the project: #1080
- Added support for custom scheme pre and post actions: #1047
Fixes and Improvements
- Test issues now navigate to their source location in BwB mode: #961
- Test targets now use their non-internal name: #980 and #1044
- All versions of Info.plist for a given target are now generated when building: #985
- Added support for the "Compile File" command: #976
- Fixed handling of missing
AppleBinaryInfo.infoplist
: #1002 - (Mostly) fixed handling of
apple_universal_binary
targets: #1003, #1004, and #1034 - The generator is now a universal target with a set minimum OS: #1008
- Extracted
bazel_build.sh
to a script: #1009 and #1016 - Fixed quoting of single-file build settings: #1045
- Improved handling of
top_level_cache_buster
: #1050 and #1103 - Index Build's bazel outputs are now stored inside a directory of the normal Bazel output: #1053
- Binary rules are now codesigned, fixing the Memory Graph Debugger: #1058
- Fixed edge-case building of unfocused dependencies: #1093
- Bazel now uses the correct Xcode version when compiling: #1099, #1100, and #1102
- Merged library targets are now automatically focused when their destination target is focused: #1108
Full Changelog: 0.7.1...0.8.0
Contributors
First PRs
- @chiragramani made their first contribution in #1047
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "663bf83d8725f39694125d790eacd373e4c063bf80be4e6b5daa0a5dbe74df1f",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.8.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.7.1: Indexing, navigation, and scheme improvements
What’s Changed
New
- Added
{device,simulator}_only_targets
attributes todevice_and_simulator
: #925 - Added rules documentation: #936, #944, #964, #969, and #974
Fixes and Improvements
- Improved scheme generation: #890, #901, #905, #909, #934, #940, #942, #956, #962, #963, #966
- Improved Xcode 14 support: #892
- Fixed issues not navigating to source files in BwB mode: #893
- Fixed VFS overlay generation: #898, #918, #919, #921, and #941
- Fixed indexing of
local_repository
andnew_local_repository
targets: #900 and #929 - Fixed linking BwB SwiftUI Previews: #922
- Fixed
external/
header search paths: #923 - Unfocusing of "invalid" labels is now supported: #938
- Targets can now merge into multiple top-level targets: #937
- Top-level bundle targets can now have multiple dependencies: #939
- Fixed
-D
quote handing: #948 - The
ASSETCATALOG_COMPILER_APPICON_NAME
build setting is now set: #932 - Fixed Resource bundle detection: #958
- Added
no-remote
to project generation: #972 - Upgrade warnings are now disabled: #970
Full Changelog: 0.7.0...0.7.1
Contributors
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "1dd8e60ccb457536960d37ad77109c941060d8bc1e6c8b318c7a54ac7cec1b68",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.7.1/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.7.0: Improved Performance, Custom Schemes, and Focused Projects
What’s Changed
⚠️ Breaking Changes ⚠️
xcodeproj
'stargets
attribute has been renamed totop_level_targets
: #831- This is to better reflect what types of targets you should list here. Listing dependencies of top-level targets (including
device_and_simulator
) will result in additional incorrectly configured targets in your project.
- This is to better reflect what types of targets you should list here. Listing dependencies of top-level targets (including
New
- Added C++ support to BwB: #787
- Added initial support for custom schemes: #803, #808, #809
- Added support for manually defined Focused Projects: #826
- These are defined by specifying labels in the
focused_targets
and/orunfocused_targets
attributes onxcodeproj
- These are defined by specifying labels in the
Fixes and Improvements
- Disabled BES for Index Builds: #736
- Improved handling of
linkopts
: #738, #737, #745, #747, #746, #750, #751, #757, #765, #777, #785, #789, and #829 - Improved handling of "simple" projects (BwX with no generated files): #743
- Most Bazel generated files are no longer copied into Derived Data: #744, #749, #752, #754, #760, #761, #768, #767, #771, #773, #775, #780
- Improved handling of automatic unfocused targets (i.e. "Xcode unsupported" targets): #753, #824, and #830
- Fixed errors when using
--incompatible_enable_cc_toolchain_resolution
: #756 - Fixed launching of tests with test hosts with custom
executable_name
: #758 EXECUTABLE_EXTENSION
is now only set when it differs from the default: #759- Improved handling of resources: #769, #788, #814, #883, and #886
- Improved handling of
Info.plist
s: #770, #778, and #793 - Improved handling of entitlements: #774 and #776
- Improved third-party rule support: #781 and #782
- Reduced spec.json size: #791, #814, #827, #875
BazelDependency
now only generates files for the specified target: #796, #851, and #862- Reduced amount of work done during project generation: #797 and #880
- Improved formatting of generated schemes to better match what Xcode expects: #800
- Fixed calculation of
*_DEPLOYMENT_TARGET
build settings: #843 - Greatly improved handling of Swift -> Objective-C debugging: #836, #876, #877, #879
- Improved handling of
cc_binary
andswift_binary
: #840 and #874 - Moved intermediate files to
$OBJROOT
: #860 - Improved indexing: #880
Full Changelog: 0.6.0...0.7.0
Contributors
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "a647ad9ee6664a78377cf5707331966b6788be09d1fea48045a61bc450c8f1b1",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.7.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.6.0: Embedded Targets
What’s Changed
New
- Added support for Watch Apps: #657, #661, #666, #660, #665, and #718
- Added support for App Extensions: #689, #687, #699, #701, #720, #634, and #723
- Added support for iMessage Apps: #728, #729
- Added support for App Clips: #731 and #732
- Added support for the
launchdplists
attribute: #684 - Added support for the
executable_name
attribute: #721
Fixes and Improvements
- Various fixes for unmerged top-level targets: #669, #673, #674, #725, #726
- Improved linker flag handling: #670
- Removed invalid target merges warning: #671
- Fixed formatting of some build settings: #717 and #719
- Fixed handling of
$location()/$rootpath()
in copts: #722 - Fixed handling of
apple_resource_bundle
indeps
: #734
Full Changelog: 0.5.1...0.6.0
Contributors
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "0d53b6154c1296e5ac7885978b3b6430dcb88648c324e934f639e1f955184f41",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.6.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.5.1: --ld-path, exported_symbols_lists, and simple BwB projects
What’s Changed
A small bug fix/improvements release:
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD
is now only set for iOS targets: #635- Fixed
--ld-path
path processing: #639 - Fixed handing of targets with precompiled outputs as sources: #644
- Fixed some missing PCM header search paths: #645
- Fixed simple Build with Bazel project generation: #650 and #652
- Fixed accidental inclusion of
BUILD
file in internalbazel
folder: #654 - Added support for
exported_symbols_lists
: #649 and #655
Full Changelog: 0.5.0...0.5.1
Contributors
First PRs
- @luispadron made their first contribution in #647
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "6f382ee8151352c01c8900b1098eeb49172aac087120327b930c31c3c2e9b8ff",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.5.1/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()
0.5.0: Improved rules support
What’s Changed
New
- Unknown rules are generically handled better
- For Bazel targets that can't be made into Xcode targets, we let Bazel build them and copy out the required outputs: #575, #578, #590, #591
- Bazel
features
needed by Build with Bazel are now enabled for Build with Xcode as well: #576 - The Build with Bazel custom lldbinit is used when Building with Xcode as well, to enable debugging of the copied swiftmodules: #581
- Various other fixes: #558, #598
- Added support for the
codesignopts
attribute: #593 - Added support for
swift_import
: #597 - Added support for the
alwayslink
attribute: #607, #608 - Finalized support for
apple_{dynamic,static}_{framework,xcframework}_import
: #609, #610, #625, #628 - Added
xcodeproj.scheme_autogeneration_mode
with support fornone
,auto
, andall
: #612
Fixes and Improvements
- Improvements to how entitlements are handled: #546, #547
- Fixed flakey output group check: #551
- Fixed handling of
--define=apple.experimental.tree_artifact_outputs=0
: #552 - Fixed missing App Icons in BwX mode: #556
- Fixed
TestAction
scheme ordering: #557 - Improved resource bundle handling: #559, #563, #564, #567, #571, #580, #599, #604, #605, #611, #624
- Breakpoints set from
swiftsourceinfo
now work: #579 - PCM flags now match what are set by rules_swift: #586, #595
- Reduced the size of the specification file passed between Bazel and
generator
: #600, #615, #621 - Improved collection of header files: #601
- Improved how linker flags are determined: #602
- Made file sorting more deterministic: #629
Breaking Changes
- Adjustments to
InputFileAttributesInfo
(now namedXcodeProjAutomaticTargetProcessingInfo
)
Full Changelog: 0.4.2...0.5.0
Contributors
Workspace Snippet
Please use the release asset (release.tar.gz
) from your Bazel WORKSPACE
instead of GitHub's source asset to reduce download size and improve reproducibility.
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_buildbuddy_io_rules_xcodeproj",
sha256 = "728cb6089ad2f4c4de2003ce23462be662bfdd250a8735dc590e61fb7401e7d2",
url = "https://github.com/buildbuddy-io/rules_xcodeproj/releases/download/0.5.0/release.tar.gz",
)
load(
"@com_github_buildbuddy_io_rules_xcodeproj//xcodeproj:repositories.bzl",
"xcodeproj_rules_dependencies",
)
xcodeproj_rules_dependencies()
load(
"@build_bazel_rules_apple//apple:repositories.bzl",
"apple_rules_dependencies",
)
apple_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:repositories.bzl",
"swift_rules_dependencies",
)
swift_rules_dependencies()
load(
"@build_bazel_rules_swift//swift:extras.bzl",
"swift_rules_extra_dependencies",
)
swift_rules_extra_dependencies()
load(
"@build_bazel_apple_support//lib:repositories.bzl",
"apple_support_dependencies",
)
apple_support_dependencies()