生成iOS目标时,我无法在应用名称中设置空格。覆盖清单(android)和资源(ios)中的应用程序名称很好,但是一旦我重新构建应用程序(因为它再次从config.xml复制应用程序名称),更改就会丢失。
我正在考虑为此创建一个钩子。这样的钩子会为ios和android提供正确的app名称值。是否有任何样本钩子做这样的事情,并且“before_compile”是适当的时机吗?
答案 0 :(得分:6)
我创建了一个钩子来完成这个。您可以查看github repo。
插件在添加时将显示名称作为变量,然后在安装时更新iOS plist并添加一个after_prepare挂钩,为Android设置app_name,这样就不会遇到覆盖更改的问题。 / p>
cordova plugin add cordova-plugin-app-name --variable APP_NAME="My Super Cool App" --save
答案 1 :(得分:0)
我注意到当名字中有空格或特殊字符时,Cordova项目名称通常不会很好。我通常只有一个简单的项目名称,然后覆盖本机项目中应用程序的显示名称。
我从命令行构建我的应用程序,因为我的构建过程是通过jenkins连接的。
我对原生的Cordova钩子不太确定,但在iOS上,你只需要修改" App Name"。您可以通过此处转到此文件来执行此操作
CORDOVA_PROJECT_DIRECTORY/platforms/ios/cordova/build.xcconfig
并将以下行添加到文件末尾。
PRODUCT_NAME = My Crazy App Name With Spaces And Character !?
现在运行
cordova compile ios --release
该应用将显示上面指定的PRODUCT_NAME,而不是cordova项目的名称。
Android有点复杂,需要修改几个xml文件。
我会用android解决方案稍微更新一下这个答案。
答案 2 :(得分:0)
为了回答我自己的问题,我能够使用after_prepare
挂钩创建一个脚本(我在dart中创建,因为我更熟悉),只需修改"app_name"
中的字符串platforms/android/res/values/strings.xml
{1}}。调用cordova prepare android
可以正确修复应用名称。
对于iOS,我更改了XCode中的名称(在xxxx-Info.plist中,捆绑显示名称),似乎再次调用cordova prepare ios
不会覆盖它