【发布时间】:2018-02-26 15:26:29
【问题描述】:
我正在使用 ionic 1 创建一个 android/ios 应用程序。
版本列表。
cordova: 7.0.1
ionic: 2.2.2
ios-deploy: 1.9.1
ios-sim: 6.0.0
node: v8.3.0
我使用的插件列表。
cordova-plugin-compat 1.1.0 "Compat"
cordova-plugin-console 1.0.7 "Console"
cordova-plugin-device 1.1.6 "Device"
cordova-plugin-facebook4 1.7.4 "Facebook Connect"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-firebase 0.1.24 "Google Firebase Plugin"
cordova-plugin-geolocation 2.4.3 "Geolocation"
cordova-plugin-ignore-lint-translation 0.0.1 "cordova-plugin-ignore-lint-translation"
cordova-plugin-image-picker 1.1.1 "ImagePicker"
cordova-plugin-inappbrowser 1.7.1 "InAppBrowser"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-statusbar 2.2.3 "StatusBar"
cordova-plugin-whitelist 1.3.2 "Whitelist"
cordova.plugins.diagnostic 3.5.0 "Diagnostic"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-push 1.10.5 "PushPlugin"
我使用 fcm 实现了推送通知,并且使用 phonegap-plugin-push 成功推送了 android。
但是 ios push 不能通过 phonegap-plugin-push 工作,所以我安装了一个额外的插件。但在ionic run 时失败。
(请注意,在安装额外插件之前,android/ios 都在 ionic 运行中成功。)
如果我安装cordova-plugin-fcm并运行ionic platform add ios命令,会出现以下错误。
duplicate symbol _OBJC_METACLASS_$_GtalkSelectiveAck in:
/Users/pbh/project/frontend/luxlab_front/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a(GtalkExtensions.pb.o)
럭스랩/Plugins/cordova-plugin-fcm/FirebaseMessaging.framework/FirebaseMessaging(GtalkExtensions.pb_3df3b2963f0a00a0a06e6bc7758c4642.o)
ld: 33 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** ARCHIVE FAILED **
The following build commands failed:
Ld /Users/pbh/Library/Developer/Xcode/DerivedData/럭스랩-frtekduffawmjpcdcfcknnsswolo/Build/Intermediates/ArchiveIntermediates/럭스랩/IntermediateBuildFilesPath/럭스랩.build/Debug-iphoneos/럭스랩.build/Objects-normal/arm64/럭스랩 normal arm64
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/pbh/project/frontend/luxlab_front/platforms/ios/cordova/build-debug.xcconfig,-workspace,럭스랩.xcworkspace,-scheme,럭스랩,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,럭스랩.xcarchive,archive,CONFIGURATION_BUILD_DIR=/Users/pbh/project/frontend/luxlab_front/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/Users/pbh/project/frontend/luxlab_front/platforms/ios/build/sharedpch
如果我运行ionic run android,我会收到如下错误。
:processDebugGoogleServices
Found com.google.android.gms:play-services-gcm:11+, but version 9.0.0 is needed for the google-services plugin.
:processDebugGoogleServices FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':processDebugGoogleServices'.
>
Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.0.0.
* Try:
Run with
--stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 2.34 secs
Error: /Users/pbh/project/frontend/luxlab_front/platforms/android/gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':processDebugGoogleServices'.
> Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.0.0.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
我再次尝试使用 cordova-plugin-firebase 插件。 但是在构建应用程序时它也会失败。
ionic run android
/Users/pbh/project/frontend/luxlab_front/platforms/android/res/values/strings.xml: Error: Found item String/google_app_id more than one time
:mergeDebugResources
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':mergeDebugResources'.
> /Users/pbh/project/frontend/luxlab_front/platforms/android/res/values/strings.xml: Error: Found item String/google_app_id more than one time
* Try:
Run with --stacktrace
option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 11.454 secs
Error: /Users/pbh/project/frontend/luxlab_front/platforms/android/gradlew: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':mergeDebugResources'.
> /Users/pbh/project/frontend/luxlab_front/platforms/android/res/values/strings.xml: Error: Found item String/google_app_id more than one time
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
ionic run ios
duplicate symbol _OBJC_METACLASS_$_GtalkAppData in:
/Users/pbh/project/frontend/luxlab_front/platforms/ios/Pods/GoogleCloudMessaging/Libraries/libGcmLib.a(GtalkCore.pb.o)
럭스랩/Plugins/cordova-plugin-firebase/FirebaseMessaging.framework/FirebaseMessaging(GtalkCore.pbobjc_4adff0f7bd059c687019835bc9c59b23.o)
ld: 42 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** ARCHIVE FAILED **
The following build commands failed:
Ld /Users/pbh/Library/Developer/Xcode/DerivedData/럭스랩-frtekduffawmjpcdcfcknnsswolo/Build/Intermediates/ArchiveIntermediates/럭스랩/IntermediateBuildFilesPath/럭스랩.build/Debug-iphoneos/럭스랩.build/Objects-normal/arm64/럭스랩 normal arm64
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/pbh/project/frontend/luxlab_front/platforms/ios/cordova/build-debug.xcconfig,-workspace,럭스랩.xcworkspace,-scheme,럭스랩,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,럭스랩.xcarchive,archive,CONFIGURATION_BUILD_DIR=/Users/pbh/project/frontend/luxlab_front/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/Users/pbh/project/frontend/luxlab_front/platforms/ios/build/sharedpch
我不知道是什么问题。
有没有人解决过同样的问题?
这是 phonegap-plugin-push 和 cordova-plugin-fcm 或 cordova-plugin-firebase 之间的冲突吗?
【问题讨论】:
-
Android 问题通常通过在 Android Studio 中更新 Repistories 和 Google Play Services 并检查您的路径变量来解决
标签: android ios firebase ionic-framework cordova-plugin-fcm