Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions BUILD_INSTRUCTIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Build Instructions for TorrentStreamer

## Решение проблемы с libarclite

Если вы получаете ошибку:
```
SDK does not contain 'libarclite' at the path '/Applications/Xcode-16.4.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target
```

Эта проблема возникает при использовании новых версий Xcode (16.x) со старыми CocoaPods зависимостями.

## Исправления, которые были применены:

### 1. Обновлен Podfile
- Добавлен минимальный deployment target: `platform :ios, '12.0'`
- Добавлен post_install скрипт для принудительного обновления deployment target всех подов
- Исключена архитектура arm64 для симулятора

### 2. Post-install скрипт
```ruby
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
end
end
end
```

## Инструкции по сборке:

1. Убедитесь, что у вас установлен CocoaPods:
```bash
gem install cocoapods
```

2. Установите зависимости:
```bash
pod install
```

3. Откройте проект в Xcode используя **workspace файл**:
```bash
open grabber.xcworkspace
```

⚠️ **Важно**: Используйте `.xcworkspace`, а не `.xcodeproj`!

4. Выберите целевое устройство или симулятор

5. Нажмите Cmd+B для сборки или Cmd+R для запуска

## Установленные зависимости:

- **PopcornTorrent** (1.3.15) - для работы с торрентами
- **MobileVLCKit** (3.3.17) - медиаплеер
- **Kanna** (5.2.7) - HTML парсер
- **GCDWebServer** (3.5.4) - веб-сервер (зависимость PopcornTorrent)

## Требования:

- iOS 12.0+
- Xcode 12.0+
- Swift 5.0+

## Возможные проблемы:

1. **Ошибка libarclite**: Решена обновлением deployment target
2. **Проблемы с симулятором на M1 Mac**: Исключена архитектура arm64 для симулятора
3. **Старые версии подов**: Принудительно обновлен deployment target через post_install

Если у вас все еще возникают проблемы, попробуйте:
```bash
pod deintegrate
pod install
```
27 changes: 22 additions & 5 deletions Podfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,36 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
# Define minimum iOS version to avoid libarclite issues
platform :ios, '12.0'

use_frameworks!

source 'https://github.com/CocoaPods/Specs'
source 'https://github.com/PopcornTimeTV/Specs'

def pods
pod 'PopcornTorrent'
use_frameworks!
pod 'MobileVLCKit'
end

target 'grabber' do
pods
pod 'Kanna', :git => 'https://github.com/tid-kijyun/Kanna'
pod 'Kanna', '~> 5.2.0'
end

# Post install script to fix deployment target and Swift module issues
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'

# Fix Swift module compilation issues
if target.name == 'Kanna'
config.build_settings['SWIFT_VERSION'] = '5.0'
config.build_settings['DEFINES_MODULE'] = 'YES'
config.build_settings['SWIFT_INSTALL_OBJC_HEADER'] = 'YES'
config.build_settings['SWIFT_OBJC_INTERFACE_HEADER_NAME'] = '$(SWIFT_MODULE_NAME)-Swift.h'
end
end
end
end

20 changes: 6 additions & 14 deletions Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,29 @@ PODS:
- GCDWebServer/Core (= 3.5.4)
- GCDWebServer/Core (3.5.4)
- Kanna (5.2.7)
- MobileVLCKit (3.3.17)
- MobileVLCKit (3.6.0)
- PopcornTorrent (1.3.15):
- GCDWebServer (~> 3.5.0)

DEPENDENCIES:
- Kanna (from `https://github.com/tid-kijyun/Kanna`)
- Kanna (~> 5.2.0)
- MobileVLCKit
- PopcornTorrent

SPEC REPOS:
https://github.com/CocoaPods/Specs:
- GCDWebServer
- Kanna
- MobileVLCKit
https://github.com/PopcornTimeTV/Specs:
- PopcornTorrent

EXTERNAL SOURCES:
Kanna:
:git: https://github.com/tid-kijyun/Kanna

CHECKOUT OPTIONS:
Kanna:
:commit: bf19cf5f5fff3924cc2b63dd32732bce28b4c748
:git: https://github.com/tid-kijyun/Kanna

SPEC CHECKSUMS:
GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4
Kanna: 01cfbddc127f5ff0963692f285fcbc8a9d62d234
MobileVLCKit: c5dd1b0ae933dc9c2348099840e753496dcdd908
MobileVLCKit: 8fe98ae53b7464f32e4bdf527cc7d53053e4d3a5
PopcornTorrent: 343ff0e04ba370764a9cf27c35685463f7428b90

PODFILE CHECKSUM: 1dbfce40a7d83a5f130b477ba9e085c90931dc2a
PODFILE CHECKSUM: 9eca34e50e6da5d2b5d6eebd0cb94e8c6c4841ab

COCOAPODS: 1.11.3
COCOAPODS: 1.16.2
97 changes: 97 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# TorrentStreamer

A native iOS application for streaming torrents directly on your device. This app allows users to search, browse, and stream torrent content using integrated torrent streaming capabilities.

## Features

- **Torrent Search**: Search for torrents through integrated APIs
- **Direct Streaming**: Stream torrent content without waiting for complete downloads
- **RuTracker Integration**: Built-in support for RuTracker.org torrent tracker
- **VLC Player Integration**: Uses MobileVLCKit for robust media playback
- **Core Data Storage**: Persistent storage for torrent metadata and user preferences

## Requirements

- iOS 8.0+
- Xcode 10.0+
- Swift 5.0+
- CocoaPods

## Installation

1. Clone the repository:
```bash
git clone https://github.com/StasGen/TorrentStreamer.git
cd TorrentStreamer
```

2. Install dependencies using CocoaPods:
```bash
pod install
```

3. Open the workspace file:
```bash
open grabber.xcworkspace
```

4. Build and run the project in Xcode.

## Dependencies

The project uses the following key dependencies managed through CocoaPods:

- **PopcornTorrent**: Core torrent streaming functionality
- **MobileVLCKit**: Video playback capabilities
- **Kanna**: HTML parsing for web scraping

For a complete list of dependencies, see the [`Podfile`](Podfile).

## Project Structure

```
grabber/
├── AppDelegate.swift # Main application delegate
├── Models/ # Data models
│ ├── TorrentPreviewModel.swift
│ └── TorrentDetailModel.swift
├── Networking/ # Network layer
│ ├── Core/ # Core networking components
│ └── RutrackerApi/ # RuTracker API integration
├── Presentation/ # View controllers and UI
├── Helpers/ # Utility classes and extensions
├── Extensions/ # Swift extensions
└── Resources/ # Assets and resources
```

## Usage

1. Launch the app on your iOS device or simulator
2. Use the search functionality to find torrents
3. Select a torrent from the search results
4. The app will begin streaming the content using the integrated torrent client
5. Enjoy streaming content directly without waiting for full downloads

## Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is available under the MIT License. See the LICENSE file for more details.

## Disclaimer

This application is for educational purposes only. Users are responsible for ensuring they comply with all applicable laws and regulations regarding torrent usage in their jurisdiction. The developers do not endorse or encourage piracy or copyright infringement.

## Author

Created by Станислав Калиберов (Stanislav Kaliberov)

---

**Note**: This application requires proper configuration and may need additional setup for full functionality. Please ensure you have the necessary permissions and legal rights to use torrent streaming services in your region.
Loading