针对具有Android目标的Ionic项目的.gitignore文件

17

我正在使用 Capacitor(注:与 Cordova 相比,Capacitor 是较新的推荐框架)创建 Ionic 项目,并将 Android 添加为目标平台。

我已经成功构建了应用程序并添加了 Android 平台,这在 android/ 目录下创建了一堆文件。

ionic build
ionic cap add android

然后,我能够使用npx cap open android在Android Studio中启动我的应用程序,并使用“Run App”进行仿真。这添加了更多的文件。

通过从gitignore.io添加“ionic”和“AndroidStudio” gitignore条目,我能够使大部分文件被忽略,但是如果有人克隆了该存储库,他们可以从头开始重建整个Android目录,对吗?那我是否认为android文件夹中的所有内容都是可以使用capacitor(即“cap”)从核心ionic项目重新创建的构建工件呢?

在ionic android目录中需要保存什么吗?如果需要,是哪些文件-还是应该退回到ionic/Android Studio gitignore条目来忽略android文件夹?


你应该包含所有这些文件夹,我不会将它们添加到 .gitignore 文件中。 - Aaron Saunders
你是说他们没有构建可以再生的组件吗?这是什么原因? - LightCC
3个回答

15

在 Capacitor 中,你应该提交 iosandroid 文件夹。它们包含各自的 .gitignore 文件,其中包含 iOS 和 Android 推荐的文件。

它们不是构建工件,如果你更改图标或配置(在 Info.plist、AndroidManifest.xml 等中),并删除这些文件夹,则这些更改将丢失。

如果你克隆了一个 Capacitor 项目,你应该运行以下命令:


``` npm install npx cap sync ```
npm install (or other install package depending on your package manager)
npm run build (or ionic build if using ionic)
npx cap sync (this copies files and generates non committed files)

我在android/app/lib文件夹中添加了第三方SDK SdkName.arr文件。但是当我将其提交到GitHub时,它没有上传到git仓库。我该如何将此lib文件夹添加到我的GitHub中? - Najam Us Saqib

14
在ionic android目录中,是否需要保存任何内容到repo中?
我建议您也将本地文件夹包含在repo中。
基于我在开发两个应用程序时对capacitor的经验,考虑以下事项:
- 大多数情况下,您将至少使用几个cordova插件,因为capacitor仍然没有某些功能的可行插件。 - 这些插件将要求您在代码的本地部分手动添加一些变量(例如sdk密钥)或初始化函数。 - 实际上,即使是capacitor社区插件(由其他人创建的插件),您也必须向本地端添加一些最小的代码。考虑此plugin以进行Facebook登录。只需按照安装步骤进行操作,您将看到ios和android双方的长列表配置。 - Capacitor不是正式的Cordova。这两个框架是不同的。Capacitor完全依赖于本地ide进行编译,而cordova cli可以为您构建本地代码(需要ios、mac)。
但如果有人克隆了repo,他们可以从头开始重建整个Android目录,对吗?
当您的应用程序增长时,根据其预期的功能,这将不是一项容易的任务。他们将不得不经历所有这些微小的调整才能让它正常工作。
总之,将本地代码也放入repo中。对我而言,包含本地代码的存储库大小并不是非常巨大。

我理解应该提交/android文件夹,因为“Capacitor本地项目(android、ios等)是源资产(不像Cordova那样是构建资产),所以应该提交它们。”(来源)。这很有道理。但是如果我从Android Studio构建一个APK,就会创建/android/app/build/outputs/apk-debug.apk,显然这是一个构建工件,因此不应该提交。所以我猜我应该忽略它?还有其他类似的构建工件需要忽略吗? - Fred
我在编写Android Studio项目时,发现了一个.gitignore的例子(https://gist.github.com/iainconnor/8605514),它将`/*/build/`添加到.gitignore中。同时,我还找到了另一个例子(https://github.com/github/gitignore/blob/master/Android.gitignore),可以忽略`.apk`和类似的文件。最终我选择了第一个例子。 - Fred

3

如 @jcesarmobile 所说

在 Capacitor 中,你需要提交 ios 和 android 文件夹。它们包含自己的 .gitignore 文件,其中包含 iOS 和 Android 推荐的文件。

但是,如果你正在寻找一个放置在项目根目录下的 .gitignore 文件,这个应该可以胜任。


# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.vscode
.idea

npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Optional eslint cache
.eslintcache


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接