Developer Notes
  • 17 May 2023
  • 1 Minute to read
  • Dark
    Light
  • PDF

Developer Notes

  • Dark
    Light
  • PDF

Article Summary

If using Xcode 14.3...

Apple has introduced a new module verifier in Xcode 14.3 which causes some issues when building some Cocoapods.  To work around this, add the following snipped to your application's Podfile:

post_install do |installer|
    installer.generated_projects.each do |project|
          project.targets.each do |target|
              target.build_configurations.each do |config|
                  config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
               end
          end
   end
end

Packaging your App with "Build Libraries for Distribution=No"

Problem

When your app has multiple framework dependencies in addition the ScreenMeetSDK Cocoapod, you may need to build your app with this build setting set to "No" at the project level.

When setting this value to "No", the app may crash with dependency issues related to the ScreenMeetSDK:

dyld[13929]: Symbol not found: _$s8SocketIO0A11ClientEventO10disconnectyA2CmFWC 

Referenced from: <...> /private/var/containers/Bundle/Application/.../ScreenMeet.app/Frameworks/ScreenMeetLive.framework/ScreenMeetLive 

Expected in: <...> /private/var/containers/Bundle/Application/.../ScreenMeet.app/Frameworks/SocketIO.framework/SocketIO 

Solution

The included ScreenMeetSDK framework needs to be built with this value set to "YES".  To ensure this happens, you can add this to  section to the end of your Podfile:

post_install do |installer|
	installer.pods_project.targets.each do |target|
		target.build_configurations.each do |config|
			config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
		end
	end
end

Support for the M1 (arm) Macbooks

With the latest arm-architecture Macbooks, there may be issues building in Xcode for the simulator.  To work around this issue, you have two options:

  1. OPTION 1:  Make some minor changes to your project after the pod install command.
    1. In Xcode, go to Pods --> Socket.IO-Client-Swift --> Build Active Architecture Only --> Set to "NO"
    2. In Xcode, go to Pods --> Starscream --> Build Active Architecture Only --> Set to "NO"
  2. OPTION 2: Run Xcode under Rosetta. Right-click on the Xcode.app and go to Get Info. Mark the checkbox "Open using Rosetta".



Was this article helpful?