Skip to content

ThePalaceProject/ios-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Palace Build License

The Palace Project

This repository contains the client-side code for The Palace Project Palace application.

System Requirements

  • Install Xcode 16.1 in /Applications, open it and make sure to install additional components if it asks you.
  • Install Carthage if you haven't already. Using brew is recommended.

If you run this project with DRM support on a Mac computer with Apple Silicon, make sure to check [x] Open using Rosetta in Xcode.app application info. This is required to build with Adobe DRM support.

Building without Adobe DRM nor Private Repos

git clone [email protected]:ThePalaceProject/ios-core.git
cd ios-core

# one-time set-up
./scripts/setup-repo-nodrm.sh

# idempotent script to rebuild all dependencies
./scripts/build-3rd-party-dependencies.sh --no-private

Open Palace.xcodeproj and build the Palace-noDRM target.

Building With Adobe DRM

Building the Application from Scratch

  1. Contact project lead and ensure you have access to all the required private repos.
  2. Then run:
git clone [email protected]:ThePalaceProject/ios-core.git
cd ios-core
./scripts/bootstrap-drm.sh
  1. Open Palace.xcodeproj and build the Palace target.

Building Dependencies Individually

Unless the DRM dependencies change (which is very seldom) you shouldn't need to run the bootstrap-drm.sh script more than once.

Other 3rd party dependencies are managed via Carthage and a few git submodules. To rebuild them you can use the following idempotent script:

cd ios-core
./scripts/build-3rd-party-dependencies.sh

The scripts directory contains a number of other scripts to build dependencies more granularly and also to build/archive/test the app from the command line. These scripts are the same used by our CI system. All these scripts must be run from the root of Palace ios-core repository, not from the scripts directory.

Branching and CI

develop is the main development branch.

Release branch names follow the convention: release/palace/<version>. For example, release/palace/1.0.0.

Feature branch names (for features whose development is a month or more): feature/<feature-name>, e.g. feature/my-new-screen.

Continuous integration is enabled on merge events on develop branch. Palace device builds are uploaded to ios-binaries.

Palace License

Copyright © 2021 LYRASIS

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.