akofman / cordova-plugin-add-swift-support

:hammer: Swiftify your Cordova app !
MIT License
117 stars 110 forks source link

Swift 4 is failing with latest cordova #50

Closed ghost closed 5 years ago

ghost commented 6 years ago

I tried to translate cordova-plugin-fcm to swift: https://github.com/fssrepository/cordova-plugin-fcm-modified

1, The Pod file hasn't go use_framework! line, unluckily cordova does not add it automatically. I have tried a cocoapod support plugin, but it was outdated, and decided to make it manually for a while, until cordova does not include that functionality. 2, Swift 3 was supported by cordova and was working, but on swift 4 the class was found but the proxy methods are not. 3, i would have liked to add additional header to the import "AppDelegate.h", but there wasn't any option for that. Anyway i think the AppDelegate.h file is missing simply from the bridge header. I have seen that i can add additional bridging header, but the configuration would be superfluous, so i would like to able to configure in the plugin.xml.

4, In the FCM the google toolbox for mac framework was not found (i installed from the pod, not included as the version does), i have no idea what i have missed, the build was working on XCode 9, but in command line not. (i have used xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO to investigate) Can you help me to make it work?

I haven't made any extra flag in the config.xml. It would be a good test with a real world example for this plugin also. Don't worry about fcm, as it was starting up on Xcode - no remote messaging, but it showed in the log. My main problem was that it's not building from command line using cordova build ios.

import <Cordova/CDV.h> was also not available from that location, as unfortunately the build folder contained an emulator folder with the Cordova headers inside (cordova 8.0.0 - cordova ios 4.5.4), so it was out of the header lookup libraries.

I'm not expert in IOS development, i just wanted to exercise, whether it's working.