Skip to content

Commit b3c6716

Browse files
ferrerodbobbyg603
andauthored
fix: ios notarization error from nested frameworks (#34)
* Unnest frameworks, create separate framework dependencies For iOS, BugSplat.xcframework cannot embed other frameworks. Updated Package.swift to create 3 .binaryTarget one for BugSplat, HockeySDK and CrashReporter *TODO:* Each xcframework should be versioned, zipped, and made available for public download from a URL that is published from the respective target URL The framework version should be used in the download URL. The checksum for each .zip should also be updated. *Example Apps:* BugSplatTest-SwiftUI-SPM was not updated. It should "just work" after the new BugSplat Swift Package is published along with the dependencies. It should be checked after publishing. The command-line Mac Demo was updated as follows: BugSplatTest-macOS-Tool-CPlusPlus was updated to include a new Build Phase Script that signs the frameworks after they are copied to the build directory. The Team IDs of the signing in the Build Phase script must match the Team ID for the App (demo). The following Example_Apps now depend on BugSplat, HockeySDK and CrashReporter Frameworks. All are embedded and signed by the host app. BugSplatTest-macOS-UIKit-ObjC BugSplatTest-UIKit-ObjC BugSplatTest-UIKit-Swift BugSplatTest-SwiftUI * chore(build): add HockeySDK and PlCrashReporter to release * updated README.md * Apply suggestions from code review --------- Co-authored-by: Bobby Galli <[email protected]>
1 parent a29bf5b commit b3c6716

File tree

13 files changed

+169
-81
lines changed

13 files changed

+169
-81
lines changed

.github/workflows/release.yml

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,30 @@ jobs:
106106
run: |
107107
./makeXCFramework.sh
108108
109-
# Create zip archive of the framework
109+
# Create zip archives of the frameworks
110110
cd xcframeworks
111111
zip -y -r BugSplat.xcframework.zip BugSplat.xcframework
112+
cd ../Vendor
113+
zip -y -r HockeySDK.xcframework.zip HockeySDK.xcframework
114+
zip -y -r CrashReporter.xcframework.zip CrashReporter.xcframework
112115
113116
- name: Update Package.swift
114117
working-directory: bugsplat-workspace/bugsplat-apple
115118
run: |
116-
# Calculate checksum
117-
CHECKSUM=$(swift package compute-checksum xcframeworks/BugSplat.xcframework.zip)
119+
# Calculate checksums
120+
BUGSPLAT_CHECKSUM=$(swift package compute-checksum xcframeworks/BugSplat.xcframework.zip)
121+
HOCKEY_CHECKSUM=$(swift package compute-checksum Vendor/HockeySDK.xcframework.zip)
122+
CRASHREPORTER_CHECKSUM=$(swift package compute-checksum Vendor/CrashReporter.xcframework.zip)
118123
119-
# Create a temporary file with the new content
120-
sed "s|url: \".*\"|url: \"https://github.com/BugSplat-Git/bugsplat-apple/releases/download/${{ needs.check-version.outputs.next }}/BugSplat.xcframework.zip\"|" Package.swift > Package.swift.tmp
121-
sed "s|checksum: \".*\"|checksum: \"${CHECKSUM}\"|" Package.swift.tmp > Package.swift
122-
rm Package.swift.tmp
124+
# Update all frameworks in Package.swift
125+
sed -i '' \
126+
-e "/name: \"BugSplat\"/,/}/ s|url: \".*\"|url: \"https://github.com/BugSplat-Git/bugsplat-apple/releases/download/${{ needs.check-version.outputs.next }}/BugSplat.xcframework.zip\"|" \
127+
-e "/name: \"BugSplat\"/,/}/ s|checksum: \".*\"|checksum: \"${BUGSPLAT_CHECKSUM}\"|" \
128+
-e "/name: \"HockeySDK\"/,/}/ s|url: \".*\"|url: \"https://github.com/BugSplat-Git/bugsplat-apple/releases/download/${{ needs.check-version.outputs.next }}/HockeySDK.xcframework.zip\"|" \
129+
-e "/name: \"HockeySDK\"/,/}/ s|checksum: \".*\"|checksum: \"${HOCKEY_CHECKSUM}\"|" \
130+
-e "/name: \"CrashReporter\"/,/}/ s|url: \".*\"|url: \"https://github.com/BugSplat-Git/bugsplat-apple/releases/download/${{ needs.check-version.outputs.next }}/CrashReporter.xcframework.zip\"|" \
131+
-e "/name: \"CrashReporter\"/,/}/ s|checksum: \".*\"|checksum: \"${CRASHREPORTER_CHECKSUM}\"|" \
132+
Package.swift
123133
124134
# Commit and push the updated Package.swift
125135
git config --global user.email "github-actions[bot]@users.noreply.github.com"
@@ -138,15 +148,18 @@ jobs:
138148
uses: softprops/action-gh-release@v1
139149
with:
140150
tag_name: ${{ needs.check-version.outputs.next }}
141-
files: bugsplat-workspace/bugsplat-apple/xcframeworks/BugSplat.xcframework.zip
151+
files: |
152+
bugsplat-workspace/bugsplat-apple/xcframeworks/BugSplat.xcframework.zip
153+
bugsplat-workspace/bugsplat-apple/Vendor/HockeySDK.xcframework.zip
154+
bugsplat-workspace/bugsplat-apple/Vendor/CrashReporter.xcframework.zip
142155
name: Release ${{ needs.check-version.outputs.next }}
143156
body: |
144157
Release of BugSplat.xcframework version ${{ needs.check-version.outputs.next }}
145158
146159
This release contains:
147-
- iOS framework
148-
- iOS Simulator framework
149-
- macOS framework
160+
- BugSplat.xcframework
161+
- HockeySDK.xcframework
162+
- CrashReporter.xcframework
150163
151164
Swift Package Manager:
152165
```swift

BugSplat.xcodeproj/project.pbxproj

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 56;
6+
objectVersion = 60;
77
objects = {
88

99
/* Begin PBXBuildFile section */
1010
6341B28C2BDC514C007EE8AC /* HockeySDK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63598C3C2B9BBD6600770E43 /* HockeySDK.xcframework */; };
11-
6341B28D2BDC514C007EE8AC /* HockeySDK.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 63598C3C2B9BBD6600770E43 /* HockeySDK.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1211
63598C432BA0CCD500770E43 /* BugSplat.m in Sources */ = {isa = PBXBuildFile; fileRef = 63598C422BA0CCD500770E43 /* BugSplat.m */; };
1312
63598C442BA0CCD500770E43 /* BugSplat.m in Sources */ = {isa = PBXBuildFile; fileRef = 63598C422BA0CCD500770E43 /* BugSplat.m */; };
1413
637DF0452D49A49C00DDD8FE /* BugSplatUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 637DF0442D49A49C00DDD8FE /* BugSplatUtilities.h */; };
@@ -21,7 +20,6 @@
2120
63905E972D83912E009CDBEE /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 63905E952D83912E009CDBEE /* PrivacyInfo.xcprivacy */; };
2221
63C6E2032B92852500AED3E3 /* BugSplat.h in Headers */ = {isa = PBXBuildFile; fileRef = 63C6E1FE2B9283B000AED3E3 /* BugSplat.h */; settings = {ATTRIBUTES = (Public, ); }; };
2322
63D006F62BBF5F3600587FBF /* HockeySDK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63598C3C2B9BBD6600770E43 /* HockeySDK.xcframework */; };
24-
63D006F72BBF5F3600587FBF /* HockeySDK.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 63598C3C2B9BBD6600770E43 /* HockeySDK.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
2523
63D006FA2BBF785B00587FBF /* BugSplatMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 63D006F92BBF785B00587FBF /* BugSplatMac.h */; settings = {ATTRIBUTES = (Public, ); }; };
2624
63E233802B9710420066C7FC /* BugSplatAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E2337A2B9710410066C7FC /* BugSplatAttachment.m */; };
2725
63E233822B9710420066C7FC /* BugSplatAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 63E2337C2B9710420066C7FC /* BugSplatAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -30,34 +28,9 @@
3028
63E233862B9715B50066C7FC /* BugSplat.h in Headers */ = {isa = PBXBuildFile; fileRef = 63C6E1FE2B9283B000AED3E3 /* BugSplat.h */; settings = {ATTRIBUTES = (Public, ); }; };
3129
/* End PBXBuildFile section */
3230

33-
/* Begin PBXCopyFilesBuildPhase section */
34-
6341B28E2BDC514D007EE8AC /* Embed Frameworks */ = {
35-
isa = PBXCopyFilesBuildPhase;
36-
buildActionMask = 2147483647;
37-
dstPath = "";
38-
dstSubfolderSpec = 10;
39-
files = (
40-
6341B28D2BDC514C007EE8AC /* HockeySDK.xcframework in Embed Frameworks */,
41-
);
42-
name = "Embed Frameworks";
43-
runOnlyForDeploymentPostprocessing = 0;
44-
};
45-
63D006F82BBF5F3600587FBF /* Embed Frameworks */ = {
46-
isa = PBXCopyFilesBuildPhase;
47-
buildActionMask = 2147483647;
48-
dstPath = "";
49-
dstSubfolderSpec = 10;
50-
files = (
51-
63D006F72BBF5F3600587FBF /* HockeySDK.xcframework in Embed Frameworks */,
52-
);
53-
name = "Embed Frameworks";
54-
runOnlyForDeploymentPostprocessing = 0;
55-
};
56-
/* End PBXCopyFilesBuildPhase section */
57-
5831
/* Begin PBXFileReference section */
5932
6344718C2B9695C500EBEBEB /* BugSplatDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BugSplatDelegate.h; sourceTree = "<group>"; };
60-
63598C3C2B9BBD6600770E43 /* HockeySDK.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = HockeySDK.xcframework; path = Vendor/HockeySDK.xcframework; sourceTree = "<group>"; };
33+
63598C3C2B9BBD6600770E43 /* HockeySDK.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:TN6R4Q475K:BugSplat, LLC"; lastKnownFileType = wrapper.xcframework; name = HockeySDK.xcframework; path = Vendor/HockeySDK.xcframework; sourceTree = "<group>"; };
6134
63598C422BA0CCD500770E43 /* BugSplat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BugSplat.m; sourceTree = "<group>"; };
6235
637DF0442D49A49C00DDD8FE /* BugSplatUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugSplatUtilities.h; sourceTree = "<group>"; };
6336
637DF0472D49A50800DDD8FE /* BugSplatUtilities.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BugSplatUtilities.m; sourceTree = "<group>"; };
@@ -161,7 +134,6 @@
161134
63C6E1E92B92831A00AED3E3 /* Sources */,
162135
63C6E1EA2B92831A00AED3E3 /* Frameworks */,
163136
63C6E1EB2B92831A00AED3E3 /* Resources */,
164-
6341B28E2BDC514D007EE8AC /* Embed Frameworks */,
165137
);
166138
buildRules = (
167139
);
@@ -180,7 +152,6 @@
180152
63C6E1F82B9283B000AED3E3 /* Sources */,
181153
63C6E1F92B9283B000AED3E3 /* Frameworks */,
182154
63C6E1FA2B9283B000AED3E3 /* Resources */,
183-
63D006F82BBF5F3600587FBF /* Embed Frameworks */,
184155
);
185156
buildRules = (
186157
);
@@ -465,8 +436,6 @@
465436
63C6E2012B9283B000AED3E3 /* Debug */ = {
466437
isa = XCBuildConfiguration;
467438
buildSettings = {
468-
CODE_SIGN_IDENTITY = "";
469-
CODE_SIGN_STYLE = Automatic;
470439
COMBINE_HIDPI_IMAGES = YES;
471440
CURRENT_PROJECT_VERSION = 1;
472441
DEVELOPMENT_TEAM = TN6R4Q475K;
@@ -503,8 +472,6 @@
503472
63C6E2022B9283B000AED3E3 /* Release */ = {
504473
isa = XCBuildConfiguration;
505474
buildSettings = {
506-
CODE_SIGN_IDENTITY = "";
507-
CODE_SIGN_STYLE = Automatic;
508475
COMBINE_HIDPI_IMAGES = YES;
509476
CURRENT_PROJECT_VERSION = 1;
510477
DEVELOPMENT_TEAM = TN6R4Q475K;

Example_Apps/BugSplatTest-SwiftUI/BugSplatTest-SwiftUI.xcodeproj/project.pbxproj

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 54;
6+
objectVersion = 60;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -13,6 +13,10 @@
1313
63D006E92BBF4A5700587FBF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 63D006E82BBF4A5700587FBF /* Preview Assets.xcassets */; };
1414
63D006F22BBF4C3700587FBF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 63D006F12BBF4C3700587FBF /* Assets.xcassets */; };
1515
63D006FB2BC0B03700587FBF /* BugSplat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63D006F42BBF569200587FBF /* BugSplat.xcframework */; };
16+
63E96A142D973F1700C0C026 /* HockeySDK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A122D973F1700C0C026 /* HockeySDK.xcframework */; };
17+
63E96A152D973F1700C0C026 /* HockeySDK.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A122D973F1700C0C026 /* HockeySDK.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18+
63E96A162D973F1700C0C026 /* CrashReporter.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A132D973F1700C0C026 /* CrashReporter.xcframework */; };
19+
63E96A172D973F1700C0C026 /* CrashReporter.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A132D973F1700C0C026 /* CrashReporter.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1620
/* End PBXBuildFile section */
1721

1822
/* Begin PBXCopyFilesBuildPhase section */
@@ -27,6 +31,18 @@
2731
name = "Embed Frameworks";
2832
runOnlyForDeploymentPostprocessing = 0;
2933
};
34+
63E96A182D973F1700C0C026 /* Embed Frameworks */ = {
35+
isa = PBXCopyFilesBuildPhase;
36+
buildActionMask = 2147483647;
37+
dstPath = "";
38+
dstSubfolderSpec = 10;
39+
files = (
40+
63E96A172D973F1700C0C026 /* CrashReporter.xcframework in Embed Frameworks */,
41+
63E96A152D973F1700C0C026 /* HockeySDK.xcframework in Embed Frameworks */,
42+
);
43+
name = "Embed Frameworks";
44+
runOnlyForDeploymentPostprocessing = 0;
45+
};
3046
/* End PBXCopyFilesBuildPhase section */
3147

3248
/* Begin PBXFileReference section */
@@ -36,7 +52,9 @@
3652
63D006E32BBF4A5500587FBF /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
3753
63D006E82BBF4A5700587FBF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
3854
63D006F12BBF4C3700587FBF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = "BugSplatTest-SwiftUI/Assets.xcassets"; sourceTree = "<group>"; };
39-
63D006F42BBF569200587FBF /* BugSplat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = BugSplat.xcframework; path = ../../xcframeworks/BugSplat.xcframework; sourceTree = "<group>"; };
55+
63D006F42BBF569200587FBF /* BugSplat.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:TN6R4Q475K:BugSplat, LLC"; lastKnownFileType = wrapper.xcframework; name = BugSplat.xcframework; path = ../../xcframeworks/BugSplat.xcframework; sourceTree = "<group>"; };
56+
63E96A122D973F1700C0C026 /* HockeySDK.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:TN6R4Q475K:BugSplat, LLC"; lastKnownFileType = wrapper.xcframework; name = HockeySDK.xcframework; path = ../../Vendor/HockeySDK.xcframework; sourceTree = "<group>"; };
57+
63E96A132D973F1700C0C026 /* CrashReporter.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:TN6R4Q475K:BugSplat, LLC"; lastKnownFileType = wrapper.xcframework; name = CrashReporter.xcframework; path = ../../Vendor/CrashReporter.xcframework; sourceTree = "<group>"; };
4058
/* End PBXFileReference section */
4159

4260
/* Begin PBXFrameworksBuildPhase section */
@@ -45,6 +63,8 @@
4563
buildActionMask = 2147483647;
4664
files = (
4765
63D006FB2BC0B03700587FBF /* BugSplat.xcframework in Frameworks */,
66+
63E96A142D973F1700C0C026 /* HockeySDK.xcframework in Frameworks */,
67+
63E96A162D973F1700C0C026 /* CrashReporter.xcframework in Frameworks */,
4868
);
4969
runOnlyForDeploymentPostprocessing = 0;
5070
};
@@ -72,6 +92,8 @@
7292
63D006F32BBF569200587FBF /* Frameworks */ = {
7393
isa = PBXGroup;
7494
children = (
95+
63E96A132D973F1700C0C026 /* CrashReporter.xcframework */,
96+
63E96A122D973F1700C0C026 /* HockeySDK.xcframework */,
7597
63D006F42BBF569200587FBF /* BugSplat.xcframework */,
7698
);
7799
name = Frameworks;
@@ -108,6 +130,7 @@
108130
63D006DD2BBF4A5500587FBF /* Resources */,
109131
63D006FD2BC0B03700587FBF /* Embed Frameworks */,
110132
634ABCCF2BD85E8500926648 /* BugSplat Symbol Upload */,
133+
63E96A182D973F1700C0C026 /* Embed Frameworks */,
111134
);
112135
buildRules = (
113136
);

Example_Apps/BugSplatTest-UIKit-ObjC/BugSplatTest-UIKit-ObjC.xcodeproj/project.pbxproj

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 56;
6+
objectVersion = 60;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -16,6 +16,10 @@
1616
6341B25B2BDC3CA5007EE8AC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6341B25A2BDC3CA5007EE8AC /* main.m */; };
1717
6341B2632BDC3D0B007EE8AC /* BugSplat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6341B2622BDC3D0B007EE8AC /* BugSplat.xcframework */; };
1818
6341B2642BDC3D0B007EE8AC /* BugSplat.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6341B2622BDC3D0B007EE8AC /* BugSplat.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
19+
63E96A212D97403C00C0C026 /* CrashReporter.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A1F2D97403C00C0C026 /* CrashReporter.xcframework */; };
20+
63E96A222D97403C00C0C026 /* CrashReporter.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A1F2D97403C00C0C026 /* CrashReporter.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
21+
63E96A232D97403C00C0C026 /* HockeySDK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A202D97403C00C0C026 /* HockeySDK.xcframework */; };
22+
63E96A242D97403C00C0C026 /* HockeySDK.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 63E96A202D97403C00C0C026 /* HockeySDK.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1923
/* End PBXBuildFile section */
2024

2125
/* Begin PBXCopyFilesBuildPhase section */
@@ -25,6 +29,8 @@
2529
dstPath = "";
2630
dstSubfolderSpec = 10;
2731
files = (
32+
63E96A242D97403C00C0C026 /* HockeySDK.xcframework in Embed Frameworks */,
33+
63E96A222D97403C00C0C026 /* CrashReporter.xcframework in Embed Frameworks */,
2834
6341B2642BDC3D0B007EE8AC /* BugSplat.xcframework in Embed Frameworks */,
2935
);
3036
name = "Embed Frameworks";
@@ -46,13 +52,17 @@
4652
6341B2592BDC3CA5007EE8AC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
4753
6341B25A2BDC3CA5007EE8AC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
4854
6341B2622BDC3D0B007EE8AC /* BugSplat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = BugSplat.xcframework; path = ../../xcframeworks/BugSplat.xcframework; sourceTree = "<group>"; };
55+
63E96A1F2D97403C00C0C026 /* CrashReporter.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:TN6R4Q475K:BugSplat, LLC"; lastKnownFileType = wrapper.xcframework; name = CrashReporter.xcframework; path = ../../Vendor/CrashReporter.xcframework; sourceTree = "<group>"; };
56+
63E96A202D97403C00C0C026 /* HockeySDK.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:TN6R4Q475K:BugSplat, LLC"; lastKnownFileType = wrapper.xcframework; name = HockeySDK.xcframework; path = ../../Vendor/HockeySDK.xcframework; sourceTree = "<group>"; };
4957
/* End PBXFileReference section */
5058

5159
/* Begin PBXFrameworksBuildPhase section */
5260
6341B2422BDC3CA2007EE8AC /* Frameworks */ = {
5361
isa = PBXFrameworksBuildPhase;
5462
buildActionMask = 2147483647;
5563
files = (
64+
63E96A232D97403C00C0C026 /* HockeySDK.xcframework in Frameworks */,
65+
63E96A212D97403C00C0C026 /* CrashReporter.xcframework in Frameworks */,
5666
6341B2632BDC3D0B007EE8AC /* BugSplat.xcframework in Frameworks */,
5767
);
5868
runOnlyForDeploymentPostprocessing = 0;
@@ -98,6 +108,8 @@
98108
6341B2612BDC3D0A007EE8AC /* Frameworks */ = {
99109
isa = PBXGroup;
100110
children = (
111+
63E96A1F2D97403C00C0C026 /* CrashReporter.xcframework */,
112+
63E96A202D97403C00C0C026 /* HockeySDK.xcframework */,
101113
6341B2622BDC3D0B007EE8AC /* BugSplat.xcframework */,
102114
);
103115
name = Frameworks;

0 commit comments

Comments
 (0)