Skip to content

Instantly share code, notes, and snippets.

@mkchoi212
Last active April 23, 2018 06:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mkchoi212/4e5f1fb5abbcaedde3f9f8b692670e61 to your computer and use it in GitHub Desktop.
Save mkchoi212/4e5f1fb5abbcaedde3f9f8b692670e61 to your computer and use it in GitHub Desktop.
So you just ran
git clone https://github.com/videolan/vlc-ios.git
after deciding that you want to contribute to VLC-iOS. First thing is first; '''welcome to the community 🎉.'''<br>
To get you settled in, here are couple of issues beginners tend to run into when first trying to build and run the app.
= Running VLC-iOS =
== Podfile ==
You just tried to build and run the project but is getting the following errors.
Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock.
Run 'pod install' or update your CocoaPods installation.
Luckily, this one is easy to solve!
# Open up your favorite terminal
# <code>cd PATH_TO_VLC-iOS</code>
# Make sure [https://cocoapods.org Cocoapods] is installed
#* If not, run <code>sudo gem install cocoapods</code>
# Run <code>pod install</code>
'''Note: You should be able to run VLC-iOS on a simulator after resolving this issue.'''
== Shell Script Error ==
https://i.imgur.com/WYaXeWz.png
This error may occur if your default version of <code>python</code> is <code>python3</code>
To fix this error,
# Go to '''Targets'''
# Click on '''VLC-iOS'''
# Go to '''Build Phases''' tab
# Under the '''Run Script''' tab, change <code>python</code> to either <code>python2</code> or <code>python2.7</code>
= Running VLC-iOS (Local Device) =
The following problems may occur when you are trying to deploy the application to your local device. Please note that if you are under the free Apple Developer Program, you are limited to 3 deployment devices.
You can just follow these steps in order to build and run VLC-iOS on your local device after having cloned the repository and installing the [[#Podfile]].
== Code signing ==
When you first clone the project, the code signing team will be under an invalid team. If you go to `Targets -> VLC-iOS -> General`, you will see the following
https://i.imgur.com/WUNYDoN.png
# Press the drop down menu and choose a valid team
#* ''Make sure to do this for all targets''
#* If you don't have anything listed, you may need to sign in to your developer account by pressing the button '''Team -> Add an account'''
# Go to <code>SharedConfig.xcconfig</code> in the browser panel and change the existing bundle identifier prefix to
BUNDLE_IDENTIFIER_PREFIX=com.YOUR_IDENTIFIER_HERE
You may notice that after you made the above changes, some targets correctly generated a signing certificate. However, for those that did not, you may see something like this.
https://i.imgur.com/uWZ5GpO.png
== iCloud Permissions ==
The problem here is that VLC-iOS utilizes iCloud container.
This feature requires you to be a member of the VLC-iOS development team. However, since you are not, you do not have the permission to access those capabilities; hence the warnings 🤷‍♂️.
Here are the steps to fix this issue.
# In the project navigation panel, expand the folder '''iOS Supporting Files''' and click <code>VLC for iOS.entitlements</code>
# Delete all the subitems of <code>Entitlements File</code> except for <code>App Groups</code> and <code>Keychain Access Groups</code>
# Repeat steps 2 and 3 for <code>VLC-TV.entitlements</code> under <code>VLC-TV/Resources</code>
If the target '''VLC-tvOS''' is still giving you troubles and you are not planning on building the tvOS app, right-click on '''VLC-tvOS''' in the ''Targets'' panel and click '''Delete'''
= Building VLCKit =
So you are trying to build VLCKit either because you found a bug or is eager to see the inner works of VLC.
Well, consider yourself to be an advanced VLC user now 😎
== Choosing appropriate flags ==
When building VLCKit from source, you must provide a <code>-a</code> flag to specify the target architecture.
Note that there are two main architectures you can build for.
;Local device
: <code>-a aarch64</code>
;Simulator
: <code>-a x86_64</code>
For example, if you want to build VLCKit and debug it while using the ''simulator'', you may build VLCKit with the below flags
./compileAndBuildVLCKit.sh -dva x86_64
# -d for debugging
# -v for verbosity
# -a x86_64 build for simulator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment