打包原生二进制文件无法安装'onesignal-cordova-plugin'

时间:2018-02-27 19:49:44

标签: ionic3 onesignal ionic-cloud

Português:Olápessoal,estou com um problema quando vou buildar meu app no Package native do Ionic,mostra esse erro。 Alguémtemalgumasolução?

英语: 大家好,我在Ionic的原生包中构建我的应用程序时遇到问题,它显示了这个错误。 有没有人有解决方案?

Failed to install 'onesignal-cordova-plugin': Error: pod: Command failed with exit code 31
    at ChildProcess.whenDone (/Users/ionic/builds/project-1/platforms/ios/cordova/node_modules/cordova-common/src/superspawn.js:169:23)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
Failed to restore plugin "onesignal-cordova-plugin" from config.xml. You might need to try adding it again. Error: Error: pod: Command failed with exit code 31

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并通过将onesignal-cordova-plugin的版本降级为 2.1.0 来修复它:

ionic cordova plugin remove onesignal-cordova-plugin
ionic cordova plugin add onesignal-cordova-plugin@2.1.0

在2.1.1中他们添加了可可豆荚支持,所以2.1.0就在添加之前就应该工作了:)(至少它在我的情况下有效)

我认为离子云中的可可豆荚存在问题,因为我在本地构建时遇到了同样的问题(在更新pod后得到修复)。这种解决方法在修复之前很有用。

答案 1 :(得分:1)

我发现有关此问题的有用的官方帖子。这些技巧就像一个魅力:)。没有错误,并且构建成功。

  

在发布OneSignal插件的更新时,通常需要更新cocoapods规范存储库。这可以通过简单的cordova hook脚本来完成。在项目仓库的根目录中创建以下脚本。确保使用chmod或git设置两个脚本的执行权限。

update_pods.sh

#!/bin/bash
pod repo update

run_pods.sh

#!/bin/bash
pod install --project-directory='./platforms/ios/'

参考config.xml的ios平台元素中的脚本

<platform name="ios">
<hook src="update_pods.sh" type="before_platform_add" />
<hook src="run_pods.sh" type="after_platform_add" />
...

这些命令将在添加ios平台之前和之后运行。第一个更新Pod存储库,第二个验证添加平台后是否安装了所有Pod。

记住要为这些bash文件添加执行权限。如果您看到错误:生成EACCES消息,则其完全与权限有关。

查看此帖子的详细信息: https://ionic.zendesk.com/hc/en-us/articles/360001581893-iOS-build-fails-to-fetch-onesignal-cordova-plugin