Cannot even run the project

HI, Michael
The meetingservice’s issues was closed for me. Thank you.

Best regards, Vasilij Orlov.

Hi Mohammed.
The sample application does not work for me too. Let’s try to integrade Zoom SDK into your application and use sdkKey and sdkSecret from your zoom application account.

Best regards, Vasilij Orlov.

how to integrate it if it doesnt work in the first place

Hey @mohammed.adel.sorour and @vasiliorlov1984,

I am sorry you are running into issues with the sample app. Let me pull down a fresh clone of the repo and provide some steps with screenshots to help. For now, lets ignore using a JWT and verify we can get the sample app working for you :slight_smile:

After downloading the repo, opening it in Xcode, fixing the provisioning profile errors, then running, you should see something like this:

This error means the SDK has not been authenticated. To resolve:

  1. Navigate to AppDelegate.h and input “zoom.us” in kSDKDomain:
  2. Now, navigate to SDKAuthPresenter.m. Replace authService.jwtToken = jwtToken; with these lines
  3. Now we have to supply these empty strings with our SDK Key and SDK Secret. Navigate to https://marketplace.zoom.us/, sign in, then click “Develop” -> “Build an app”
  4. You should now land on a screen like this:
  5. Click “View here” in the “SDK” tile and you will now see a page like this:
  6. Copy the value inside of “SDK Key” and place it in authService.clientKey, then copy the value inside of “SDK Secret” and place it in authService.clientSecret:
  7. Run the app again and you should now see this:
  8. If you click “Meet now” an alert will present:
  9. At this point, nothing will happen upon selecting “Zoom meeting” or “App share meeting”. This is because the user has not logged into Zoom yet. Users can join meetings without having to log in, but user’s cannot start meetings unless they are logged in, or unless a special token is provided. So from here, the user can either log into Zoom within the sample app, or the user can join an ongoing meeting by clicking “Join a Meeting”. I will provide instructions for both.
  10. To log in, click the settings icon in the top right corner, the Click “Sign in”:

    Click “Login with Email”:

    Enter valid Zoom credentials, then click OK:

    Wait a short amount of time, then click “Meet Now” -> “Zoom meeting”. If all went well, you should now be in a meeting:
  11. To join a meeting, instead of logging in and starting a meeting, simply begin a Zoom meeting on another device using the flagship Zoom application or from a browser. Here I have started a meeting on my laptop:

    While this meeting is going I click “Join a meeting” inside the sample application, and enter the meeting number and password:

    If the meeting number and password are valid you should see this preview screen":
    :
    Then a waiting room:

    Then after admission, you should see the meeting:

By following these steps, are you successfully able to get into a Zoom meeting through the sample application?

Thanks!
Michael

1 Like

Michael
accept my endless gratitude
i really admire and appreciate your effort explaining every detail in the Zoom sdk
filling the gaps in the documentation

thank you man
i followed every step in your post
and i finally managed to run the sample
but i can’t find share screen feature although i tried to run
MobileRTCSampleShareScreen

1 Like

Hey @mohammed.adel.sorour,

Awesome! I am super happy to hear :slight_smile:

You are correct. The provided instructions above ignore screensharing, so that we could make sure that the app can get running first. Screensharing is a bit of an involved process, so we have written a tutorial here: https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/mastering-zoom-sdk/in-meeting-function/screen-share. The tutorial is not directly for the sample application, but the steps are pretty much the same.

You will notice that the sample application has two targets, “MobileRTCSample” and “MobileRTCSampleScreenShare”:
Screen Shot 2020-11-24 at 12.32.32 PM

The first target contains all of the code for running the app, using the SDK, etc…
The second target is an app extension that provides the ability to broadcast your screen.

Both targets require provisioning profiles, so make sure you are not seeing errors in the “Signing and Capabilities” for each target.

To get screensharing to work you will need a valid app group id. This ID will be provided to both targets:

And will also need to be provided to the context object within SDKInitPresenter.m:

And will also need to be provided to the screenShareService within SampleHandler.mm:

Make sure that your appgroupID is the same in all four of those places or else the screensharing will not work. The appgroupID that is currently in the sample application is just an example and will not work for you.

You can also share just a single view in the sample application.
To do this, click the settings button in the top right corner of the screen from the landing view (before entering a meeting). Then click “Meeting Settings”:

Toggle Custom Meeting on:

Navigate back to the landing view and click “Meet Now” then click “Custom Meeting”:


Then click the “Start Share” button at the bottom of the screen.

This will demonstrate how to use the appShareWithView function using a webview:

I will point out though, that sharing a single view is not the recommended method of screensharing for the iOS SDK. There are limitations to this method, and broadcasting should be used instead.

Thanks!
Michael

Cheers
i managed to share the custom meeting with in app Webview
but still after following your great steps i can’t find share screen button
only share content like a custom meeting
i want a full share screen feature so i can share my content of the phone

thank you @Michael_Condon
i managed finally to share the scree after following ur steps

my technical question is
1- is it possible (easy) to implement the same sdk in my app iOS app
2- is it a must to do it in Objective C

my business question :slight_smile:
1-our domain is to do a 1 to 1 video/audio call meeting with share screen (later more than 2 participant )
our scale is very narrow only like 15-20 min meeting

but we want our participant whom will join the meeting not to have zoom accounts ,we only require them to have account on our side

2-so what will be the scenario ,

a- can we use PreMeetingServices to create Scheduled meeting from the back end
b- should every meeting have a host in it?
c- can the share screen feature be available by default without asking the host for approval

Hey @mohammed.adel.sorour

I am glad you got it working :slight_smile:

To get the share screen button to show, you must implement the onClickShareScreen delegate function somewhere.

The steps are very similar in your own application, I would follow this tutorial: https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/mastering-zoom-sdk/in-meeting-function/screen-share

Nope, you can do this is Swift :slight_smile: However, follow the tutorial closely because there are a couple steps that are different depending on what language you are using.

This is possible. If these users have access to the meeting number and password, they can join the meeting as a guest. If they do not have access to the meeting number and password (the are creating a new meeting), they must sign into Zoom, or you must provide a ZAK token to the SDK https://marketplace.zoom.us/docs/sdk/native-sdks/credentials#zak

Yes

Yes, however you can specify that users can join the meeting before the host. Is there a reason you would not want a host?

No. You can use appShareWithView to share a UIView without permission from the user, however Apple enforces that broadcasting must be controlled by the user.

Thanks!
Michael

thanks Michael
now after finishing all theses steps how to connect my app with zoom ios sdk
my app is written in swift not objective c

Hey @mohammed.adel.sorour,

To integrate the SDK into your own application, you need to import the frameworks into your Xcode project. https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/getting-started/integration
Once they have been imported, you can call the functions within the frameworks to use the SDK.
The frameworks are written in Objective-C, but their functions can be called directly in Swift.
For example:
To get the shared instance of the SDK, you would use

  • (MobileRTC * _Nonnull )sharedRTC;
    That is defined in MobileRTC.H.

To do this in Objective-C, you would say:
[MobileRTC sharedInstance];
But in swift, you would say:
MobileRTC.shared()

You can refer to this repo: https://github.com/zoom/client-sdk-iOS-getting-started.
To see an example of a simple application in both objective-c and swift.

Thanks!
Michael

i tried to import frameworks in my project
i imported MobileRTC.framework

i am using xcode 11.3.1
i think the * Embedded Binaries section is gone
now it is called Fameworks,Libraries and embedded content

i also did
" Then navigate to Build Phases > Copy Bundle Resources , and add MobileRTCResources.bundle :"

but when i tried to run the project :

i managed to fix the last import issues

1- my question is can i just copy the mobileRTCexample classes and files to my project and link my project with theses files or should i implement every feature by my self?
2- i tried to follow the documentation by i found these errors:

Hey @mohammed.adel.sorour,

I am glad you got your library error resolved! :slight_smile:

Since you are using Swift, you should be able to refer to the enum cases with “.casename” instead of “enumname_casename”
So instead of MobileRTCAuthError_Success, you should do .success

Let me know if that works.
Thanks!
Michael

Can i load all sample classes and then link my app with these classes (view controller)?

Hey @mohammed.adel.sorour,

If you have imported MobileRTC.framework into Xcode properly, you can use all classes within MobileRTC.framework in any of your files by adding
import MobileRTC at the top of the file you want to use it in.

Thanks!
Michael

Thanks @Michael_Condon
i finally managed to link my project with zoom sdk

now i can start instant meetings and join meeting

my problem now is

1- after implementing the share screen part(i hope so) i would like to have this option inside the original app
because share screen option is not available in the main app
i need the screen option to be visible in the share sheet just like native zoom app ios

i would to save the user credentials in locally like in the zoomsdkexample
so that the user shouldn’t enter the password every time

@Michael_Condon
i managed to listen to MobileRTCMeetingServiceDelegate

finally.

my last question(i hope ) i would like to dismiss the viewcontroller that i open the meeting from it after ending the meeting
i would like to dismiss my controller after ending meeting

so what to call inside .ended?

Hey @mohammed.adel.sorour,

To be notified when the meeting has ended you can use the callback onMeetingEndedReason within MobileRTCMeetingServiceDelegate. To dismiss a viewcontroller you can call dismiss(animated: true, completion: nil) from within the viewcontroller.

Thanks!
Michael

right now the app crashes when i close the meeting for the second time
the sdk provide no stack trace to trace the error

Thread 1: EXC_BAD_ACCESS (code=1, address=0x1000000008)

note that i am navigation to the view controller from flutter action button
and i am doing the heavy lifting inside the iOS
i managed finally to implement the full scenario with android thanks to @jon.zoom
he is a very humble person , he helped me to fully implement android sdk with flutter .

i would like to have your help @Michael_Condon so that i can ship both apps to store

my issue now is with iOS version only