crowdin/mobile-sdk-ios

watchOS comparability issue

Radzievskyi opened this issue · 9 comments

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Create watchOS project
  2. Add CrowdinSDK with Swift Package: https://github.com/crowdin/mobile-sdk-ios.git
  3. In the WatchKit Extension module open:
    Build Phases -> Link Binary With Libraries
    and add CrowdinSDK
  4. Open ExtensionDelegate.swift and add
    import CrowdinSDK
  5. Try build project for launch on Apple Watch or Apple Watch Simulator
  6. You will see 2 errors in LoginFeature.swift (from CrowdinSDK) on line:
    import SafariServices
    Error:
    No such module 'SafariServices'
    and:
    SafariServices is not available when building for watchOS Simulator. Consider using #if !os(watchOS) to conditionally import this framework.

Screenshots
Screen Shot 2022-04-18 at 13 08 27

Smartphone (please complete the following information):

  • Device: Simulator Apple Watch Series 7
  • OS: watchOS 8.3

hi team
what are the next steps here? How can we understand when this can be fixed?

This problem is blocking us from fully switching to Crowdin as a source of localization, as our application has to work on both iOS and watchOS

@vance-od replied via email
As soon as we will have any updates, we will let you know immediately

@Radzievskyi Hi. Can you try to integrate SDK from the #185 branch? watchOS support should be fixed.

.package(url: "https://github.com/daltoniam/Starscream.git", .branch("#185"))

@serhii-londar Hello! Thank you for your update!

Unfortunately I have an issue with launch application with integrated branch “#185”.

For test it.

  1. I created a new project for iOS with Swift

  2. I added Swift package:
    Screen-Shot-2022-05-11-at-10 42 20

  3. Added to AppDelegate.swift simple initialize Crowdin SDK code, and I get 2 errors:
    Screen-Shot-2022-05-11-at-10 45 10

Please help me fix this problem.

@Radzievskyi The reason is that SDK for watchOS doesn't support login and related features(screenshots and real-time updates), it supports only content delivery feature.
We will note that in Readme.
Please try the following initialisation:

let crowdinProviderConfig = CrowdinProviderConfig(hashString: distributionHash,
                                                          sourceLanguage: sourceLanguage)
let crowdinSDKConfig = CrowdinSDKConfig.config().with(crowdinProviderConfig: crowdinProviderConfig)
CrowdinSDK.startWithConfig(crowdinSDKConfig, completion: { })

@Radzievskyi Any updates?

@serhii-londar Thank you! Look like is work. Now I try integrate it to our main project. And I will do more detail tests.

@serhii-londar I integrated SDK to the main project. Is work. Thank you!

What we should do next? Use branch #185 or you will merge it with main?

@Radzievskyi Thank you for the testing! We will merge it to master and prepare a new release.