【问题标题】:Can't build app for iOS devices with Ionic 3无法使用 Ionic 3 为 iOS 设备构建应用程序
【发布时间】:2018-11-07 20:17:01
【问题描述】:

我正在开发适用于 Android 和 iOS 的应用程序。 我正在使用 firebase 接收推送通知。当我为 Android 构建时,它运行良好,但在 iOS 上没有运气。 我遵循了一个 firebase 教程,将GoogleService.plist 放在资源文件夹中。我已经在 Apple Developer 网站上创建了身份验证密钥。我有一个付费的 Apple 开发者帐户。 我使用cocoapods 安装项目的依赖项。

但是,当我使用 Xcode 10 运行时,我得到了这个错误:

Plugins/cordova-plugin-firebase/Protobuf.framework/Protobuf(Wrappers.pbobjc.o)
ld: 585 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有人有同样的问题吗? 谢谢

【问题讨论】:

    标签: ios ionic3 cocoapods xcode10


    【解决方案1】:

    确保您使用以下命令进行构建:

    发展

    ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
    

    生产

    ionic cordova build ios --prod --release -- --buildFlag="-UseModernBuildSystem=0"
    

    正如ionic dev team所讨论的,xcode的新构建系统还不支持,那么你应该使用旧的。

    在 Xcode 中打开项目时,如果您使用的插件使用 cocoa pods 作为依赖管理器,例如 Google Maps,您应该打开 ProjectName.xcworkspace 文件而不是 ProjectName.xcodeproj 作为 xcworkpace 知道如何编译一个基于 cocoa pods 插件的依赖。

    【讨论】:

      【解决方案2】:
      ionic cordova build ios --prod --buildFlag='-UseModernBuildSystem=0'
      

      正如您会偶然发现的旁注一样,XCODE 暴露了一个签名错误,因此请取消选中“自动管理签名”并在 XCODE 中再次勾选。

      【讨论】: