iPhone平台从配置中消失并构建目标,除非我创建新解决方案,否则无法加回

问题描述:

因此,我有一个约2年的应用程序,工作正常。但是我最近在Xamarin Studio中遇到了很多问题,所以我已经在Visual Studio for Mac中完全重新构建了这个解决方案。一切都很好,大约2天后突然发生了一些奇怪的事情。突然之间,我的iPhone配置消失了,不再可供我选择构建或在设置中查看。iPhone平台从配置中消失并构建目标,除非我创建新解决方案,否则无法加回

如果我尝试创建一个新配置,它甚至不会给我选择iPhone作为平台的选项。它只显示iPhoneSimulator。但是,如果我一起创建一个新的空白解决方案,则默认配置中同时包含iPhoneSimulator和iPhone。而这个新的空白解决方案允许我用iPhone平台添加配置。

这是我所看到的,当我尝试创建一个新的配置,发现它甚至不提供我的iPhone的配置,只有iPhoneSimulator enter image description here

如果我创建一个新的空白解决方案,它为我提供了iPhone作为一个选项enter image description here

请参阅以下就是我的解决方案文件结构如下:

enter image description here

下面是我的解决方案文件和解决方案/项目结构:

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 2012 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MobileClient.iOS", "MobileClient.iOS\MobileClient.iOS.csproj", "{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}" 
EndProject 
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Mobile.API", "..\xamarin_mobile_api\Mobile.API.shproj", "{4520CB09-DBCB-4764-8E8C-4CBAA2CBAD6A}" 
EndProject 
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Mobile.iOS", "..\xamarin_mobile_ios\Mobile.iOS.shproj", "{10B1EF5A-0F37-4544-9327-902022A42BA4}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdjustBindingsiOS", "..\xamarin_mobile_api\3rdParty\Adjust\AdjustBindingsiOS\AdjustBindingsiOS.csproj", "{EF829C6D-7D00-4DF1-95C7-F3E54B164827}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mixpanel", "..\xamarin_mobile_api\3rdParty\Mixpanel\Mixpanel.csproj", "{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}" 
EndProject 
Global 
    GlobalSection(SolutionConfigurationPlatforms) = preSolution 
     Debug|iPhoneSimulator = Debug|iPhoneSimulator 
     Staging|iPhoneSimulator = Staging|iPhoneSimulator 
     Production|iPhoneSimulator = Production|iPhoneSimulator 
    EndGlobalSection 
    GlobalSection(ProjectConfigurationPlatforms) = postSolution 
     {7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 
     {7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 
     {7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Staging|iPhoneSimulator.ActiveCfg = Staging|iPhoneSimulator 
     {7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Staging|iPhoneSimulator.Build.0 = Staging|iPhoneSimulator 
     {7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Production|iPhoneSimulator.ActiveCfg = Production|iPhoneSimulator 
     {7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Production|iPhoneSimulator.Build.0 = Production|iPhoneSimulator 
     {EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 
     {EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Staging|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Staging|iPhoneSimulator.Build.0 = Debug|Any CPU 
     {EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Production|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Production|iPhoneSimulator.Build.0 = Debug|Any CPU 
     {5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 
     {5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Staging|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Staging|iPhoneSimulator.Build.0 = Debug|Any CPU 
     {5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Production|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Production|iPhoneSimulator.Build.0 = Debug|Any CPU 
    EndGlobalSection 
    GlobalSection(MonoDevelopProperties) = preSolution 
     Policies = $0 
     $0.TextStylePolicy = $1 
     $1.inheritsSet = null 
     $1.scope = application/vnd.apple-interface-builder 
     $1.inheritsScope = text/plain 
     $1.FileWidth = 120 
     $1.TabsToSpaces = False 
     $0.CSharpFormattingPolicy = $2 
     $2.IndentSwitchBody = True 
     $2.IndentCaseBody = False 
     $2.IndentPreprocessorDirectives = False 
     $2.AnonymousMethodBraceStyle = NextLine 
     $2.PropertyGetBraceStyle = NextLine 
     $2.PropertySetBraceStyle = NextLine 
     $2.EventBraceStyle = NextLine 
     $2.EventAddBraceStyle = NextLine 
     $2.EventRemoveBraceStyle = NextLine 
     $2.StatementBraceStyle = NextLine 
     $2.ElseNewLinePlacement = NewLine 
     $2.ElseIfNewLinePlacement = DoNotCare 
     $2.WithinMethodDeclarationParentheses = True 
     $2.AfterDelegateDeclarationParameterComma = True 
     $2.scope = text/x-csharp 
     $0.DotNetNamingPolicy = $3 
     $0.TextStylePolicy = $4 
     $4.inheritsSet = null 
     $4.scope = application/config+xml 
     $0.XmlFormattingPolicy = $5 
     $5.inheritsSet = null 
     $5.scope = application/vnd.apple-interface-builder 
     $5.inheritsScope = application/xml 
     $0.TextStylePolicy = $6 
     $6.inheritsSet = null 
     $6.scope = application/xml 
     $0.XmlFormattingPolicy = $7 
     $7.scope = application/xml 
     $0.TextStylePolicy = $8 
     $8.scope = text/plain 
     $0.TextStylePolicy = $9 
     $9.inheritsSet = null 
     $9.scope = application/json 
     $0.VersionControlPolicy = $10 
     $0.TextStylePolicy = $11 
     $11.inheritsSet = null 
     $11.scope = application/vnd.apple-xcode-storyboard 
     $0.XmlFormattingPolicy = $12 
     $12.inheritsSet = null 
     $12.scope = application/vnd.apple-xcode-storyboard 
     $0.TextStylePolicy = $13 
     $13.inheritsSet = null 
     $13.scope = application/vnd.apple-interface-builder 
     $0.XmlFormattingPolicy = $14 
     $14.inheritsSet = null 
     $14.scope = application/vnd.apple-interface-builder 
     $0.StandardHeader = $15 
    EndGlobalSection 
EndGlobal 

只是为了测试,我创建了一个新的空白的iOS解决方案从头开始在Visual Studio中的Mac。以下是该解决方案文件的外观。

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 2012 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "asdfasdf", "asdfasdf\asdfasdf.csproj", "{398E03FF-50ED-4D8C-8845-A6077EFF0093}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "qweradfsxz", "qweradfsxz\qweradfsxz.csproj", "{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}" 
EndProject 
Global 
    GlobalSection(SolutionConfigurationPlatforms) = preSolution 
     Debug|iPhoneSimulator = Debug|iPhoneSimulator 
     Release|iPhone = Release|iPhone 
     Release|iPhoneSimulator = Release|iPhoneSimulator 
     Debug|iPhone = Debug|iPhone 
    EndGlobalSection 
    GlobalSection(ProjectConfigurationPlatforms) = postSolution 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhone.ActiveCfg = Release|iPhone 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhone.Build.0 = Release|iPhone 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhone.ActiveCfg = Debug|iPhone 
     {398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhone.Build.0 = Debug|iPhone 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhone.ActiveCfg = Release|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhone.Build.0 = Release|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhone.ActiveCfg = Debug|Any CPU 
     {ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhone.Build.0 = Debug|Any CPU 
    EndGlobalSection 
EndGlobal 

下面是我的解决方案的构建目标平台选项的屏幕截图。注意iPhone部署目标消失了。在配置映射中,iPhone平台消失了,iPhoneSimulator是唯一可用的。

enter image description hereenter image description here

下面是我的测试解决方案,我做的截图,注意到有一个iPhone(手机名称是LeetSauce)选项,以及在配置映射的iPhone选项。

enter image description hereenter image description here

任何想法如何,我打破了这个或如何解决呢?

------------------编辑------------------

所以用户在Xamarin论坛上向我展示了,您可以在第一张屏幕截图中的“平台”框中手动输入“iPhone”。这很有帮助。但是我最终重新创建了解决方案,并重新添加了所有文件/资源​​/包/组件。我无法再次重现该问题,希望我不再看到它。这“感觉”就像是一个错误,我的.sln和/或.csproj文件不知何故变得腐败。它也有可能是一开始就被打破的,而它工作2天只是一种侥幸。希望它不会再发生。

+0

我相信,只有检测到具有正确iOS版本的物理设备时,Visual Studio for mac才会将Iphone作为构建配置。我认为设备已连接并在您将其作为构建配置进行查找时完全更新? – Digitalsa1nt

+0

这是一个物理设备,它是正确的iOS + Xcode版本。我最终从头开始重新构建解决方案,因为我遇到了一些手动编辑解决方案和csproj文件的问题。我很好奇,看看这个问题是否再次发生,因为我还不确定是什么原因造成的。 – LampShade

+0

最近你不得不做很多重建,手指越过,很快就会安定下来:D – Digitalsa1nt

我认为这个快速解决方案创建了一个新的解决方案,并使用相同名称的旧项目创建新项目。您不需要为每个项目添加文件。

然后复制新项目中的所有配置设置并粘贴到旧项目并替换GUID。

+0

所以我最终重建它。我只是觉得我不应该继续重建我的解决方案,因为我在上周必须这么做很多次:-(我必须遇到一个bug,手动修改.sln和.csproj文件给我头疼,所以我只是从头开始创建的,Xamarin论坛的用户告诉我,你可以在第一个屏幕截图中弹出“iPhone”,所以如果它被删除(谁知道什么原因)你可以将它添加回来。 – LampShade