Initial code commit
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.DS_Store
|
||||
*.swp
|
||||
*.lock
|
||||
profile
|
3
lbry-ios/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
lbry.xcodeproj/*.backup
|
||||
lbry.xcodeproj/project.xcworkspace/
|
||||
lbry.xcodeproj/xcuserdata/
|
19
lbry-ios/AppDelegate.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// AppDelegate.h
|
||||
// lbry
|
||||
//
|
||||
// Created by Akinwale Ariwodola on 31/05/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#include "../../kivy-ios/build/sdl2/arm64/SDL2-2.0.5/src/video/uikit/SDL_uikitappdelegate.h"
|
||||
|
||||
@interface AppDelegate : SDLUIKitDelegate {
|
||||
UIWindow *window;
|
||||
}
|
||||
|
||||
@property (strong, nonatomic, retain) UIWindow *window;
|
||||
|
||||
|
||||
@end
|
||||
|
83
lbry-ios/AppDelegate.m
Normal file
|
@ -0,0 +1,83 @@
|
|||
//
|
||||
// AppDelegate.m
|
||||
// lbry
|
||||
//
|
||||
// Created by Akinwale Ariwodola on 01/06/2018.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "MainViewController.h"
|
||||
#include "../../kivy-ios/dist/include/common/sdl2/SDL_main.h"
|
||||
#include "../../kivy-ios/dist/include/common/sdl2/SDL_system.h"
|
||||
|
||||
@implementation SDLUIKitDelegate (customDelegate)
|
||||
|
||||
// replace SDLUIKitDelegate with our app delegate
|
||||
+(NSString *)getAppDelegateClassName {
|
||||
return @"AppDelegate";
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface AppDelegate ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation AppDelegate
|
||||
@synthesize window;
|
||||
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
// Override point for customization after application launch.
|
||||
|
||||
SDL_SetMainReady();
|
||||
[self performSelector:@selector(postFinishLaunch) withObject:nil afterDelay:0.0];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
// override SDL postFinishLaunch
|
||||
- (void)postFinishLaunch {
|
||||
/* run the actual application (in this case, Python main) */
|
||||
SDL_iPhoneSetEventPump(SDL_TRUE);
|
||||
SDL_main(0, nil);
|
||||
SDL_iPhoneSetEventPump(SDL_FALSE);
|
||||
|
||||
// show main view
|
||||
MainViewController *viewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
|
||||
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
self.window.rootViewController = viewController;
|
||||
[viewController release];
|
||||
|
||||
[self.window makeKeyAndVisible];
|
||||
}
|
||||
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application {
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
|
||||
}
|
||||
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
||||
}
|
||||
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application {
|
||||
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
|
||||
}
|
||||
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application {
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
||||
}
|
||||
|
||||
|
||||
@end
|
BIN
lbry-ios/LaunchImages/Default-568h@2x.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
lbry-ios/LaunchImages/Default-667h@2x.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
lbry-ios/LaunchImages/Default-763h@3x.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
lbry-ios/LaunchImages/Default-Landscape.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
lbry-ios/LaunchImages/Default-Landscape@2x.png
Normal file
After Width: | Height: | Size: 9 KiB |
BIN
lbry-ios/LaunchImages/Default-Portrait.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
lbry-ios/LaunchImages/Default-Portrait@2x~ipad.png
Normal file
After Width: | Height: | Size: 9 KiB |
BIN
lbry-ios/LaunchImages/Default-Portrait@3x~ipad.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
lbry-ios/LaunchImages/Default.png
Normal file
After Width: | Height: | Size: 526 B |
BIN
lbry-ios/LaunchImages/Default@2x.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
lbry-ios/LaunchImages/Default@3x.png
Normal file
After Width: | Height: | Size: 4 KiB |
33
lbry-ios/MainView.xib
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MainViewController">
|
||||
<connections>
|
||||
<outlet property="view" destination="iN0-l3-epB" id="Mpg-a1-AjO"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="iN0-l3-epB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="LBRY" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sua-GE-mVw">
|
||||
<rect key="frame" x="24" y="30" width="42" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
13
lbry-ios/MainViewController.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
//
|
||||
// MainViewController.h
|
||||
// lbry
|
||||
//
|
||||
// Created by Akinwale Ariwodola on 01/06/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MainViewController : UIViewController
|
||||
|
||||
|
||||
@end
|
28
lbry-ios/MainViewController.m
Normal file
|
@ -0,0 +1,28 @@
|
|||
//
|
||||
// ViewController.m
|
||||
// lbry
|
||||
//
|
||||
// Created by Akinwale Ariwodola on 01/06/2018.
|
||||
//
|
||||
|
||||
#import "MainViewController.h"
|
||||
|
||||
@interface MainViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation MainViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
}
|
||||
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
|
||||
@end
|
4400
lbry-ios/PythonApp/cacert.pem
Normal file
BIN
lbry-ios/PythonApp/main.pyo
Normal file
21
lbry-ios/bridge.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
#import <CoreMotion/CoreMotion.h>
|
||||
|
||||
@interface bridge : NSObject {
|
||||
NSOperationQueue *queue;
|
||||
}
|
||||
|
||||
@property (strong, nonatomic) CMMotionManager *motionManager;
|
||||
@property (nonatomic) double ac_x;
|
||||
@property (nonatomic) double ac_y;
|
||||
@property (nonatomic) double ac_z;
|
||||
|
||||
@property (nonatomic) double gy_x;
|
||||
@property (nonatomic) double gy_y;
|
||||
@property (nonatomic) double gy_z;
|
||||
|
||||
@property (nonatomic) double mg_x;
|
||||
@property (nonatomic) double mg_y;
|
||||
@property (nonatomic) double mg_z;
|
||||
|
||||
@end
|
64
lbry-ios/bridge.m
Normal file
|
@ -0,0 +1,64 @@
|
|||
#import "bridge.h"
|
||||
|
||||
@implementation bridge
|
||||
|
||||
- (id) init {
|
||||
if(self = [super init]) {
|
||||
self.motionManager = [[CMMotionManager alloc] init];
|
||||
queue = [[NSOperationQueue alloc] init];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)startAccelerometer {
|
||||
|
||||
if ([self.motionManager isAccelerometerAvailable] == YES) {
|
||||
[self.motionManager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
|
||||
self.ac_x = accelerometerData.acceleration.x;
|
||||
self.ac_y = accelerometerData.acceleration.y;
|
||||
self.ac_z = accelerometerData.acceleration.z;
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)startGyroscope {
|
||||
|
||||
if ([self.motionManager isGyroAvailable] == YES) {
|
||||
[self.motionManager startGyroUpdatesToQueue:queue withHandler:^(CMGyroData *gyroData, NSError *error) {
|
||||
self.gy_x = gyroData.rotationRate.x;
|
||||
self.gy_y = gyroData.rotationRate.y;
|
||||
self.gy_z = gyroData.rotationRate.z;
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)startMagnetometer {
|
||||
|
||||
if (self.motionManager.magnetometerAvailable) {
|
||||
[self.motionManager startMagnetometerUpdatesToQueue:queue withHandler:^(CMMagnetometerData *magnetometerData, NSError *error) {
|
||||
self.mg_x = magnetometerData.magneticField.x;
|
||||
self.mg_y = magnetometerData.magneticField.y;
|
||||
self.mg_z = magnetometerData.magneticField.z;
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) stopAccelerometer {
|
||||
[self.motionManager stopAccelerometerUpdates];
|
||||
}
|
||||
|
||||
- (void) stopGyroscope {
|
||||
[self.motionManager stopGyroUpdates];
|
||||
}
|
||||
|
||||
- (void) stopMagnetometer {
|
||||
[self.motionManager stopMagnetometerUpdates];
|
||||
}
|
||||
|
||||
- (void) dealloc {
|
||||
[self.motionManager release];
|
||||
[queue release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
BIN
lbry-ios/icon.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
44
lbry-ios/lbry-Info.plist
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIcons</key>
|
||||
<dict/>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.1</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<true/>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
585
lbry-ios/lbry.xcodeproj/project.pbxproj
Executable file
|
@ -0,0 +1,585 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
01532DAA137C099F0076F6BF /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 01532DA9137C099F0076F6BF /* icon.png */; };
|
||||
0D4F4378B339AD7BACA6FA6B /* libsdl2_ttf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B05349ADB2C6E4ED29FB1014 /* libsdl2_ttf.a */; };
|
||||
19054D5887DF1D0B8681597E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3034879BF61804CA39C5C38 /* CoreGraphics.framework */; };
|
||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
|
||||
1F3D43E2B259DAE44B6E7C7F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B142452AB6DEFF9584F96075 /* Accelerate.framework */; };
|
||||
2AF14BF6B986E9F5E921841E /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5E64F768264087E92C15ECE /* ImageIO.framework */; };
|
||||
2CB5F34717D5233A006187AB /* bridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CB5F34617D5233A006187AB /* bridge.m */; };
|
||||
36A14DDEBC4155B95FBC88F8 /* libpython.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D8145F89FA2B0650079E1F7 /* libpython.a */; };
|
||||
39D340808C2BE2A19DF56743 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7174C8787F6F59D3AB04A70 /* UIKit.framework */; };
|
||||
424C45FEA6E9F6586C4EDFDD /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50BA49D19A5346D822EAA958 /* MessageUI.framework */; };
|
||||
59738AB51A8BB5D8001B2C0C /* lib in Resources */ = {isa = PBXBuildFile; fileRef = 59738AB41A8BB5D8001B2C0C /* lib */; };
|
||||
59738AB71A8BB71F001B2C0C /* include in Resources */ = {isa = PBXBuildFile; fileRef = 59738AB61A8BB71F001B2C0C /* include */; };
|
||||
59738ABB1A8E19AA001B2C0C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 59738ABA1A8E19AA001B2C0C /* Images.xcassets */; };
|
||||
59738ADB1A8E62D6001B2C0C /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD01A8E62D6001B2C0C /* Default-568h@2x.png */; };
|
||||
59738ADC1A8E62D6001B2C0C /* Default-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD11A8E62D6001B2C0C /* Default-667h@2x.png */; };
|
||||
59738ADD1A8E62D6001B2C0C /* Default-763h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD21A8E62D6001B2C0C /* Default-763h@3x.png */; };
|
||||
59738ADE1A8E62D6001B2C0C /* Default-Landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD31A8E62D6001B2C0C /* Default-Landscape.png */; };
|
||||
59738ADF1A8E62D6001B2C0C /* Default-Landscape@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD41A8E62D6001B2C0C /* Default-Landscape@2x.png */; };
|
||||
59738AE01A8E62D6001B2C0C /* Default-Portrait.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD51A8E62D6001B2C0C /* Default-Portrait.png */; };
|
||||
59738AE11A8E62D6001B2C0C /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD61A8E62D6001B2C0C /* Default-Portrait@2x~ipad.png */; };
|
||||
59738AE21A8E62D6001B2C0C /* Default-Portrait@3x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD71A8E62D6001B2C0C /* Default-Portrait@3x~ipad.png */; };
|
||||
59738AE31A8E62D6001B2C0C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD81A8E62D6001B2C0C /* Default.png */; };
|
||||
59738AE41A8E62D6001B2C0C /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738AD91A8E62D6001B2C0C /* Default@2x.png */; };
|
||||
59738AE51A8E62D6001B2C0C /* Default@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 59738ADA1A8E62D6001B2C0C /* Default@3x.png */; };
|
||||
5F18433484A551DA881BDE93 /* libsdl2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 95854603AE9182C63C3EF7D5 /* libsdl2.a */; };
|
||||
640019E820C28A6600E0A506 /* libcffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 640019E720C28A6300E0A506 /* libcffi.a */; };
|
||||
640019EA20C28A7E00E0A506 /* libcryptography.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 640019E920C28A7A00E0A506 /* libcryptography.a */; };
|
||||
640019EC20C28A9C00E0A506 /* libminiupnpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 640019EB20C28A9900E0A506 /* libminiupnpc.a */; };
|
||||
640019EE20C28AB200E0A506 /* libtwisted.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 640019ED20C28AB000E0A506 /* libtwisted.a */; };
|
||||
6408B3A120C1FBFD00070CB1 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6408B3A020C1FBFD00070CB1 /* libssl.a */; };
|
||||
6408B3A320C1FC1900070CB1 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6408B3A220C1FC1800070CB1 /* libcrypto.a */; };
|
||||
6484B78D20C10DA500062902 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B78C20C10DA500062902 /* libsqlite3.tbd */; };
|
||||
6484B78F20C10E8800062902 /* libsdl2_mixer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B78E20C10E8800062902 /* libsdl2_mixer.a */; };
|
||||
6484B79120C111D700062902 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B79020C111D700062902 /* libz.tbd */; };
|
||||
6484B79320C111DF00062902 /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B79220C111DF00062902 /* libbz2.tbd */; };
|
||||
6484B79520C111E800062902 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B79420C111E800062902 /* libc++.tbd */; };
|
||||
6484B79720C1189D00062902 /* PythonApp in Resources */ = {isa = PBXBuildFile; fileRef = 6484B79620C1189D00062902 /* PythonApp */; };
|
||||
6484B79A20C1199300062902 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6484B79920C1199300062902 /* AppDelegate.m */; };
|
||||
6484B79E20C121CB00062902 /* MainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6484B79D20C121CB00062902 /* MainView.xib */; };
|
||||
6484B7A120C1226800062902 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6484B7A020C1226800062902 /* MainViewController.m */; };
|
||||
6484B7A320C1369900062902 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B7A220C1369800062902 /* AVFoundation.framework */; };
|
||||
6484B7A520C136A400062902 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6484B7A420C136A400062902 /* GameController.framework */; };
|
||||
74FC4519BE8A52928723F3BD /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 776F4735AF8FD89B15D2A2EA /* libffi.a */; };
|
||||
763E468093A6B581FB136AA8 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D134B7E96BC4F8CA2E29A08 /* OpenGLES.framework */; };
|
||||
76E3404ABAC3FEB4A2210148 /* libkivy.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D6646679B5C9694F71466E9 /* libkivy.a */; };
|
||||
797C465C950F0D2054FA090E /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E2B4012A581F4EBCED8E0F5 /* libfreetype.a */; };
|
||||
82144E24968888DD90546987 /* libsdl2_image.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C949404D8486ED51E7863BBD /* libsdl2_image.a */; };
|
||||
9255440A8DB1ED47D6FEAC83 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1CB403596228F246B0F9D23 /* QuartzCore.framework */; };
|
||||
96334DE2901260FA1326FA28 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C820486F93F25A4037C1A4AD /* MobileCoreServices.framework */; };
|
||||
B5F14C1CADABEB6644915745 /* libpyobjus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 14F74F4A953FC56F0C2C36A8 /* libpyobjus.a */; };
|
||||
BD3F447385625DC5E0566EBE /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E03432BA4C60C15163576F9 /* CoreMotion.framework */; };
|
||||
D0474458869A101539DB5A09 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 622C4DB6B6A2A8672B21818C /* AudioToolbox.framework */; };
|
||||
EC9647E0AF68DBE8F320F021 /* libios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F334D5ABE6A667194F22D46 /* libios.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
01532DA9137C099F0076F6BF /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
|
||||
14F74F4A953FC56F0C2C36A8 /* libpyobjus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpyobjus.a; path = "../../kivy-ios/dist/lib/libpyobjus.a"; sourceTree = SOURCE_ROOT; };
|
||||
1D6058910D05DD3D006BFB54 /* lbry.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = lbry.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
2CB5F34517D5233A006187AB /* bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bridge.h; sourceTree = SOURCE_ROOT; };
|
||||
2CB5F34617D5233A006187AB /* bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = bridge.m; sourceTree = SOURCE_ROOT; };
|
||||
4D6646679B5C9694F71466E9 /* libkivy.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkivy.a; path = "../../kivy-ios/dist/lib/libkivy.a"; sourceTree = SOURCE_ROOT; };
|
||||
4E03432BA4C60C15163576F9 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CoreMotion.framework; sourceTree = "<absolute>"; };
|
||||
50BA49D19A5346D822EAA958 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = "<absolute>"; };
|
||||
59738AB41A8BB5D8001B2C0C /* lib */ = {isa = PBXFileReference; lastKnownFileType = folder; name = lib; path = "/Users/akinwale/Dev/Python/kivy-ios/dist/root/python/lib"; sourceTree = "<group>"; };
|
||||
59738AB61A8BB71F001B2C0C /* include */ = {isa = PBXFileReference; lastKnownFileType = folder; name = include; path = "/Users/akinwale/Dev/Python/kivy-ios/dist/hostpython/include"; sourceTree = "<group>"; };
|
||||
59738ABA1A8E19AA001B2C0C /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = lbry/Images.xcassets; sourceTree = "<group>"; };
|
||||
59738AD01A8E62D6001B2C0C /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "LaunchImages/Default-568h@2x.png"; sourceTree = "<group>"; };
|
||||
59738AD11A8E62D6001B2C0C /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-667h@2x.png"; path = "LaunchImages/Default-667h@2x.png"; sourceTree = "<group>"; };
|
||||
59738AD21A8E62D6001B2C0C /* Default-763h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-763h@3x.png"; path = "LaunchImages/Default-763h@3x.png"; sourceTree = "<group>"; };
|
||||
59738AD31A8E62D6001B2C0C /* Default-Landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Landscape.png"; path = "LaunchImages/Default-Landscape.png"; sourceTree = "<group>"; };
|
||||
59738AD41A8E62D6001B2C0C /* Default-Landscape@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Landscape@2x.png"; path = "LaunchImages/Default-Landscape@2x.png"; sourceTree = "<group>"; };
|
||||
59738AD51A8E62D6001B2C0C /* Default-Portrait.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Portrait.png"; path = "LaunchImages/Default-Portrait.png"; sourceTree = "<group>"; };
|
||||
59738AD61A8E62D6001B2C0C /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Portrait@2x~ipad.png"; path = "LaunchImages/Default-Portrait@2x~ipad.png"; sourceTree = "<group>"; };
|
||||
59738AD71A8E62D6001B2C0C /* Default-Portrait@3x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-Portrait@3x~ipad.png"; path = "LaunchImages/Default-Portrait@3x~ipad.png"; sourceTree = "<group>"; };
|
||||
59738AD81A8E62D6001B2C0C /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = LaunchImages/Default.png; sourceTree = "<group>"; };
|
||||
59738AD91A8E62D6001B2C0C /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "LaunchImages/Default@2x.png"; sourceTree = "<group>"; };
|
||||
59738ADA1A8E62D6001B2C0C /* Default@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@3x.png"; path = "LaunchImages/Default@3x.png"; sourceTree = "<group>"; };
|
||||
5D134B7E96BC4F8CA2E29A08 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = "<absolute>"; };
|
||||
5D8145F89FA2B0650079E1F7 /* libpython.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpython.a; path = "../../kivy-ios/dist/lib/libpython.a"; sourceTree = SOURCE_ROOT; };
|
||||
622C4DB6B6A2A8672B21818C /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
640019E720C28A6300E0A506 /* libcffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcffi.a; path = "../../kivy-ios/dist/lib/libcffi.a"; sourceTree = "<group>"; };
|
||||
640019E920C28A7A00E0A506 /* libcryptography.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcryptography.a; path = "../../kivy-ios/dist/lib/libcryptography.a"; sourceTree = "<group>"; };
|
||||
640019EB20C28A9900E0A506 /* libminiupnpc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libminiupnpc.a; path = "../../kivy-ios/dist/lib/libminiupnpc.a"; sourceTree = "<group>"; };
|
||||
640019ED20C28AB000E0A506 /* libtwisted.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtwisted.a; path = "../../kivy-ios/dist/lib/libtwisted.a"; sourceTree = "<group>"; };
|
||||
6408B39E20C1FBD100070CB1 /* kivy-ios */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "kivy-ios"; path = "../../kivy-ios"; sourceTree = "<group>"; };
|
||||
6408B3A020C1FBFD00070CB1 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "../../kivy-ios/dist/lib/libssl.a"; sourceTree = "<group>"; };
|
||||
6408B3A220C1FC1800070CB1 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../kivy-ios/dist/lib/libcrypto.a"; sourceTree = "<group>"; };
|
||||
6484B78C20C10DA500062902 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/usr/lib/libsqlite3.tbd; sourceTree = DEVELOPER_DIR; };
|
||||
6484B78E20C10E8800062902 /* libsdl2_mixer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsdl2_mixer.a; path = "../../kivy-ios/dist/lib/libsdl2_mixer.a"; sourceTree = "<group>"; };
|
||||
6484B79020C111D700062902 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; };
|
||||
6484B79220C111DF00062902 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/usr/lib/libbz2.tbd; sourceTree = DEVELOPER_DIR; };
|
||||
6484B79420C111E800062902 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; };
|
||||
6484B79620C1189D00062902 /* PythonApp */ = {isa = PBXFileReference; lastKnownFileType = folder; path = PythonApp; sourceTree = "<group>"; };
|
||||
6484B79820C1197200062902 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
6484B79920C1199300062902 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
6484B79D20C121CB00062902 /* MainView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainView.xib; sourceTree = "<group>"; };
|
||||
6484B79F20C1224A00062902 /* MainViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = "<group>"; };
|
||||
6484B7A020C1226800062902 /* MainViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = "<group>"; };
|
||||
6484B7A220C1369800062902 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; };
|
||||
6484B7A420C136A400062902 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; };
|
||||
6F334D5ABE6A667194F22D46 /* libios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libios.a; path = "../../kivy-ios/dist/lib/libios.a"; sourceTree = SOURCE_ROOT; };
|
||||
776F4735AF8FD89B15D2A2EA /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libffi.a; path = "../../kivy-ios/dist/lib/libffi.a"; sourceTree = SOURCE_ROOT; };
|
||||
7E2B4012A581F4EBCED8E0F5 /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfreetype.a; path = "../../kivy-ios/dist/lib/libfreetype.a"; sourceTree = SOURCE_ROOT; };
|
||||
8D1107310486CEB800E47090 /* lbry-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "lbry-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
|
||||
95854603AE9182C63C3EF7D5 /* libsdl2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsdl2.a; path = "../../kivy-ios/dist/lib/libsdl2.a"; sourceTree = SOURCE_ROOT; };
|
||||
A1CB403596228F246B0F9D23 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
|
||||
A3034879BF61804CA39C5C38 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = "<absolute>"; };
|
||||
B05349ADB2C6E4ED29FB1014 /* libsdl2_ttf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsdl2_ttf.a; path = "../../kivy-ios/dist/lib/libsdl2_ttf.a"; sourceTree = SOURCE_ROOT; };
|
||||
B142452AB6DEFF9584F96075 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = "<absolute>"; };
|
||||
B7174C8787F6F59D3AB04A70 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = "<absolute>"; };
|
||||
C5E64F768264087E92C15ECE /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = "<absolute>"; };
|
||||
C820486F93F25A4037C1A4AD /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = "<absolute>"; };
|
||||
C949404D8486ED51E7863BBD /* libsdl2_image.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsdl2_image.a; path = "../../kivy-ios/dist/lib/libsdl2_image.a"; sourceTree = SOURCE_ROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6484B7A320C1369900062902 /* AVFoundation.framework in Frameworks */,
|
||||
D0474458869A101539DB5A09 /* AudioToolbox.framework in Frameworks */,
|
||||
2AF14BF6B986E9F5E921841E /* ImageIO.framework in Frameworks */,
|
||||
6484B7A520C136A400062902 /* GameController.framework in Frameworks */,
|
||||
424C45FEA6E9F6586C4EDFDD /* MessageUI.framework in Frameworks */,
|
||||
39D340808C2BE2A19DF56743 /* UIKit.framework in Frameworks */,
|
||||
763E468093A6B581FB136AA8 /* OpenGLES.framework in Frameworks */,
|
||||
BD3F447385625DC5E0566EBE /* CoreMotion.framework in Frameworks */,
|
||||
96334DE2901260FA1326FA28 /* MobileCoreServices.framework in Frameworks */,
|
||||
19054D5887DF1D0B8681597E /* CoreGraphics.framework in Frameworks */,
|
||||
1F3D43E2B259DAE44B6E7C7F /* Accelerate.framework in Frameworks */,
|
||||
9255440A8DB1ED47D6FEAC83 /* QuartzCore.framework in Frameworks */,
|
||||
6484B79320C111DF00062902 /* libbz2.tbd in Frameworks */,
|
||||
6484B79520C111E800062902 /* libc++.tbd in Frameworks */,
|
||||
6484B79120C111D700062902 /* libz.tbd in Frameworks */,
|
||||
640019E820C28A6600E0A506 /* libcffi.a in Frameworks */,
|
||||
6408B3A320C1FC1900070CB1 /* libcrypto.a in Frameworks */,
|
||||
640019EA20C28A7E00E0A506 /* libcryptography.a in Frameworks */,
|
||||
6408B3A120C1FBFD00070CB1 /* libssl.a in Frameworks */,
|
||||
6484B78D20C10DA500062902 /* libsqlite3.tbd in Frameworks */,
|
||||
EC9647E0AF68DBE8F320F021 /* libios.a in Frameworks */,
|
||||
640019EC20C28A9C00E0A506 /* libminiupnpc.a in Frameworks */,
|
||||
B5F14C1CADABEB6644915745 /* libpyobjus.a in Frameworks */,
|
||||
74FC4519BE8A52928723F3BD /* libffi.a in Frameworks */,
|
||||
76E3404ABAC3FEB4A2210148 /* libkivy.a in Frameworks */,
|
||||
797C465C950F0D2054FA090E /* libfreetype.a in Frameworks */,
|
||||
36A14DDEBC4155B95FBC88F8 /* libpython.a in Frameworks */,
|
||||
5F18433484A551DA881BDE93 /* libsdl2.a in Frameworks */,
|
||||
82144E24968888DD90546987 /* libsdl2_image.a in Frameworks */,
|
||||
6484B78F20C10E8800062902 /* libsdl2_mixer.a in Frameworks */,
|
||||
0D4F4378B339AD7BACA6FA6B /* libsdl2_ttf.a in Frameworks */,
|
||||
640019EE20C28AB200E0A506 /* libtwisted.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2CB5F34517D5233A006187AB /* bridge.h */,
|
||||
2CB5F34617D5233A006187AB /* bridge.m */,
|
||||
);
|
||||
path = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1D6058910D05DD3D006BFB54 /* lbry.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
080E96DDFE201D6D7F000001 /* Classes */,
|
||||
29B97315FDCFA39411CA2CEA /* Sources */,
|
||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||
);
|
||||
name = CustomTemplate;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97315FDCFA39411CA2CEA /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6484B79620C1189D00062902 /* PythonApp */,
|
||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
||||
6484B79820C1197200062902 /* AppDelegate.h */,
|
||||
6484B79920C1199300062902 /* AppDelegate.m */,
|
||||
6484B79D20C121CB00062902 /* MainView.xib */,
|
||||
6484B79F20C1224A00062902 /* MainViewController.h */,
|
||||
6484B7A020C1226800062902 /* MainViewController.m */,
|
||||
);
|
||||
name = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
59738ABA1A8E19AA001B2C0C /* Images.xcassets */,
|
||||
59738AB61A8BB71F001B2C0C /* include */,
|
||||
59738AB41A8BB5D8001B2C0C /* lib */,
|
||||
01532DA9137C099F0076F6BF /* icon.png */,
|
||||
8D1107310486CEB800E47090 /* lbry-Info.plist */,
|
||||
59738AD01A8E62D6001B2C0C /* Default-568h@2x.png */,
|
||||
59738AD11A8E62D6001B2C0C /* Default-667h@2x.png */,
|
||||
59738AD21A8E62D6001B2C0C /* Default-763h@3x.png */,
|
||||
59738AD31A8E62D6001B2C0C /* Default-Landscape.png */,
|
||||
59738AD41A8E62D6001B2C0C /* Default-Landscape@2x.png */,
|
||||
59738AD51A8E62D6001B2C0C /* Default-Portrait.png */,
|
||||
59738AD61A8E62D6001B2C0C /* Default-Portrait@2x~ipad.png */,
|
||||
59738AD71A8E62D6001B2C0C /* Default-Portrait@3x~ipad.png */,
|
||||
59738AD81A8E62D6001B2C0C /* Default.png */,
|
||||
59738AD91A8E62D6001B2C0C /* Default@2x.png */,
|
||||
59738ADA1A8E62D6001B2C0C /* Default@3x.png */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
640019ED20C28AB000E0A506 /* libtwisted.a */,
|
||||
640019EB20C28A9900E0A506 /* libminiupnpc.a */,
|
||||
640019E920C28A7A00E0A506 /* libcryptography.a */,
|
||||
640019E720C28A6300E0A506 /* libcffi.a */,
|
||||
6408B3A220C1FC1800070CB1 /* libcrypto.a */,
|
||||
6408B3A020C1FBFD00070CB1 /* libssl.a */,
|
||||
6408B39E20C1FBD100070CB1 /* kivy-ios */,
|
||||
6484B7A420C136A400062902 /* GameController.framework */,
|
||||
6484B7A220C1369800062902 /* AVFoundation.framework */,
|
||||
6484B79420C111E800062902 /* libc++.tbd */,
|
||||
6484B79220C111DF00062902 /* libbz2.tbd */,
|
||||
6484B79020C111D700062902 /* libz.tbd */,
|
||||
6484B78E20C10E8800062902 /* libsdl2_mixer.a */,
|
||||
6484B78C20C10DA500062902 /* libsqlite3.tbd */,
|
||||
622C4DB6B6A2A8672B21818C /* AudioToolbox.framework */,
|
||||
C5E64F768264087E92C15ECE /* ImageIO.framework */,
|
||||
50BA49D19A5346D822EAA958 /* MessageUI.framework */,
|
||||
B7174C8787F6F59D3AB04A70 /* UIKit.framework */,
|
||||
5D134B7E96BC4F8CA2E29A08 /* OpenGLES.framework */,
|
||||
4E03432BA4C60C15163576F9 /* CoreMotion.framework */,
|
||||
C820486F93F25A4037C1A4AD /* MobileCoreServices.framework */,
|
||||
A3034879BF61804CA39C5C38 /* CoreGraphics.framework */,
|
||||
B142452AB6DEFF9584F96075 /* Accelerate.framework */,
|
||||
A1CB403596228F246B0F9D23 /* QuartzCore.framework */,
|
||||
C949404D8486ED51E7863BBD /* libsdl2_image.a */,
|
||||
6F334D5ABE6A667194F22D46 /* libios.a */,
|
||||
14F74F4A953FC56F0C2C36A8 /* libpyobjus.a */,
|
||||
776F4735AF8FD89B15D2A2EA /* libffi.a */,
|
||||
4D6646679B5C9694F71466E9 /* libkivy.a */,
|
||||
7E2B4012A581F4EBCED8E0F5 /* libfreetype.a */,
|
||||
5D8145F89FA2B0650079E1F7 /* libpython.a */,
|
||||
95854603AE9182C63C3EF7D5 /* libsdl2.a */,
|
||||
B05349ADB2C6E4ED29FB1014 /* libsdl2_ttf.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
1D6058900D05DD3D006BFB54 /* lbry */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "lbry" */;
|
||||
buildPhases = (
|
||||
113D17E2153E3DB5001310A5 /* ShellScript */,
|
||||
113D17E2153E3DB5001310A6 /* ShellScript */,
|
||||
113D17E2153E3DB5001310A7 /* ShellScript */,
|
||||
1D60588D0D05DD3D006BFB54 /* Resources */,
|
||||
1D60588E0D05DD3D006BFB54 /* Sources */,
|
||||
1D60588F0D05DD3D006BFB54 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = lbry;
|
||||
productName = lbry;
|
||||
productReference = 1D6058910D05DD3D006BFB54 /* lbry.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0940;
|
||||
};
|
||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "lbry" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
1D6058900D05DD3D006BFB54 /* lbry */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
1D60588D0D05DD3D006BFB54 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
59738AE41A8E62D6001B2C0C /* Default@2x.png in Resources */,
|
||||
6484B79E20C121CB00062902 /* MainView.xib in Resources */,
|
||||
59738AB51A8BB5D8001B2C0C /* lib in Resources */,
|
||||
59738ABB1A8E19AA001B2C0C /* Images.xcassets in Resources */,
|
||||
59738ADE1A8E62D6001B2C0C /* Default-Landscape.png in Resources */,
|
||||
59738AE31A8E62D6001B2C0C /* Default.png in Resources */,
|
||||
01532DAA137C099F0076F6BF /* icon.png in Resources */,
|
||||
59738AE11A8E62D6001B2C0C /* Default-Portrait@2x~ipad.png in Resources */,
|
||||
6484B79720C1189D00062902 /* PythonApp in Resources */,
|
||||
59738AE01A8E62D6001B2C0C /* Default-Portrait.png in Resources */,
|
||||
59738ADC1A8E62D6001B2C0C /* Default-667h@2x.png in Resources */,
|
||||
59738ADB1A8E62D6001B2C0C /* Default-568h@2x.png in Resources */,
|
||||
59738ADD1A8E62D6001B2C0C /* Default-763h@3x.png in Resources */,
|
||||
59738AE21A8E62D6001B2C0C /* Default-Portrait@3x~ipad.png in Resources */,
|
||||
59738AB71A8BB71F001B2C0C /* include in Resources */,
|
||||
59738AE51A8E62D6001B2C0C /* Default@3x.png in Resources */,
|
||||
59738ADF1A8E62D6001B2C0C /* Default-Landscape@2x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
113D17E2153E3DB5001310A5 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 12;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellScript = "rsync -av --delete \"/Users/akinwale/Dev/Python/lbry-ios/src/main/python\"/ \"$PROJECT_DIR\"/PythonApp";
|
||||
};
|
||||
113D17E2153E3DB5001310A6 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 12;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellScript = "if [ $arch = \"arm64\" ]; then export local_arch=\"aarch64\"; elif [ $arch = \"armv7\" ]; then export local_arch=\"arm\"; else export local_arch=$arch; fi; export PYTHONPATH=/Users/akinwale/Dev/Python/kivy-ios/dist/../build/python/$arch/Python-2.7.13/build/lib.darwin-$local_arch-2.7; /Users/akinwale/Dev/Python/kivy-ios/dist/hostpython/bin/python -OO -m compileall \"$PROJECT_DIR\"/PythonApp";
|
||||
};
|
||||
113D17E2153E3DB5001310A7 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 12;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellScript = "find \"$PROJECT_DIR\"/PythonApp/ -iname '*.py' -exec rm {} \\; -or -iname '*.pyc' -exec rm {} \\;";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
1D60588E0D05DD3D006BFB54 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
|
||||
2CB5F34717D5233A006187AB /* bridge.m in Sources */,
|
||||
6484B7A120C1226800062902 /* MainViewController.m in Sources */,
|
||||
6484B79A20C1199300062902 /* AppDelegate.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
1D6058940D05DD3E006BFB54 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = "/Users/akinwale/Dev/Python/kivy-ios/dist/frameworks";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"/Users/akinwale/Dev/Python/kivy-ios/dist/root/python/include",
|
||||
"/Users/akinwale/Dev/Python/kivy-ios/dist/include/common/sdl2",
|
||||
);
|
||||
INFOPLIST_FILE = "lbry-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"/Users/akinwale/Dev/Python/kivy-ios/dist/lib",
|
||||
"\"$(SRCROOT)/../../kivy-ios/dist/lib\"",
|
||||
);
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
OTHER_LDFLAGS = "-all_load";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.kivy.lbry;
|
||||
PRODUCT_NAME = lbry;
|
||||
PROVISIONING_PROFILE = "";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||
SDKROOT = iphoneos;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
USER_HEADER_SEARCH_PATHS = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
1D6058950D05DD3E006BFB54 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = "/Users/akinwale/Dev/Python/kivy-ios/dist/frameworks";
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "";
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"\"$(PROJECT_DIR)/../build/include\"",
|
||||
"\"$(PROJECT_DIR)/../build/python/include\"",
|
||||
);
|
||||
INFOPLIST_FILE = "lbry-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(PROJECT_DIR)/../build/lib\"",
|
||||
"\"$(SRCROOT)/../../kivy-ios/dist/lib\"",
|
||||
);
|
||||
OTHER_LDFLAGS = "-all_load";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.kivy.lbry;
|
||||
PRODUCT_NAME = lbry;
|
||||
PROVISIONING_PROFILE = "";
|
||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = NO;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
C01FCF4F08A954540054247B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../kivy-ios/dist/lib";
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
USER_HEADER_SEARCH_PATHS = "/Users/akinwale/Dev/Python/kivy-ios/dist/root/include/";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
C01FCF5008A954540054247B /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../kivy-ios/dist/lib";
|
||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||
USER_HEADER_SEARCH_PATHS = "/Users/akinwale/Dev/Python/kivy-ios/dist/root/include/";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "lbry" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
1D6058940D05DD3E006BFB54 /* Debug */,
|
||||
1D6058950D05DD3E006BFB54 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "lbry" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
C01FCF4F08A954540054247B /* Debug */,
|
||||
C01FCF5008A954540054247B /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
185
lbry-ios/main.m
Normal file
|
@ -0,0 +1,185 @@
|
|||
//
|
||||
// main.m
|
||||
// lbry
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "AppDelegate.h"
|
||||
#include "../../kivy-ios/dist/root/python/include/python2.7/Python.h"
|
||||
#include "../../kivy-ios/dist/include/common/sdl2/SDL_main.h"
|
||||
#include <dlfcn.h>
|
||||
|
||||
void export_orientation();
|
||||
void load_custom_builtin_importer();
|
||||
|
||||
@interface PythonRunner : NSObject
|
||||
+(void)run:(id)param;
|
||||
@end
|
||||
|
||||
@implementation PythonRunner
|
||||
+(void)run:(id)param; {
|
||||
int ret = 0;
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
// Change the executing path to YourApp
|
||||
chdir("PythonApp");
|
||||
|
||||
// Special environment to prefer .pyo, and don't write bytecode if .py are found
|
||||
// because the process will not have a write attribute on the device.
|
||||
putenv("PYTHONOPTIMIZE=2");
|
||||
putenv("PYTHONDONTWRITEBYTECODE=1");
|
||||
putenv("PYTHONNOUSERSITE=1");
|
||||
putenv("PYTHONPATH=.");
|
||||
//putenv("PYTHONVERBOSE=1");
|
||||
|
||||
// Kivy environment to prefer some implementation on iOS platform
|
||||
putenv("KIVY_BUILD=ios");
|
||||
putenv("KIVY_NO_CONFIG=1");
|
||||
putenv("KIVY_NO_FILELOG=1");
|
||||
putenv("KIVY_WINDOW=sdl2");
|
||||
putenv("KIVY_IMAGE=imageio,tex");
|
||||
putenv("KIVY_AUDIO=sdl2");
|
||||
putenv("KIVY_GL_BACKEND=sdl2");
|
||||
#ifndef DEBUG
|
||||
// putenv("KIVY_NO_CONSOLELOG=1");
|
||||
#endif
|
||||
|
||||
// Twisted SSL certificate verify
|
||||
NSString *cacert = [NSString stringWithFormat:@"SSL_CERT_FILE=%@",
|
||||
[[NSBundle mainBundle] pathForResource:@"PythonApp/cacert" ofType:@"pem"]];
|
||||
putenv((char *)[cacert UTF8String]);
|
||||
|
||||
// Export orientation preferences for Kivy
|
||||
export_orientation();
|
||||
|
||||
NSString * resourcePath = [[NSBundle mainBundle] resourcePath];
|
||||
NSLog(@"PythonHome is: %s", (char *)[resourcePath UTF8String]);
|
||||
Py_SetPythonHome((char *)[resourcePath UTF8String]);
|
||||
|
||||
NSLog(@"Initializing python");
|
||||
Py_Initialize();
|
||||
|
||||
NSNumber* argcNumber = [param objectForKey:@"argc"];
|
||||
NSArray* argvArray = [param objectForKey:@"argv"];
|
||||
int argc = [argcNumber intValue];
|
||||
char* argv[argc];
|
||||
for (int i = 0; i < argc; i++) {
|
||||
argv[i] = (char *)[[argvArray objectAtIndex:i] UTF8String];
|
||||
}
|
||||
PySys_SetArgv(argc, argv);
|
||||
|
||||
// If other modules are using the thread, we need to initialize them before.
|
||||
PyEval_InitThreads();
|
||||
|
||||
// Add an importer for builtin modules
|
||||
load_custom_builtin_importer();
|
||||
|
||||
// Search and start main.py
|
||||
const char * prog = [
|
||||
[[NSBundle mainBundle] pathForResource:@"PythonApp/main" ofType:@"pyo"] cStringUsingEncoding:
|
||||
NSUTF8StringEncoding];
|
||||
NSLog(@"Running main.pyo: %s", prog);
|
||||
FILE* fd = fopen(prog, "r");
|
||||
if ( fd == NULL ) {
|
||||
ret = 1;
|
||||
NSLog(@"Unable to open main.pyo, abort.");
|
||||
} else {
|
||||
ret = PyRun_SimpleFileEx(fd, prog, 1);
|
||||
if (ret != 0)
|
||||
NSLog(@"Application quit abnormally!");
|
||||
}
|
||||
|
||||
Py_Finalize();
|
||||
NSLog(@"Leaving");
|
||||
[pool release];
|
||||
}
|
||||
@end
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
NSMutableArray *argvArray = [[NSMutableArray alloc] initWithCapacity: argc];
|
||||
for (int i = 0; i < argc; i++) {
|
||||
[argvArray addObject: [NSString stringWithCString: argv[i] encoding:NSUTF8StringEncoding]];
|
||||
}
|
||||
[NSThread detachNewThreadSelector:@selector(run:)
|
||||
toTarget:[PythonRunner class]
|
||||
withObject:@{@"argc": [NSNumber numberWithInt:argc], @"argv": argvArray}];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// This method reads the available orientations from the Info.plist file and
|
||||
// shares them via an environment variable. Kivy will automatically set the
|
||||
// orientation according to this environment value, if it exists. To restrict
|
||||
// the allowed orientation, please see the comments inside.
|
||||
void export_orientation() {
|
||||
NSDictionary *info = [[NSBundle mainBundle] infoDictionary];
|
||||
NSArray *orientations = [info objectForKey:@"UISupportedInterfaceOrientations"];
|
||||
|
||||
// Orientation restrictions
|
||||
// ========================
|
||||
// Comment or uncomment blocks 1-3 in order the limit orientation support
|
||||
|
||||
// 1. Landscape only
|
||||
// NSString *result = [[NSString alloc] initWithString:@"KIVY_ORIENTATION=LandscapeLeft LandscapeRight"];
|
||||
|
||||
// 2. Portrait only
|
||||
// NSString *result = [[NSString alloc] initWithString:@"KIVY_ORIENTATION=Portrait PortraitUpsideDown"];
|
||||
|
||||
// 3. All orientations
|
||||
NSString *result = [[NSString alloc] initWithString:@"KIVY_ORIENTATION="];
|
||||
for (int i = 0; i < [orientations count]; i++) {
|
||||
NSString *item = [orientations objectAtIndex:i];
|
||||
item = [item substringFromIndex:22];
|
||||
if (i > 0)
|
||||
result = [result stringByAppendingString:@" "];
|
||||
result = [result stringByAppendingString:item];
|
||||
}
|
||||
// ========================
|
||||
|
||||
putenv((char *)[result UTF8String]);
|
||||
NSLog(@"Available orientation: %@", result);
|
||||
}
|
||||
|
||||
void load_custom_builtin_importer() {
|
||||
static const char *custom_builtin_importer = \
|
||||
"import sys, imp\n" \
|
||||
"from os import environ\n" \
|
||||
"from os.path import exists, join\n" \
|
||||
"# Fake redirection to supress console output\n" \
|
||||
"if environ.get('KIVY_NO_CONSOLE', '0') == '1':\n" \
|
||||
" class fakestd(object):\n" \
|
||||
" def write(self, *args, **kw): pass\n" \
|
||||
" def flush(self, *args, **kw): pass\n" \
|
||||
" sys.stdout = fakestd()\n" \
|
||||
" sys.stderr = fakestd()\n" \
|
||||
"# Custom builtin importer for precompiled modules\n" \
|
||||
"class CustomBuiltinImporter(object):\n" \
|
||||
" def find_module(self, fullname, mpath=None):\n" \
|
||||
" if '.' not in fullname:\n" \
|
||||
" return\n" \
|
||||
" if not mpath:\n" \
|
||||
" return\n" \
|
||||
" part = fullname.rsplit('.')[-1]\n" \
|
||||
" fn = join(mpath[0], '{}.so'.format(part))\n" \
|
||||
" if exists(fn):\n" \
|
||||
" return self\n" \
|
||||
" return\n" \
|
||||
" def load_module(self, fullname):\n" \
|
||||
" f = fullname.replace('.', '_')\n" \
|
||||
" mod = sys.modules.get(f)\n" \
|
||||
" if mod is None:\n" \
|
||||
" # print 'LOAD DYNAMIC', f, sys.modules.keys()\n" \
|
||||
" try:\n" \
|
||||
" mod = imp.load_dynamic(f, f)\n" \
|
||||
" except ImportError:\n" \
|
||||
" # import traceback; traceback.print_exc();\n" \
|
||||
" # print 'LOAD DYNAMIC FALLBACK', fullname\n" \
|
||||
" mod = imp.load_dynamic(fullname, fullname)\n" \
|
||||
" sys.modules[fullname] = mod\n" \
|
||||
" return mod\n" \
|
||||
" return mod\n" \
|
||||
"sys.meta_path.append(CustomBuiltinImporter())";
|
||||
PyRun_SimpleString(custom_builtin_importer);
|
||||
}
|
||||
|
4400
src/main/python/cacert.pem
Normal file
114
src/main/python/main.py
Normal file
|
@ -0,0 +1,114 @@
|
|||
import keyring.backend
|
||||
import platform
|
||||
import ssl
|
||||
|
||||
'''
|
||||
import lbrynet.daemon.auth
|
||||
from lbrynet.daemon.auth.util import APIKey, API_KEY_NAME
|
||||
|
||||
def load_api_keys(path):
|
||||
key_name = API_KEY_NAME
|
||||
context = service.getApplicationContext();
|
||||
secret = lbrynet_utils.loadApiSecret(context, ks)
|
||||
# TODO: For testing. Normally, this should not be displayed.
|
||||
log.info('Loaded API Secret: %s', secret);
|
||||
return { key_name: APIKey(secret, key_name, None) }
|
||||
|
||||
def save_api_keys(keys, path):
|
||||
key_name = API_KEY_NAME
|
||||
if key_name in keys:
|
||||
secret = keys[key_name].secret
|
||||
# TODO: For testing. Normally, this should not be displayed.
|
||||
log.info('Saving API Secret: %s', secret)
|
||||
context = service.getApplicationContext()
|
||||
lbrynet_utils.saveApiSecret(secret, context, ks)
|
||||
|
||||
def initialize_api_key_file(key_path):
|
||||
context = service.getApplicationContext()
|
||||
secret = lbrynet_utils.loadApiSecret(context, ks)
|
||||
if secret is None:
|
||||
keys = {}
|
||||
new_api_key = APIKey.new(name=API_KEY_NAME)
|
||||
keys.update({new_api_key.name: new_api_key})
|
||||
save_api_keys(keys, key_path)
|
||||
|
||||
|
||||
lbrynet.daemon.auth.util.load_api_keys = load_api_keys
|
||||
lbrynet.daemon.auth.util.save_api_keys = save_api_keys
|
||||
lbrynet.daemon.auth.util.initialize_api_key_file = initialize_api_key_file
|
||||
|
||||
# Keyring backend
|
||||
class LbryAndroidKeyring(keyring.backend.KeyringBackend):
|
||||
priority = 1
|
||||
|
||||
def set_password(self, servicename, username, password):
|
||||
context = service.getApplicationContext()
|
||||
lbrynet_utils.setPassword(servicename, username, password, context, ks)
|
||||
|
||||
def get_password(self, servicename, username):
|
||||
context = service.getApplicationContext()
|
||||
return lbrynet_utils.getPassword(servicename, username, context, ks)
|
||||
|
||||
def delete_password(self, servicename, username):
|
||||
context = service.getApplicationContext()
|
||||
lbrynet_utils.deletePassword(servicename, username, context, ks)
|
||||
|
||||
# set the keyring backend
|
||||
keyring.set_keyring(LbryAndroidKeyring())
|
||||
'''
|
||||
|
||||
import logging.handlers
|
||||
from lbrynet.core import log_support
|
||||
from twisted.internet import defer, reactor
|
||||
from jsonrpc.proxy import JSONRPCProxy
|
||||
|
||||
from lbrynet import analytics
|
||||
from lbrynet import conf
|
||||
from lbrynet.core import utils, system_info
|
||||
from lbrynet.daemon.auth.client import LBRYAPIClient
|
||||
from lbrynet.daemon.DaemonServer import DaemonServer
|
||||
|
||||
|
||||
# LBRY Daemon
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
def test_internet_connection():
|
||||
return utils.check_connection()
|
||||
|
||||
def start():
|
||||
# lbry daemon
|
||||
conf.initialize_settings()
|
||||
|
||||
lbrynet_log = conf.settings.get_log_filename()
|
||||
log_support.configure_logging(lbrynet_log, True, [])
|
||||
log.debug('Final Settings: %s', conf.settings.get_current_settings_dict())
|
||||
log.info("Starting lbrynet-daemon")
|
||||
|
||||
if test_internet_connection():
|
||||
analytics_manager = analytics.Manager.new_instance()
|
||||
start_server_and_listen(False, analytics_manager)
|
||||
reactor.run()
|
||||
else:
|
||||
log.info("Not connected to internet, unable to start")
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def start_server_and_listen(use_auth, analytics_manager, max_tries=5):
|
||||
"""The primary entry point for launching the daemon.
|
||||
Args:
|
||||
use_auth: set to true to enable http authentication
|
||||
analytics_manager: to send analytics
|
||||
"""
|
||||
analytics_manager.send_server_startup()
|
||||
daemon_server = DaemonServer(analytics_manager)
|
||||
try:
|
||||
yield daemon_server.start(use_auth)
|
||||
analytics_manager.send_server_startup_success()
|
||||
except Exception as e:
|
||||
log.exception('Failed to startup')
|
||||
yield daemon_server.stop()
|
||||
analytics_manager.send_server_startup_error(str(e))
|
||||
reactor.fireSystemEvent("shutdown")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
start()
|