Files
darkfi/bin/app/project.pbxproj.template
nighthawk24 7243212aee Add iOS build and run support for the DarkFi app
This pull request adds full iOS build and run support for the DarkFi app, including device, simulator and Xcode integration. It introduces ios-release  and ios-sim Makefile targets that build signed app bundles for devices and simulators.

Add SDK detection and Apple Silicon arch via xcrun / xcodebuild and improved error messages.

A new ios-xcode target generates a minimal DarkFi.xcodeproj using the external build system so the app can be archived and uploaded directly from Xcode.

The changes include an ios-Info.plist , updated entitlements and embedded.mobileprovision handling to fix crash-on-launch issues and allow fullscreen UI and arbitrary network loads.

iOS-specific path handling and ui_consts are added (with  #cfg(target_os = "ios")  and  HOME/Documents  logic) to avoid sandbox panics and unwritable home directory crashes while keeping Tor/arti working.

Asset copying is standardized so the assets content (including forest_720x1280 / 1920x1080 and locales) is laid out in the bundle in a way that matches the code’s VID_PATH / LOCALE_PATH expectations and macroquad ’s resource lookup on iOS.

Cargo dependencies are tuned for iOS by keeping required pieces like tor-dirmgr, excluding incompatible ones like tracing-android and ensuring no problematic iOS-only libraries cause link or runtime errors.
2025-12-22 17:23:37 -03:00

119 lines
3.0 KiB
Plaintext

// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
/* End PBXFileReference section */
/* Begin PBXGroup section */
MAIN_GROUP_ID = {
isa = PBXGroup;
children = (
);
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXLegacyTarget section */
LEGACY_TARGET_ID /* DarkFi */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "ios-release";
buildConfigurationList = CONFIG_LIST_ID /* Build configuration list for PBXLegacyTarget "DarkFi" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
buildWorkingDirectory = "$(PROJECT_DIR)";
dependencies = (
);
name = "DarkFi (Make)";
passBuildSettingsInEnvironment = 1;
productName = DarkFi;
};
/* End PBXLegacyTarget section */
/* Begin PBXProject section */
PROJECT_ID /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = "DarkFi";
};
buildConfigurationList = PROJECT_CONFIG_LIST_ID /* Build configuration list for PBXProject "DarkFi" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = MAIN_GROUP_ID;
projectDirPath = "";
projectRoot = "";
targets = (
LEGACY_TARGET_ID /* DarkFi (Make) */,
);
};
/* End PBXProject section */
/* Begin XCBuildConfiguration section */
DEBUG_CONFIG_ID /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
OTHER_CFLAGS = "";
};
name = Debug;
};
RELEASE_CONFIG_ID /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
OTHER_CFLAGS = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
PROJECT_CONFIG_LIST_ID /* Build configuration list for PBXProject "DarkFi" */ = {
isa = XCConfigurationList;
buildConfigurations = (
DEBUG_CONFIG_ID /* Debug */,
RELEASE_CONFIG_ID /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CONFIG_LIST_ID /* Build configuration list for PBXLegacyTarget "DarkFi" */ = {
isa = XCConfigurationList;
buildConfigurations = (
DEBUG_CONFIG_ID /* Debug */,
RELEASE_CONFIG_ID /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = PROJECT_ID /* Project object */;
}