Xcode 4 - çıktı dizini oluştur


217

Xcode4'te (beta 5) çıktı dosyalarımı ayarlama / bulma konusunda sorun yaşıyorum. İçinde bir yere yerleştirilirler ~/Library/Developer/ugly_path/.... Ürünlerimde "bulucuda göster" i bile seçemiyorum. Basit bir C projesi, Temel aracı ve hatta Kakao paketi için de aynı şey geçerli. Bir hata ayıklama iyi çalışıyor.

Çıktı dizinlerinin nerede ve nasıl kurulacağını / oluşturulacağını lütfen bana söyler misiniz? (Aptalca geldiğini biliyorum, aylardır Xcode3'te kod yazıyorum, ancak Xcode4 beta'da anlayamıyorum).

Çok teşekkürler.

Yanıtlar:


342

Üstteki Xcode menüsünden tercihler'i tıklayın, konumlar sekmesini seçin, konum oluştur seçeneğine bakın.

2 seçeneğiniz var:

  1. Yapı ürünlerini türetilmiş veri konumuna yerleştirin (önerilir)
  2. Yapı ürünlerini hedeflerle belirtilen yerlere yerleştirin

Güncelleme: xcode 4.6.2'de türetilmiş veri metin alanının altındaki sağ taraftaki gelişmiş düğmesine tıklamanız gerekir. Yer Seçme mirası seçin.


27
Bu yanıt, bu değişikliğin neden yapıldığını açıklıyor: stackoverflow.com/questions/5331270/…
toofah

3
Gururlu Üye, bunlar Xcode 5'te değil mi? Bunlar Tercihler -> Konumlar -> Türetilmiş Veriler -> Gelişmiş'tir.
Richard Venable

Tamam, derlemem .../XCode/DerivedData/klasöre giriyor , yeterince basit. Alt klasörler görünmüyor AppName-asdflkjqwergoobledygook. Bir komut dosyasından oluşturduğumdan, aslında yapıyı bulmak istiyorum (böylece paketleyebilir ve TestFlight ile gönderebilirim :) Pek çok -s'den hangisinin doğru olduğunu nasıl belirleyebilirim MyAppName-xxxx? Teşekkürler!
Olie

@Olie Ayrıca, türetilen veri konumunu kendi seçtiğiniz bir yolla da değiştirebilirsiniz
Gerard

@Gerard: Yapabilirdim, ama yapmak istediğim bu değil. Bir repodan kaynakları kontrol ediyorum, sonra komut satırı üzerinden inşa ediyorum ve yapının nereye gittiğini bilmek istiyorum.
Yapım betiğimin

140

Komut satırından oluşturursanız, çıktı dizinini aşağıdaki şekilde ayarlayabilirsiniz:

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'

Benim sh scriptlerimi çalıştırmak için tek tırnak kaldırmak ve sadece CONFIGURATION_BUILD_DIR = / Kullanıcılar / ... yazmak gerekiyordu
Stanislav Pankevich

@occulus, projeyi oluşturduktan sonra test hedefini oluşturmakta başarısız olacağınız için kesinlikle haklısınız, eğer sadece inşa ediyorsanız iyi olabilir, ancak mutlak yolları daha iyi kullanın!
Mostafa Berg

Herkes benzer bir sorunu çözmek için çalışıyorsa ben XCode 6.x bağlı ikili bu kombinasyonu kullanarak tam olarak gereken yere yerleştirmek için ikna etti :/Users/moi/src/mozbuilds/xul3604/$(CONFIGURATION)/dist/bin
J Evans

29

Xcode 5'te: Xcode menüsü> Tercihler ... öğesi> Konumlar sekmesi> Konumlar alt sekmesi> Gelişmiş ... düğmesi> Özel seçenek.

Ardından, örneğin, Çalışma Alanına Göre seçeneğini belirleyin .


8
Yüz yaşında, güçlü ve sağlıklı bir efendim olun. Teşekkürler !
WhozCraig

13

Xcode 4 Derleme Konumu ayarını "Derleme ürünlerini türetilmiş veri konumuna yerleştirin (önerilen) olarak ayarladıysanız, ~ / Library / Developer / Xcode / DerivedData konumunda bulunmalıdır. Bu dizinde projenizi orada bir dizin olarak, proje adı bir grup oluşturulan harf ile eklenecektir, bu yüzden dikkatlice bakın.


10

Türetilen verileri saklayın ancak hedefi belirtmek için DSTROOT'u kullanın.

Dağıtımı zorlamak için DEPLOYMENT_LOCATION kullanın.

DSYM'yi de kopyalamak için belgesiz DWARF_DSYM_FOLDER_PATH kullanın.

Bu, xcodebuild'ten türetilen veri konumunu kullanmanıza ve uygulamayı bulmak için tuhaf şeyler yapmanıza gerek yoktur.

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build

8

Derleme günlüğünü her zaman derleme günlüğü görüntüleyicisine bakarak ve bu yolu bir terminal penceresine kopyalayarak bulabilirsiniz.

Bunu, başıboş dosyaların eklenmediğinden emin olmak için yüklenmeden önce iOS .app paketlerimi analiz etmek için kullanıyorum.


Çok uygun Apple. Değil!
zaph

1
Ve bu yapı günlüğünü nerede bulabilirim? Xcode yardımında "build log" araması 0 sonuç döndürür.
devios1

1
Nm, bir konuşma balonu gibi görünen "Log Navigator" ı buldu.
devios1

4

Bir komut dosyasından derleme dizinini bulmak isteyen ancak değiştirmek istemeyen herkes için, DerivedData'daki bir klasöre işaret eden tüm derleme ayarlarının bir listesini almak için aşağıdakileri çalıştırın:

xcodebuild -showBuildSettings | grep DerivedData

Özel hedefler ve şemalar çalıştırırsanız, lütfen onları da buraya koyun:

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

İstediğiniz ayar çıkışını bulmak için çıkışa bakın ve ardından:

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

Son bölüm, dizeyi eşittir işaretinden keser ve daha sonra boşluk alanını en başında keser.


2

Yeni Xcode4 Çalışma Alanlarını kullanırsanız, Türetilmiş Veri Konumunu Dosya -> Çalışma Alanı ayarları altında değiştirebilirsiniz ...


1

Hayır, türetilmiş konum / eski (hedef başına) konum davranışı ile ilgisi yok
Gregory Pakosz

Evet öyle. Her iki şekilde de çalışır. Belgelerden: "Dizin yolu. Etkin derleme yapılandırması için derlemeyle ilgili tüm dosyaların altına yerleştirildiği dizini tanımlar."
Heath Borders

Hayır. xcode4 ile değil Xcode > Preferences > Locations > Derived data, en çok oy verilen cevapta açıklandığı gibi ayarlamaya bağlıdır . + bahsettiğiniz belge en son 2010 yılında güncellendi
Gregory Pakosz

Aslında bu ayarı xcodebuild'den xcode4 ile yapı dizinini yapılandırmak için kullandım. Bir şans ver.
Heath Borders

1
iyi Xcode 4.3.1 (IDE itibaren) ile denedim ve küresel ayarı değiştirmeden, ürünler bir yerde inşa ~/Library/Developer/Xcode/DerivedData/ve ben ile belirtin dizinin içinde değil CONFIGURATION_BUILD_DIR. Eğer istersemCONFIGURATION_BUILD_DIR onur, ben Xcode "Legacy" veri tercihlerini türetilmiş geçmek zorunda
Gregory Pakosz

0

Xcode tercihleriyle oynamaya başlamadan önce kontrol etmeniz gereken başka bir şey:

Hedefinizi seçin ve Oluşturma Ayarları> Paketleme> Sarmalayıcı Uzantısı'na gidin

Olması gereken değer: uygulama

Değilse çift tıklayın ve qoutes olmadan "app" yazın.


-1

Bu çok sinir bozucuydu. Projenizi açın, Hedef, Derleme Aşamalarını Aç sekmesine tıklayın. Kırmızı öğeler için Kopya Paketi Kaynaklarınızı kontrol edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.