Proat 1.92 zelf bouwen
Deze handleiding hoort bij de macOS-broncode, versie 1.92, build 192. De opdracht hieronder bouwt zonder Apple-account, certificaat of API-sleutel voor ondertekening. Pak de broncode uit en open Terminal in de map met VoiceInk.xcodeproj.
Wat je nodig hebt
- Een Mac met volledige Xcode-installatie. De release-machine gebruikte Xcode 26.6 (17F113). De app heeft macOS 14.4 als minimale doelversie.
- Git en CMake 3.28 of hoger. Xcode levert onder meer Swift, libtool en dsymutil.
- Voor
make setupmoeten de macOS-, iOS-, tvOS- en visionOS-SDK's beschikbaar zijn: het gebruikte whisper-script bouwt een XCFramework voor die platforms. - Internet voor whisper.cpp en de Swift Package Manager-afhankelijkheden. De elf packageversies staan vastgelegd in
VoiceInk.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved.
1. Whisper voorbereiden
Onderstaande opdrachten gaan uit van een nieuwe map ~/VoiceInk-Dependencies/whisper.cpp. De commit is die van de schone whisper-checkout op de release-machine. Voer make setup uit vanuit de uitgepakte Proat-bronmap.
mkdir -p "$HOME/VoiceInk-Dependencies" git clone https://github.com/ggerganov/whisper.cpp.git "$HOME/VoiceInk-Dependencies/whisper.cpp" git -C "$HOME/VoiceInk-Dependencies/whisper.cpp" checkout --detach 080bbbe85230f624f0b52127f1ae1218247989f9 (cd "$HOME/VoiceInk-Dependencies/whisper.cpp" && ./build-xcframework.sh) make setup
Het framework wordt eerst direct vanaf de vastgezette commit gebouwd. Daardoor controleert make setup alleen het aanwezige resultaat en voert het geen git pull uit.
Bestaat deze afhankelijkheidsmap al, controleer dan eerst de checkout en het eerder gebouwde framework. make setup slaat een aanwezig build-apple/whisper.xcframework over. Alleen een andere commit uitchecken vernieuwt dat framework dus niet.
Het Xcode-project verwijst naar $(HOME)/VoiceInk-Dependencies/whisper.cpp/build-apple/whisper.xcframework. Dit pad gebruikt de thuismap van de bouwer. De twee overige relatieve whisper-verwijzingen in het project worden niet door de link- of embedfase gebruikt.
2. De app bouwen zonder ondertekening
Gebruik deze directe Xcode-opdracht. De meegeleverde make local-opdracht is bedoeld voor de oorspronkelijke ontwikkelmachine en bevat daarvoor persoonlijke ondertekeninstellingen.
xcodebuild -project VoiceInk.xcodeproj \ -scheme VoiceInk \ -configuration Debug \ -derivedDataPath "$PWD/.source-build" \ -xcconfig LocalBuild.xcconfig \ CODE_SIGNING_ALLOWED=NO \ CODE_SIGNING_REQUIRED=NO \ CODE_SIGN_IDENTITY="" \ CODE_SIGN_STYLE=Manual \ DEVELOPMENT_TEAM="" \ ENABLE_HARDENED_RUNTIME=NO \ CODE_SIGN_ENTITLEMENTS=VoiceInk/VoiceInk.local.entitlements \ PRODUCT_BUNDLE_IDENTIFIER=ai.vakwark.proat.source \ build
De overrides schakelen ondertekening en het bijbehorende hardened runtime uit. De lokale configuratie behoudt LOCAL_BUILD; de lokale entitlements bevatten geen iCloud-groepen. De aparte bundle-ID houdt deze bronbuild gescheiden van een bestaande Proat-installatie.
Het resultaat staat in .source-build/Build/Products/Debug/Proat.app. Er is voor deze buildopdracht geen Mistral-sleutel nodig. Gebruik van cloudtranscriptie vraagt later om je eigen providersleutel.
Reikwijdte en controles
De opdrachten zijn beoordeeld tegen de meegeleverde projectpaden en buildinstellingen. Deze specifieke unsigned-buildopdracht is niet opnieuw volledig uitgevoerd. Een geslaagde build bewijst geen werkende microfoon, transcriptie of automatisch plakken.
De bronbuild is niet ondertekend of genotariseerd als distributierelease. Opstarten en macOS-toestemmingen moeten apart worden gecontroleerd. Voor automatisch plakken is toestemming voor Toegankelijkheid nodig.
De macOS-build gebruikt het meegeleverde VoiceInk/Services/DictionaryPack.generated.swift. De oorspronkelijke dictionary/generate.py --check verwacht daarnaast een iOS-uitvoerbestand dat niet in deze macOS-bronzip zit. Die controle is daarom geen geldige zelfstandige controle voor deze zip.
De mapselectie bevat appbron, assets, entitlements, Xcode-project, tests, woordenboekbron en de oorspronkelijke LICENSE. iOS-code, interne projectdocumenten, ontwikkelcredentials en buildproducten zijn niet nodig voor de hier beschreven macOS-build.