标签: android-productflavors

从相同的代码生成略有不同的APK

我开发了一款使用Parsepush notifications(GCM Google Cloud Messaging)的小游戏.但是,当我尝试将我的应用程序上传到亚马逊商店时,他们说它不会在某些设备上发布,因为它使用的是GCM.

所以,解决方案很简单,只需删除即可notifications.我遇到的问题是我想尽可能地自动生成apk代.在iOS下(我是iOS开发人员,Android新手),我只创建2个目标并使用DEFINE我可以根据目标修改代码.我想有类似的东西,所以我manifest在亚马逊版本中使用另一个,当然我删除了推送代码.

使用时我该怎么做Android Studio?我怀疑我必须使用gradle或者模块的概念,因为在创建signed apkAndroid Studio我必须选择“app” module.

你有什么想法,建议或链接吗?谢谢.

android amazon-appstore android-studio android-productflavors

2
推荐指数
1
解决办法
268
查看次数

Android gradle - 具有不同风格的调试和发布资源

我希望能够为我的应用程序的调试和发布版本设置不同的东西,我的两种风格.我认为我需要的东西是应用程序名称,应用程序图标,以及用于各种第三方库的密钥的一些字符串,例如Flurry,Crashlytics.

如果我只是创建一个名为debug的文件夹,我可以调试工作,但它将是两种风格的相同资源,我希望它们用于差异风格.

android android-resources android-gradle-plugin android-productflavors

2
推荐指数
1
解决办法
1126
查看次数

如何在build.gradle中为不同的productFlavor定义android:label

有没有一种方法可以在build.gradle中为不同的productFlavors指定不同的应用程序标签(名称)?例如这样的事情:

productFlavors {
    stage {
        app name with "-stage" suffix
    }
    preprod {
        app name with "-preprod" suffix
    }
    prod {
        app name without any  suffix
    }
}
Run Code Online (Sandbox Code Playgroud)

android gradle build.gradle android-gradle-plugin android-productflavors

2
推荐指数
1
解决办法
416
查看次数

如何更改Android产品的根文件夹

是否可以更改默认的口味根路径?

从:

---src
-----main
-----flavor1
-----flavor2
-----flavor3
Run Code Online (Sandbox Code Playgroud)

至:

---src
-----main
-----flavors
--------flavor1
--------flavor2
--------flavor3
Run Code Online (Sandbox Code Playgroud)

android-build android-productflavors

1
推荐指数
1
解决办法
598
查看次数

Android Flavor Intent Activity

如何根据风味创建活动的意图?

等级制度:

main
-ActivityA

flavor(free)
-uses main/ActivityA

flavor(paid)
-uses own paid/ActivityA
Run Code Online (Sandbox Code Playgroud)

那么如何根据当前的风格创建一个 Intent 呢?

android android-intent android-activity android-productflavors

1
推荐指数
1
解决办法
1024
查看次数

如何仅在一个版本的应用中展示广告

我正在计划我的应用的广告与无广告版本.我已经设置了两个app风格.

在我的XML中,这个AdMob教程说我将其添加到我的活动XML中以保存横幅广告:

<com.google.android.gms.ads.AdView
        android:id="@+id/admob_adview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_footer" />
Run Code Online (Sandbox Code Playgroud)

然后在代码中,教程说:

public class MainActivity extends AppCompatActivity {

    private AdView mAdMobAdView;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAdMobAdView = (AdView) findViewById(R.id.admob_adview);
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .addTestDevice("4DD0986B8BB49093161F4F00CF61B887")// Add your real device id here
                .build();
        mAdMobAdView.loadAd(adRequest);


        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(), ActivityTwo.class));
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我只希望这个广告在一种风格上与另一种风格显示,那么在不违反任何规则的情况下处理这种风格的正确方法是什么?通常会通过类似的方式检查口味

if (BuildConfig.FLAVOR.equals("adfree")) {
    //no ads
}
else …
Run Code Online (Sandbox Code Playgroud)

xml android ads admob android-productflavors

1
推荐指数
1
解决办法
536
查看次数

产品风味结构

我有一个使用~30种产品口味的项目.除了"主要"代码之外,它们的味道并不多,只有一些独特的资源.由于有这么多,我想构建我的代码目录,使其更有条理:

  • SRC
    • 主要
      • java的
      • 水库
    • productFlavors
      • flavor1
        • java的
        • 水库

但是当它们处于与"main"文件夹不同的级别时,构建不会识别它们的味道.有什么方法可以让我的工作吗?

android android-productflavors

0
推荐指数
1
解决办法
783
查看次数

如何在Xcode中更改$(PRODUCT_BUNDLE_IDENTIFIER)?

我在不同的Firebase环境(开发和生产)下构建了Flutter应用程序的不同风格。我需要为iOS应用程序的Xcode中的开发和生产设置不同的包ID。

我使用方案来配置不同的样式(在“构建设置”中,为每个配置添加环境值)。

但是我对变革有很大的问题$(PRODUCT_BUNDLE_IDENTIFIER)。我需要.development在普通应用程序ID中添加后缀,以获取开发应用程序ID。

我已经尝试遵循此方法(使用“用户定义的设置”)并更改info.plist为从“用户定义的设置”获取变量,但是它不起作用。

错误是:

该操作无法完成。FrontBoard未知应用程序“ $(EXAMPLE_BUNDLE_ID)”。

因此,似乎在传递“用户定义的设置”时插值不正确。

我也尝试添加默认值PRODUCT_BUNDLE_IDENTIFIER和用户定义设置的混合方法。例如:com.example.app$(EXAMPLE_BUNDLE_ID)where EXAMPLE_BUNDLE_ID=.development

我也尝试$(EXAMPLE_BUNDLE_ID)通过直接将用户定义设置添加到“身份”下“目标常规”选项卡中的捆绑包标识符中来引用用户定义设置。但这然后更改为:-- EXAMPLE_BUNDLE_ID-

我也尝试info.plist$(PRODUCT_BUNDLE_IDENTIFIER)$(EXAMPLE_BUNDLE_ID)Bundle Identifier值使用。但这给出了类似的错误:

该操作无法完成。FrontBoard未知应用程序“ com.example.app $(EXAMPLE_BUNDLE_ID)”。

同样,这看起来像插值问题。

有人知道解决方案吗?我看了但是找不到答案。

这对于android来说很容易,因为仅用于applicationIdSuffix ".development”productFlavors。但是我找不到Xcode这样的方法。

xcode ios firebase android-productflavors flutter

0
推荐指数
1
解决办法
3849
查看次数