getAuthService authSDK returned with ZoomSDKError(rawValue: 3)

I have my own application and have imported all the Zoom SDK Frameworks. However, I could not authenticate with JWT.

Which version?

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Download from marketplace
  2. Launched Sample App and verified the JWT token generated is working. Join Meeting without Login works as expected in the Sample App.
  3. Drag and drop the folder ZoomSDK into my own application and add all the embeded binaries and Frameworks.
  4. Use the code below
let params = ZoomSDKInitParams()
params.needCustomizedUI = false;
params.teamIdentifier = nil;
params.enableLog = true;
params.logFileSize = 50;

ZoomSDK.shared().initSDK(with: params)
let sdk: ZoomSDK = ZoomSDK.shared()
    // set zoom domain
sdk.zoomDomain = kZoomSDKDomain  // set to ""

let jwt = JWTTOKEN // generated from 

let authContext = ZoomSDKAuthContext()
authContext.jwtToken = jwt
let authService = ZoomSDK.shared().getAuthService()
let authDelegate = ZMAuthDelegate(). // a class similar to ZMSDKAuthHelper in the sample app.
authService?.delegate = authDelegate
let response = authService!.sdkAuth(authContext)
if response == ZoomSDKError_Success{
} else {

Console Output:

ZoomSDKError(rawValue: 3)

Some of the other posts said to check if the ZoomSDK is in the same folderScreen Shot 2021-02-16 at 12.41.56 PM

Smartphone (please complete the following information):

  • Device: Macbook Pro
  • OS: macOS Catalina
  • Version 10.15.7

Additional context
Any help is appreciated! Thanks in advance!

I’ve read through many similar issues in the forum and tried the suggested solutions, but cannot seem to identify the problem here. It’s been a couple days that I’m stuck on this error. Could someone offer some insights please?

Hi @m.zhang, thanks for the post.

Can you please provide the content of your JWT with all credentials edited out (i.e. replace SDK key/secret with arbitrary values) so that we may investigate further?


Hi @jon.lieblich,

For sure. This is the code I wrote to generate the JWT token with JSONWebToken v2.2.0 library which is one of the listed libraries from

let issuedAt: Int = Int(Date().timeIntervalSince1970)
let expAt: Int = issuedAt + 2*24*60*60
let payload = ["appKey": appKey,
  "iat": issuedAt, // timestamp of now in epoch time
  "exp": expAt, // timestamp of expiration (max gap is 2 days)
  "tokenExp": expAt] as [String : Any]
let jwt = JWT.encode(claims: payload, algorithm: .hs256( .utf8)!))

Here’s the Payload section generated by the code above.
[“iat”: 1613587687, “exp”: 1613760487, “tokenExp”: 1613760487, “appKey”: “AppKeyFromMarketplace”]

With the jwt token printed, I could run the sample application no problem at all. Maybe you can spot some caveats that I didn’t find? Thank you!

Hi @m.zhang,

Everything appears to be correct in terms of the JWT format, especially since it runs fine in our sample app. Can you please confirm that you have correctly imported the SDK package into your project by comparing your Build Phases tab against that of the sample app? Let me know if you’re uncertain about anything you see and I’ll be happy to help. :slightly_smiling_face:


Hi @jon.lieblich ,

I was comparing the Sample App Xcode project and mine just now and I realized that in the Xcode project, Build Phases tab, under Copy Files, I don’t have all of the .bundle, .app files listed as they appeared in the Sample App. Therefore I added them to my Copy Files with destination set to Frameworks. However, when I build, I encountered this Code Sign issue
Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's. I read on the other post that I’m suppose to re-sign the library files. This is my first time doing this so I’m very confused about what need to be done to re-sign. Do you mind give me a bit more instructions?
Thank you!

Hi @m.zhang,

Yes, you seem to have the right idea that you will need to re-sign some of the SDK files. :slightly_smiling_face: (Note: this should only be necessary for files with the app file extension) Here is some documentation from Apple on the topic that should be extremely helpful.


1 Like

Yeeee! I resolved this problem. Like @jon.lieblich mentioned, I only needed to re-sign the .app files and the command I used is codesign --force --verify --timestamp --verbose --options=runtime --sign "identity" which comes from this other post in the forum.
Thank you @jon.lieblich for your help!

That’s great to hear. :slightly_smiling_face:

Please don’t hesitate to reach back out with a new post if you encounter any other issues!

1 Like