mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
build: unify project development commands
This commit is contained in:
@@ -30,21 +30,24 @@ Prerequisites: Xcode, Rust with the Apple targets
|
||||
`aarch64-apple-darwin`), and `xcodegen` (`brew install xcodegen`).
|
||||
|
||||
```bash
|
||||
# 1. Build the Rust core and generate the Swift bindings + xcframework.
|
||||
apple/scripts/build-core.sh debug # or: release (see note below)
|
||||
|
||||
# 2. Generate the Xcode project.
|
||||
cd apple && xcodegen generate
|
||||
|
||||
# 3. Open and run, or build from the CLI:
|
||||
open VniDrop.xcodeproj
|
||||
# macOS:
|
||||
xcodebuild -project VniDrop.xcodeproj -scheme VniDrop -destination 'platform=macOS' build
|
||||
# iOS simulator:
|
||||
xcodebuild -project VniDrop.xcodeproj -scheme VniDrop \
|
||||
-destination 'platform=iOS Simulator,name=iPhone 15' build
|
||||
# From the repository root:
|
||||
make apple-core # Rust core, Swift bindings, and XCFramework
|
||||
make apple-project # generate apple/VniDrop.xcodeproj
|
||||
make open-apple-project # generate and open the project in Xcode
|
||||
make build-apple-macos # unsigned macOS build
|
||||
make open-apple # build and launch the macOS app
|
||||
make build-apple-ios # unsigned iOS simulator build
|
||||
make check-apple # iOS simulator tests
|
||||
```
|
||||
|
||||
Use `APPLE_PROFILE=release` to request a release Rust core, or set
|
||||
`APPLE_DESTINATION` to override the automatically selected iOS simulator.
|
||||
Code signing is disabled for the app and test targets; local and CI builds do
|
||||
not require an Apple Development team or provisioning profile. Make builds can
|
||||
opt in with `APPLE_CODE_SIGNING=YES`. For signed builds from Xcode, create the
|
||||
ignored `apple/Local.xcconfig` and override the signing settings there, including
|
||||
the development team.
|
||||
|
||||
## Command-line typecheck & tests
|
||||
|
||||
`Package.swift` builds the same sources as a library (minus the `@main` entry),
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
// Committed signing config. Contains no secrets.
|
||||
//
|
||||
// Per-developer signing (e.g. DEVELOPMENT_TEAM) goes in Local.xcconfig, which is
|
||||
// gitignored. The optional include below means the build still works for anyone
|
||||
// who doesn't have a Local.xcconfig — Xcode automatic signing fills in their team.
|
||||
//
|
||||
// To persist your team across `xcodegen generate`, create apple/Local.xcconfig:
|
||||
// DEVELOPMENT_TEAM = XXXXXXXXXX
|
||||
// VniDrop development and CI builds are intentionally unsigned.
|
||||
CODE_SIGNING_ALLOWED = NO
|
||||
CODE_SIGNING_REQUIRED = NO
|
||||
|
||||
// Signed local builds can opt in through this ignored file.
|
||||
#include? "Local.xcconfig"
|
||||
|
||||
@@ -41,7 +41,6 @@ targets:
|
||||
SWIFT_STRICT_CONCURRENCY: complete
|
||||
ENABLE_USER_SCRIPT_SANDBOXING: NO
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
||||
CODE_SIGN_STYLE: Automatic
|
||||
configs:
|
||||
debug:
|
||||
CODE_SIGN_ENTITLEMENTS: VniDrop/Resources/VniDrop.entitlements
|
||||
@@ -56,6 +55,9 @@ targets:
|
||||
VniDropTests:
|
||||
type: bundle.unit-test
|
||||
supportedDestinations: [iOS, macOS]
|
||||
configFiles:
|
||||
Debug: Signing.xcconfig
|
||||
Release: Signing.xcconfig
|
||||
sources:
|
||||
- path: Tests
|
||||
settings:
|
||||
@@ -63,7 +65,6 @@ targets:
|
||||
GENERATE_INFOPLIST_FILE: YES
|
||||
SWIFT_VERSION: "6.0"
|
||||
SWIFT_STRICT_CONCURRENCY: complete
|
||||
CODE_SIGN_STYLE: Automatic
|
||||
dependencies:
|
||||
- target: VniDrop
|
||||
|
||||
|
||||
Reference in New Issue
Block a user