5 berichten aan het bekijken - 1 tot 5 (van in totaal 5)
  • Q:
    Bijdrager
    APIcoder

    Xcode release build voor i386

    Ik werk met Xcode 3.2.5 op mijn MacBook Pro i7 10.6 en heb twee applicaties gemaakt, een Cocoa Application en een Cocoa-Applescript-Application. De Applicaties werken op mijn MacBook Pro (10.6). Nu wil ik een versie maken voor een iMac, Core 2 Duo, 10.5. (een iMac witte versie en een iMac zilver versie)

    Ik kies in Xcode voor Release | i386 en maak een release build, op mijn MacBook Pro i7 werken de apps prima, echter op iMac (Wit en Zilver behuizing) werken de apps niet. Krijg direct een error of een melding dat de applicatie niet wordt ondersteund. In de info van de applicatie heb ik de universal aan en afgevinkt, helaas geen verschil.

    Mijn vraag gebruik je de instelling ReLease | i386 om een applicatie te builden die een Intel core gebruiken.
    Zie ik wat over het hoofd?

    Voor test werk heb ook twee simpele applicaties gemaakt, een Cocoa-Applescript-Application die alleen een display dialog geeft en een Cocoa Application die alleen hallo label heeft in de window.

    Graag in deze hulp gevraagd.

    Bijdrager
    mhrenes

    Je moet je base SDK 10.5 maken in plaats van 10.6 (of je update je andere iMacs naar 10.6)

    Bijdrager
    APIcoder

    Juist, dan is alleen de instelling “Deployement Target Mac OS X 10.5” niet voldoende? Omdat na een build Xcode een error geeft als de base SDK naar 10.5 verwees, ging ik er vanuit dat de base SDK op 10.6 moet staan. De error: cannot find protocol declaration for NSApplicationDelegate.

    Ok√© dus als base op SDK 10.5 moet zijn ingesteld, zal de code die automatische door xcode met 10.6 wordt gegenereerd niet valide zijn in 10.5, … toch??

    Na verwijderen van <NSAppplicationDelegate> compiled de applicatie wel met base SDK 10.5. Op het internet vindt ik dat <NSAppplicationDelegate> alleen door 10.6 wordt ondersteund.

    Hier heb ik geen iMac met 10.5 staan dus kan ik de oplossing nog even niet testen.

    Voor zover bedankt voor het meedenken.

    Bijdrager
    mhrenes

    Ik heb even gekeken maar NSApplicationDelegate is sinds 10.0 beschikbaar (niet alle methods). Ik vermoed dat het probleem is dat in 10.6 NSApplicationDelegate een formal protocol is en in 10.5 en eerder een informal protocol.

    Vermoedelijk heb je ergens een declaratie in de vorm:

    <br />
    @interface MyApplicationDelegate : NSObject <NSApplicationDelegate> {<br />
    ......<br />
    }<br />
     

    en dit moet voor 10.5 worden:

    <br />
    @interface MyApplicationDelegate : NSObject {<br />
    ....<br />
    }<br />
     

    Met de juiste preprocessor macro’s kun je je header files wel geschikt maken voor beide SDK’s. Je iMac’s upgraden naar 10.6 is waarschijnlijker sneller (en handiger).

    Applicaties gebouwd met de 10.6 SDK zijn inderdaad niet geschikt voor 10.5 en eerder. Andersom (in principe) wel.

    Bijdrager
    APIcoder

    Update naar 10.6 is niet direct een optie, in de nabij toekomst komen er computers met 10.7 waarvoor specifieke maatwerk software wordt geoptimaliseerd. Als updaten naar 10.7 wel een optie was had ik dat al gedaan. Natuurlijk wil ik ook weten wat de oorzaak van de error is, zodat ik dezelfde problemen in de toekomst herken of liever voor kan zijn.

    Precies zoals jouw voorbeeld code, had ik mijn code gisteravond nog veranderd, dus dat moet wel gaan werken ( nog niet getest ).

    Het is jaren geleden dat ik met Xcode heb gewerkt, dus nog erg stroef, maar komt wel goed.

    Altijd fijn als iemand duidelijke en juiste info wil geven.
    Thanks

5 berichten aan het bekijken - 1 tot 5 (van in totaal 5)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.