2015-12-10 101 views
1

我想获得一个iOS项目与Visual Studio的Xamarin.iOS启动链接到Mac构建主机和连接的iPhone。构建iOS应用程序不会更新iPhone或模拟器

我已经在我的PC上的Visual Studio,Mac上的Xamarin Studio以及Mac上的XCode 7上开始了虚拟项目。他们都有这个问题。

我已经尝试在Mac上运行物理iPhone和模拟器上的构建。尽管我付出了所有的努力,但问题仍然存在。

问题是这样的:有史以来测试应用程序的第一个版本是运行的。如果我进行任何更改并重建,那么这些更改将永远不会反映在手机或模拟器上运行的应用程序中。它总是会运行我制作的第一个版本,并且调试器拒绝附加。

我已经尝试从构建之间的手机中删除应用程序。我试图从构建之间的Visual Studio解决方案中的所有项目中删除所有bin和obj文件。如果我可以在Mac上为Xamarin Studio,XCode或Xamarin Mac Build主机找到任何类似的文件,我也会删除它们,但我不熟悉Mac的构建过程或文件系统。不过,这是一个不应该发生的问题。

我甚至尝试重新启动Visual Studio。我会尝试重新启动我的设置(Xamarin构建主机,Xamarin Studio,XCode,iPhone和iPhone模拟器)的其他部分,但决定不打扰,因为在每个构建之间重新启动组件是不可接受的,而不是解决方案。

我在网上做的所有搜索只会提供与Apple Provisioning相关的测试部署相关主题。没有用处。非常令人沮丧。有没有人知道这里可能会发生什么?

编辑:更正。 Mac上的Xamarin Studio所做的更改反映在构建/运行中,但不是通过构建主机或XCode链接的PC上的Visual Studio。

另请注意:所有3个测试应用程序在其plist文件(“com.somecompany.-”)中使用相同的应用程序标识。当在一个环境中构建(比如说Visual Studio)时,它会覆盖上一个使用的环境(比如XCode)的版本,但它仍将使用有史以来构建的环境中的第一个版本。例如,如果Visual Studio项目的主页面上有一个标签,上面写着“这是VS版本”,并且XCode项目标签上写着“这是XCode版本”,我可以构建/调试在任何一个,并且标签将在电话中说预期的事。

但是,如果我以某种方式更改这些标签,比如在它们的末尾添加“duh ...”,所以他们会说“这是VS版本,呃...”和“这是Xcode版本。duh ...“,无论我在任何环境中构建和运行多少次,该应用程序仍然只会说”这是VS版本“。或“这是XCode版本”。

回答

1

部分解决。 (解决Visual Studio与生成主机,而不是XCode)

在Visual Studio中,测试项目是一个Xamarin.Forms解决方案,这意味着它包含一个库项目 - “TestApp(Portable)” - 和应为其构建的每个平台的其他项目 - “TestApp.iOS”,“TestApp.Driod”等。

通过右键单击解决方案并调出其属性,然后转到配置属性 - >配置,我能够看到库项目未设置为由于某种原因而生成。所以iOS项目将会建立起来,并且所有的东西都会像编译器正在做的那样工作,但是iOS项目仍在构建非重建库。

在TestApp库项目上勾选“Build”并应用后,一切正常。调试器甚至再次连接。

不幸的是,XCode仍然是一个不直观且神秘无用的废料。关于其在这个问题上的行为的答案仍然值得赞赏。

相关问题