README_IOS.md
iOS Team Provision Profile: *"). Use the downloaded profile when deploying to an iOS device.After installation of XCode (and each update!) you need to create a symbolic link to iOS sdk:
$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk
See also: Attaching to Process
NOTE: ios-deploy seems to be outdated, and it is recommended to use xcode command line tools
Good tool for iOS deployment / debugging (lldb): ios-deploy
$ ios-deploy --bundle test.ipa
or
$ ios-deploy --debug --bundle test.app
It's often required to peek inside the permissions of a package or mobile provisioning file. For this you can install ProvisionQL
$ brew cask install provisionql
From: http://stackoverflow.com/a/13576028
symbol address = slide + stack address - load address
The slide value is the value of vmaddr in LC_SEGMENT cmd (Mostly this is 0x1000). Run the following to get it:
$ otool -arch ARCHITECTURE -l "APP_BUNDLE/APP_EXECUTABLE" | grep -B 3 -A 8 -m 2 "__TEXT"
Replace ARCHITECTURE with the actual architecture the crash report shows, e.g. armv7. Replace APP_BUNDLE/APP_EXECUTABLE with the path to the actual executable.
The stack address is the hex value from the crash report.
The load address can be is the first address showing in the Binary Images section at the very front of the line which contains your executable. (Usually the first entry).
Both iPhoneOS + macOS SDK's use the same steps to update.
To make sure you know what's been changed, you can check this page: https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Introduction/Introduction.html#//apple_ref/doc
From XCode 9.+ and onwards, you'll see the added/modified/deprecated items here: https://developer.apple.com/documentation?changes=latest_major
https://developer.apple.com/download/more/
See the script ./scripts/package/package_xcode_and_sdks.sh
$ tar -xvf iPhoneOS11.2.sdk.tar.gz -C $DYNAMO_HOME/ext/SDKs
$ tar -xvf XcodeToolchain9.2.sdk.tar.gz -C $DYNAMO_HOME/ext/SDKs
$ tar -xvf MacOSX10.12.sdk.tar.gz -C $DYNAMO_HOME/ext/SDKs
Update the sdk version(s).
In install_ext, update the commands if needed.
Update the sdk version(s) at the top of the file
Open extender/server/docker-base/Dockerfile
Make sure you unpack the package with the correct version number! Here, the package is downloaded and extracted to 'iPhoneOSXxx.sdk', making sure that the contained library has a version number!
NOTE: If it doesn't have a version number, it will bug out in subtle ways (E.g. the device orientation events won't fire properly)
RUN \
wget -q -O - ${DM_PACKAGES_URL}/iPhoneOS11.2.sdk.tar.gz | tar xz -C /opt
Also, you should update the list of allowedLibs in the defold/share/extender/build.yml for both iOS and OSX. The easiest way to do that is to use the defold/share/extender/find_libs_apple.sh (after running ./scripts/build.py install_ext to download the packages to $DYNAMO_HOME)