2015-12-10 103 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仍然是一個不直觀且神祕無用的廢料。關於其在這個問題上的行爲的答案仍然值得讚賞。

相關問題