iOS 和 Android 的独立包名称

Separate package names for iOS and Android

我目前有一个已发布到 App Store 和 Google Play 的本机应用程序,两者的程序包名称不同。我想知道是否有办法告诉 NativeScript 为 iOS 使用一个包名而为 Android 使用另一个包名?谢谢。

是的,你绝对可以做到。对于 iOS,在您的 app/App_Resources/iOS/Info.plist 文件中包含一个 CFBundleIdentifier 标志。

<key>CFBundleIdentifier</key>
<string>com.mycompany.myapp</string>

对于 Android,请更新 app/App_Resources/Android/app.gradle 文件中的 android.defaultConfig.applicationId。参见 https://github.com/NativeScript/template-hello-world/blob/90b81bcb772ab21a06f06bd502be2043e6afc9ee/App_Resources/Android/app.gradle#L11

对于那些在 2021 年寻找解决方案的人来说,有一种简单的设置方法。

打开 nativescript.config.ts 并在 androidios 中添加不同的 id 属性:

import { NativeScriptConfig } from '@nativescript/core';

export default {
  appPath: 'src',
  appResourcesPath: 'App_Resources',
  android: {
    v8Flags: '--expose_gc',
    markingMode: 'none',
    id: 'com.yourapp.android'
  },
  ios: {
    id: 'com.yourapp.ios'
  }
} as NativeScriptConfig;