MonoTouch解决方案中的多个Info.plist文件

3

我正在尝试编写两个可提交的应用程序:一个用于iPad,另一个用于iPhone。这就需要有两个独立的plist文件,以允许分别指定不同的应用程序图标、启动图片等。

当我尝试重命名我的Info.plist文件时,MonoDevelop会自动创建一个新的空的Info.plist并使用它。同样,在iPad/子文件夹中移动我的Info.plist文件似乎也不能让MD在那里找到它。

目前我们在一个解决方案中有3个项目:iPad、iPhone、通用文件和库。

唯一的解决方案是在适当的子文件夹中拥有单独的.sln文件吗?还是说我仍然可以从一个.sln文件中构建两个独立的应用程序?

注:如果以下项目结构能帮助您形象化问题,请查看下面。

MyApp.sln
MyApp-iPad.csproj
MyApp-iPhone.csproj
MyApp-Common.csproj
Main.cs AppDelegate-iPad.cs AppDelegate-iPhone.cs
Info.plist(MD目前将其用于两个项目) Common/ iPad/ iPad/Info.plist(针对-iPad.csproj) iPhone/ iPhone/Info.plist(针对-iPhone.csproj)
3个回答

8

这是我目前的普通解决方案:添加一个自定义命令,在构建之前运行。

cp iPad/Info.plist Info.plist

对于 iPhone:

cp iPhone/Info.plist Info.plist

1

我有一个项目,需要能够使用不同的图标和资源来构建应用程序。

我使用不同的构建配置文件和构建脚本,将正确的文件复制到资源文件夹中。这也会更改应用程序的名称和标识符。

这是与您类似的解决方案,但它可以让您像您想要的那样捆绑不同的图像与应用程序。


这在Xamarin中可行吗?当我修改bundle时,我会弄乱代码签名,因此只有在使用调试配置时应用程序才能运行。 - Stefan Fisk

0

+1 有用的链接,但我认为你的建议不适用于这个项目结构。我们已经有了一个包含公共文件的库项目;这只是关于iPad与iPhone应用程序级别的plist的问题。看起来MD强制你使用与“.sln”相同级别的“Info.plist”文件。我们已经创建了2个项目,但你是说我需要创建2个解决方案吗? - user244343
创建两个应用级别的项目(现有结构无关),YourAppiPhone 和 YourAppiPad。在 YourAppiPad 中链接任何来自 YourAppiPhone 的共享文件,例如 Main.csAppDelegate.cs。您不需要两个解决方案。 - jonathanpeppers
我理解你的意思,但我们已经这样做了,问题在于MD仍然希望两个应用级项目都使用与“.sln”文件相同文件夹中的“Info.plist”。 - user244343
它们应该位于主sln文件的子目录中。您是想把这两个csproj文件放在同一个目录下吗?如果我今天有机会,我将在Github上放一个示例。 - jonathanpeppers

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