Skip to content
This repository was archived by the owner on Feb 10, 2026. It is now read-only.

Commit 662ef7a

Browse files
FCE-2382: Fix appintentsmetadataprocessor with screen sharing target (#526)
## Description - Separate targets to resolve AppIntents metadata error. ## Motivation and Context - When using Broadcast Extension it was not possible to archive the app due to the appintentsmetadataprocessor error. ## Documentation impact - [ ] Documentation update required - [ ] Documentation updated [in another PR](_) - [x] No documentation update required ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
1 parent af6bfb9 commit 662ef7a

8 files changed

Lines changed: 63 additions & 26 deletions

File tree

.github/workflows/release.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,12 @@ jobs:
1212
- name: Deploy to Cocoapods
1313
run: |
1414
set -eo pipefail
15-
pod lib lint --allow-warnings --verbose
16-
pod trunk push --allow-warnings --verbose
15+
16+
pod lib lint FishjamCloudClient.podspec --allow-warnings --verbose
17+
pod lib lint FishjamCloudBroadcastClient.podspec --allow-warnings --verbose
18+
19+
pod trunk push FishjamCloudClient.podspec --allow-warnings --verbose
20+
pod trunk push FishjamCloudBroadcastClient.podspec --allow-warnings --verbose
1721
env:
1822
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
1923
publish-android-client:
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
require 'json'
2+
3+
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
4+
base_content = File.read(File.join(__dir__, 'FishjamCloudClient.podspec'))
5+
6+
base_config = {
7+
homepage: base_content[/s\.homepage\s*=\s*['"]([^'"]+)['"]/, 1],
8+
license_type: base_content[/s\.license\s*=\s*\{[^}]*:type\s*=>\s*['"]([^'"]+)['"]/, 1],
9+
license_file: base_content[/s\.license\s*=\s*\{[^}]*:file\s*=>\s*['"]([^'"]+)['"]/, 1],
10+
author_name: base_content[/s\.author\s*=\s*\{\s*['"]([^'"]+)['"]/, 1],
11+
author_url: base_content[/s\.author\s*=\s*\{[^}]*['"][^'"]*['"]\s*=>\s*['"]([^'"]+)['"]/, 1],
12+
deployment_target: base_content[/s\.ios\.deployment_target\s*=\s*['"]([^'"]+)['"]/, 1],
13+
swift_version: base_content[/s\.swift_version\s*=\s*['"]([^'"]+)['"]/, 1],
14+
resources: base_content[/s\.resources\s*=\s*['"]([^'"]+)['"]/, 1],
15+
xcconfig_key: base_content[/s\.pod_target_xcconfig\s*=\s*\{\s*['"]([^'"]+)['"]/, 1],
16+
xcconfig_value: base_content[/s\.pod_target_xcconfig\s*=\s*\{[^}]*['"][^'"]*['"]\s*=>\s*['"]([^'"]+)['"]/, 1],
17+
webrtc_version: base_content[/s\.dependency\s+['"]WebRTC-SDK['"]\s*,\s*['"]([^'"]+)['"]/, 1],
18+
swift_protobuf_version: base_content[/s\.dependency\s+['"]SwiftProtobuf['"]\s*,\s*['"]([^'"]+)['"]/, 1]
19+
}
20+
21+
Pod::Spec.new do |s|
22+
s.name = 'FishjamCloudBroadcastClient'
23+
s.version = package['version']
24+
s.summary = 'Fishjam Broadcast Extension SDK for iOS screen sharing and broadcast functionality.'
25+
26+
s.homepage = base_config[:homepage]
27+
s.license = { :type => base_config[:license_type], :file => base_config[:license_file] }
28+
s.author = { base_config[:author_name] => base_config[:author_url] }
29+
s.source = { :git => base_config[:homepage] + '.git', :tag => s.version.to_s }
30+
31+
s.ios.deployment_target = base_config[:deployment_target]
32+
s.swift_version = base_config[:swift_version]
33+
34+
s.source_files = "packages/ios-client/Sources/FishjamClient/media/BroadcastSampleSource.swift", "packages/ios-client/Sources/FishjamClient/ipc/**/*.{h,m,mm,swift}"
35+
s.resources = base_config[:resources]
36+
37+
s.pod_target_xcconfig = { base_config[:xcconfig_key] => base_config[:xcconfig_value] }
38+
39+
s.dependency 'WebRTC-SDK', base_config[:webrtc_version]
40+
s.dependency 'SwiftProtobuf', base_config[:swift_protobuf_version]
41+
end

FishjamCloudClient.podspec

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
#
2-
# Be sure to run `pod lib lint FishjamClient.podspec' to ensure this is a
3-
# valid spec before submitting.
4-
51
require 'json'
62

73
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
@@ -29,8 +25,4 @@ Pod::Spec.new do |s|
2925
s.dependency 'Starscream', '~> 4.0.0'
3026
s.dependency 'PromisesSwift'
3127
s.dependency 'SwiftLogJellyfish', '1.5.2'
32-
33-
s.subspec "Broadcast" do |spec|
34-
spec.source_files = "packages/ios-client/Sources/FishjamClient/media/BroadcastSampleSource.swift", "packages/ios-client/Sources/FishjamClient/ipc/**/*.{h,m,mm,swift}"
35-
end
3628
end

RELEASE.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
## Release process:
22

33
1. Create new branch:
4-
54
- update `version` to x.y.z in [package.json](./package.json)
65
- update `version` to x.y.z in [package.json](./packages/react-native-client/package.json)
7-
- update `s.version` to x.y.z in [FishjamCloudClient.podspec](./FishjamCloudClient.podspec)
8-
- update `s.dependency 'FishjamCloudClient'` to x.y.z in [RNFishjamClient.podspec](./packages/react-native-client/ios/RNFishjamClient.podspec)
9-
- update `packageVersion` to x.y.z in [build.gradle](./packages/react-native-client/android/build.gradle)
106

117
1. Commit, create pull request and merge it
128

common/plugins/src/with-custom-config-ios.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ const replaceCloudClientForExtension = (
1010
podfileContent: string,
1111
extensionTargetName?: string,
1212
) => {
13-
const extTargetName = extensionTargetName || 'FishjamScreenBroadcastExtension';
14-
const podToReplace = "pod 'FishjamCloudClient/Broadcast'";
13+
const extTargetName =
14+
extensionTargetName || 'FishjamScreenBroadcastExtension';
15+
const podToReplace = "pod 'FishjamCloudBroadcastClient'";
1516
const replacementPod = `
1617
${INFO_GENERATED_COMMENT_IOS}
17-
pod 'FishjamCloudClient/Broadcast', :path => '../../../'`;
18+
pod 'FishjamCloudBroadcastClient', :path => '../../../'`;
1819

1920
const targetRegex = new RegExp(
2021
`target '${extTargetName}' do[\\s\\S]*?${podToReplace}[\\s\\S]*?end`,
@@ -39,14 +40,17 @@ const replaceCloudClientForMainApp = (
3940
return podfileContent;
4041
};
4142

42-
export const withCustomConfigIos: ConfigPlugin<{ targetName: string; extensionTargetName?: string }> = (
43-
config,
44-
{ targetName, extensionTargetName },
45-
) => {
43+
export const withCustomConfigIos: ConfigPlugin<{
44+
targetName: string;
45+
extensionTargetName?: string;
46+
}> = (config, { targetName, extensionTargetName }) => {
4647
config = withPodfile(config, (configuration) => {
4748
let podfile = configuration.modResults.contents;
4849

49-
podfile = removeGeneratedBlockIos(podfile, INFO_GENERATED_COMMENT_IOS.trim());
50+
podfile = removeGeneratedBlockIos(
51+
podfile,
52+
INFO_GENERATED_COMMENT_IOS.trim(),
53+
);
5054

5155
podfile = replaceCloudClientForExtension(podfile, extensionTargetName);
5256
podfile = replaceCloudClientForMainApp(targetName, podfile);

internal/fishjam-chat/eas.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"build": {
77
"base": {
88
"ios": {
9-
"image": "macos-sequoia-15.3-xcode-16.2"
9+
"image": "latest"
1010
}
1111
},
1212
"development": {

packages/react-native-client/plugin/broadcastExtensionFiles/FishjamBroadcastSampleHandler.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import FishjamCloudClient
1+
import FishjamCloudBroadcastClient
22
import Foundation
33
import ReplayKit
44
import WebRTC

packages/react-native-client/plugin/src/withFishjamIos.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function getSbeTargetName(props: FishjamPluginOptions) {
1919

2020
export function getSbePodfileSnippet(props: FishjamPluginOptions) {
2121
const targetName = getSbeTargetName(props);
22-
return `\ntarget '${targetName}' do\n pod 'FishjamCloudClient/Broadcast'\nend`;
22+
return `\ntarget '${targetName}' do\n pod 'FishjamCloudBroadcastClient'\nend`;
2323
}
2424

2525
const TARGETED_DEVICE_FAMILY = `"1,2"`;
@@ -46,7 +46,7 @@ async function updateFileWithRegex(
4646

4747
/**
4848
* Inserts a required target to Podfile.
49-
* This is needed to provide the dependency of FishjamCloudClient/Broadcast to the extension.
49+
* This is needed to provide the dependency of FishjamCloudBroadcastClient to the extension.
5050
*/
5151
async function updatePodfile(iosPath: string, props: FishjamPluginOptions) {
5252
const podfileSnippet = getSbePodfileSnippet(props);

0 commit comments

Comments
 (0)