Ionic 3 - 添加或构建 iOS 应用程序时出错

Posted

技术标签:

【中文标题】Ionic 3 - 添加或构建 iOS 应用程序时出错【英文标题】:Ionic 3 - Error when adding or building iOS app 【发布时间】:2018-03-27 07:04:11 【问题描述】:

使用ionic cordova build iosionic cordova platform add ios 构建或添加ios 时出现以下错误。该构建适用于 android

IOS project now has deployment target set as: 8.0
IOS project Code Sign Entitlements now set to: App/Resources/App.entitlements
Entitlements file is not in references section, adding it
 Error: ENOENT: no such file or directory, open '/Users/cipriancirstea/Documents/ionic_app/ul_web_hooks/ios/https:/t4edc.app.goo.gl/#apple-app-site-association'
    at Object.fs.openSync (fs.js:667:18)
    at Object.fs.writeFileSync (fs.js:1326:33)
    at saveContentToFile (/Users/cipriancirstea/Documents/ionic_app/plugins/cordova-universal-links-plugin/hooks/lib/ios/appleAppSiteAssociationFile.js:118:8)
    at /Users/cipriancirstea/Documents/ionic_app/plugins/cordova-universal-links-plugin/hooks/lib/ios/appleAppSiteAssociationFile.js:72:5
    at Array.forEach (<anonymous>)
    at createNewAssociationFiles (/Users/cipriancirstea/Documents/ionic_app/plugins/cordova-universal-links-plugin/hooks/lib/ios/appleAppSiteAssociationFile.js:70:27)
    at Object.generate (/Users/cipriancirstea/Documents/ionic_app/plugins/cordova-universal-links-plugin/hooks/lib/ios/appleAppSiteAssociationFile.js:45:3)
    at activateUniversalLinksInIos (/Users/cipriancirstea/Documents/ionic_app/plugins/cordova-universal-links-plugin/hooks/afterPrepareHook.js:85:29)
    at /Users/cipriancirstea/Documents/ionic_app/plugins/cordova-universal-links-plugin/hooks/afterPrepareHook.js:50:11
    at Array.forEach (<anonymous>)
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/cipriancirstea/Documents/ionic_app/ul_web_hooks/ios/https:/t4edc.app.goo.gl/#apple-app-site-association' 

config.xml

<universal-links>
    <host name="https://t4edc.app.goo.gl/" scheme="https" />
    <host name="example-902cc.firebaseapp.com" scheme="https">
        <path url="/__/auth/callback" />
    </host>
</universal-links>

【问题讨论】:

如果你读到:没有这样的文件或目录,打开'/Users/cipriancirstea/Documents/ionic_app/ul_web_hooks/ios/https:/t4edc.app.goo.gl/#apple -app-site-association' 你可能导入了一些东西,但它找不到它的依赖项。 【参考方案1】:

这是因为您在主机name 前添加了https://

要消除错误,只需替换以下内容:

<host name="https://t4edc.app.goo.gl/" scheme="https" />

用这个:

<host name="t4edc.app.goo.gl/" scheme="https" />

错误的原因是插件自动在ul_web_hooks/ios/下创建文件,文件以对应的主机名命名。在 MacOs 上(通常在 *nix 平台上),冒号 (:) 不允许作为文件路径的一部分。

希望对您有所帮助!祝你好运!

【讨论】:

【参考方案2】:

根据输出,您似乎正在尝试在 Windows 操作系统上构建。

不幸的是,您需要一个带有 Xcode 的苹果或 Mac 操作系统才能正确构建 IOS 设备。

For Reference

【讨论】:

没有。我正在Mac上构建。我将项目从 Ubuntu 操作系统转移。为什么你说我是从 Windows 构建的?你可以说得更详细点吗?我确实在 Windows 操作系统上运行了该项目并推送到存储库。也许这会以某种方式影响它。 @Ciprian 只是下面的路径“/Users/cipriancirstea/Documents/”看起来像windows路径。确保您推送到存储库的代码不包含 plugins 文件夹。 Ionic 应该根据操作系统为您构建它。我会确保您不会在 application/src 文件和 package.json 文件之外再拉入任何文件。 node_modules 不包含在存储库中。我删除了很多次文件夹并重新安装了 @Ciprian 并不理想,但如果您仍然无法从头开始新的安装/项目。 ionicframework.com/docs/intro/installation 然后尝试为ios构建项目。一旦工作开始将您的项目迁移到新项目中。 我想过这样做,但我可能会遇到同样的问题。 config.xml 中有一个 &lt;universal-links&gt; 标记(请参阅我的编辑),我假设在使用 Firebase 进行身份验证后重定向回应用程序。我通过 Firebase 使用社交登录。因此,在删除 universal-links-plugin 后,它适用于 Android,但在尝试使用任何社交帐户进行身份验证时,它什么也没做。

以上是关于Ionic 3 - 添加或构建 iOS 应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章

带有扩展名的应用程序的 Ionic/Cordova iOS 应用程序构建错误 - ** 存档失败 **

Ionic/cordova:如何使用 fastlane 或 xcodebuild 添加推送功能?

IONIC FCM推送通知ios,无法接收

IONIC白屏问题与初始屏幕挂起第一次加载(iOS - ionic3)

Ionic 2 构建的应用程序(IOS、Android)在启动时很慢

使用 CLI 命令或 Ionic 配置将 AdSupport 框架添加到 Xcode 项目