gpt4 book ai didi

ios - 如何永久更改 Meteor Cordova 中的 iOS 应用程序配置?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:10 25 4
gpt4 key购买 nike

每次我meteor 构建,我都必须打开 XCode 并执行以下操作:

  • 从“Link Binary With Libraries”(Facebook SDK) 中删除和添加项目
  • 添加 URL 类型(我的应用程序的自定义 URL 方案)
  • 向“自定义 iOS 目标属性”添加“必需的设备功能”

我如何编辑我的 Meteor 项目以自动完成这些步骤,并自动将内容添加到 AndroidManifest.xml

以某种方式使用 mobile-config.jscordova-build-override

最佳答案

我很高兴看到另一个人正在尝试使用 Meteor 构建混合应用程序/扩展 Meteor Cordova iOS 应用程序,因为我面临着同样的问题。所以很高兴和大家分享我的经验和方法。 :-)

到目前为止,我最终采用了以下方法:

  1. 我使用 meteor build(不是 meteor run ios-device,因为我不知道 Meteor 是否对生产代码做了一些优化)为我的 iOS 应用程序创建了一个基本模板。

  2. 然后,我将/platforms/ios 下的整个 Xcode 项目复制到另一个位置,并从此将这个新项目用作我的“主”项目。该项目正在使用 native 代码进行丰富,例如它还包括我需要的 Cocoa Pods。

  3. 当然,我也不想每次触发新的 Meteor 构建时都复制文件。至少,我希望更新 Staging/www 文件夹,因为这种情况经常发生。

所以我的第一个(相当天真的)方法是

  • 删除主项目中的 Staging/www 文件夹
  • 将其替换为指向 .meteor/local/.../ios/项目内的 Staging/www 文件夹的相对链接(使用 Xcode 的链接功能)

这种方法行不通,因为 Meteor Xcode 项目中使用的 shell 脚本无法处理这些链接。

我的第二种方法是在文件系统级别创建一个符号链接(symbolic link)。这可以正常工作,并且我能够按预期在 Xcode 中构建项目。

我本可以对 Cordova 插件文件夹采用相同的方法,但我决定手动替换插件以便更好地控制它们,即使这意味着需要付出更多努力。

拥有符号链接(symbolic link)还意味着 Xcode 的版本管理(以及我用于所有内容的 SVN)将忽略 Staging/www 下面的所有内容,我认为这很好,因为我已经在中对 webapp 代码进行了版本控制Meteor 项目本身。

顺便说一句:我也在 Meteor 论坛上开始了一个关于混合移动应用程序的讨论线程,但到目前为止它并没有引起太多关注:

https://forums.meteor.com/t/building-a-hybrid-meteor-cordova-app-share-experiences/8212

也许我们可以在那里跟进 Meteor 特定的事情,让 Meteor 社区参与讨论?

编辑:我还想分享一个完全失败的方法,至少对我来说,也许我太笨了......在我使用 Meteor 的 Xcode 模板作为起点之前,我也尝试过“反过来” “,即我从我已经存在的 Xcode 应用程序项目开始,并尝试手动包含 Meteor 的/Cordova 的部分。使用这种方法,我从来没有设法正确设置所有内容。我遇到了很多麻烦,还不得不调整很多编译器/链接器标志,甚至让代码编译。这让我长了很多白发。但即使在我设法编译所有内容之后,Meteor 在启动期间也会挂起 - 我一直不明白为什么。

我仍然面临的一个遗留问题是 Meteor 的热代码推送功能似乎在 iOS 上存在一些严重问题,这些问题也被记录为 GitHub 问题。 iOS 应用程序可能会完全损坏,需要重新安装。我尝试了 mdg:reload-on-resume 包,但这并没有正常工作,而且让事情变得更糟。据我从 GitHub 的讨论中得知,在 Meteor 团队解决这些问题之前,最好禁用热代码推送。由于代码推送而完全破坏应用程序并不是我的用户所期望的。

关于ios - 如何永久更改 Meteor Cordova 中的 iOS 应用程序配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com