Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何使用CMake添加额外的plist属性?_Iphone_Macos_Plist_Cmake - Fatal编程技术网

Iphone 如何使用CMake添加额外的plist属性?

Iphone 如何使用CMake添加额外的plist属性?,iphone,macos,plist,cmake,Iphone,Macos,Plist,Cmake,我正在尝试添加项目 <key>UIStatusBarHidden</key><true/> 但是我找不到添加任意属性的方法 我尝试使用MACOSX\u BUNDLE\u INFO\u PLISTtarget属性,如下所示:我希望生成的PLIST与旧PLIST相同,除了我想要的新属性之外,所以我只是复制了自动生成的PLIST并将其设置为我的模板。但是plist使用了一些Xcode变量,它们看起来也像${foo},CMake对此抱怨不已: 发生错误时,cmake

我正在尝试添加项目

<key>UIStatusBarHidden</key><true/>
但是我找不到添加任意属性的方法

我尝试使用
MACOSX\u BUNDLE\u INFO\u PLIST
target属性,如下所示:我希望生成的PLIST与旧PLIST相同,除了我想要的新属性之外,所以我只是复制了自动生成的PLIST并将其设置为我的模板。但是plist使用了一些Xcode变量,它们看起来也像
${foo}
,CMake对此抱怨不已:

发生错误时,cmake代码中出现语法错误 解析字符串

  <string>com.bedaire.${PRODUCT_NAME:identifier}</string>
com.bedaire.${PRODUCT\u NAME:identifier}
语法错误,意外的cal_符号, 期待}(47)

未设置策略CMP0010:错误 变量引用语法是一个错误。 运行“cmake--帮助策略CMP0010” 有关政策详情,请参阅。使用 cmake_策略命令,用于设置 策略并抑制此警告。这 警告是给项目开发者的。 使用-Wno-dev来抑制它


无论如何,我甚至不确定这样做是否正确。我找不到关于这方面的好例子或好文档。理想情况下,我会让CMake像以前一样生成所有内容,并只添加一行额外的内容。我能做什么?

您可以使用@和pass@添加值,仅用于配置\u文件


不幸的是,没有简单的方法将自定义行添加到生成的文件中。

您是否考虑过在
/opt/local/share/cmake-2.8/Modules
(例如
MacOSXBundleInfo.plist.in
)中复制
.UIStatusBarHidden
(或
@VAR\u以替换),并将编辑版本的目录添加到
CMAKE_模块_路径


如果您已将CMake作为应用程序包安装,则该文件的位置为
/Applications/CMake.app/Contents/share/CMake-N.N/Modules

您所说的“使用@添加您的值”是什么意思;此外,我不会在任何地方调用
configure\u file
。plist当前是自动生成的。啊,我想这就是为什么会出现错误的原因。那你从哪里弄来的?谢谢!我有一段时间没有注意到这个答案,但它太棒了!(我不知道那些
*.plist.甚至存在于
文件中。FWIW,我创建了自己的一个(基于
MacOSXBundleInfo.plist.in
),并将目标上的
MACOSX BUNDLE\u INFO\u plist
属性设置为新属性。)仅供参考:看起来
中的
MacOSXBundleInfo.plist.in已移动到
/Applications/CMake 2.8-10.app/Contents/share/CMake-2.8/Modules
。。。或者可能有不同的CMake安装选项来决定这些文件的最终位置。
  <string>com.bedaire.${PRODUCT_NAME:identifier}</string>