我正在尝试使用Xamarin.iOS开始的iOS项目,Visual Studio链接到Mac构建主机并连接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 Build Host,Xamarin Studio,XCode,iPhone和iPhone模拟器),但决定不打扰,因为在每个构建之间重新启动组件是不可接受的而不是解决方案。
我在网上进行的所有搜索仅显示与Apple Provisioning for test部署相关的主题。没什么用的。很沮丧。有谁知道这里会发生什么?
修改:更正。在Mac上的Xamarin Studio中所做的更改反映在构建/运行中,但不是来自通过构建主机链接的PC上的Visual Studio,或来自XCode。
另请注意:所有3个测试应用在其plist文件中使用相同的应用标识(" com.somecompany .-")。当在一个环境(比如Visual Studio)中构建时,它将覆盖最后使用的环境(例如XCode)中的版本,但它仍将使用在构建环境中制作的第一个版本。
例如,如果Visual Studio项目中的主页面上有一个标签"这是VS版本。"和XCode项目标签说"这是XCode版本。",我可以在任何一个中构建/调试,标签会在手机上说出预期的东西。
但如果我以某种方式更改这些标签,例如添加"咄..."到最后他们说'#34;这是VS版本。咄..."和"这是Xcode版本。 duh ...",无论我在任何一个环境中构建和运行多少次,该应用程序仍然只会说"这是VS版本。"或"这是XCode版本。"
答案 0 :(得分:1)
部分解决。 (使用构建主机解决Visual Studio,而不是XCode)
在Visual Studio中,测试项目是一个Xamarin.Forms解决方案,这意味着它包含一个库项目 - “TestApp(可移植)” - 以及它应为其构建的每个平台的其他项目 - “TestApp。 iOS“,”TestApp.Driod“等等。
右键单击解决方案并显示其属性,然后转到配置属性 - >配置,我能够看到库项目由于某种原因未设置为构建。因此,iOS项目将构建,并且所有内容都会像编译器一样 LOOK ,但iOS项目仍在构建非重建库。
在TestApp库项目中选中“Build”复选框并应用后,一切正常。调试器甚至再次附加。
不幸的是,XCode仍然是一块不直观且神秘无用的废料。关于它在这个问题上的行为的答案仍然会受到赞赏。