Skip to content

Commit

Permalink
Merge branch 'master' into TIMOB-28149
Browse files Browse the repository at this point in the history
  • Loading branch information
ssaddique committed Oct 7, 2020
2 parents e80ab6a + f111de5 commit 90e248b
Show file tree
Hide file tree
Showing 7 changed files with 156 additions and 46 deletions.
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,46 @@
## [9.2.1](https://github.com/appcelerator/titanium_mobile/compare/9_2_0_GA...9.2.1) (2020-10-05)

## About this release

Titanium SDK 9.2.1 is a patch release of the SDK, addressing high-priority issues from previous releases.

As of this GA release, the previous Titanium SDK patch release (9.2.0) is no longer supported. End of support for this version will be 2021-04-05 or until the next patch release. Note: major and minor releases continue to be supported according to their nominal lifetime.
See [Axway Appcelerator Deprecation Policy](https://docs.axway.com/bundle/AMPLIFY_Appcelerator_Services_Overview_allOS_en/page/axway_appcelerator_deprecation_policy.html) and [Nominal Lifetimes](https://docs.axway.com/bundle/AMPLIFY_Appcelerator_Services_Overview_allOS_en/page/axway_appcelerator_product_lifecycle.html#AxwayAppceleratorProductLifecycle-NominalLifetimes) documents for details.

:warning: With the release of Titanium SDK 9.0.0, we no longer support Node.js 8.X. Node 10.13.0 is the new minimum supported version.

## Bug Fixes

### iOS platform

* [TIMOB-28127](https://jira.appcelerator.org/browse/TIMOB-28127) - TiUIListItemProxy overreleased causing intermittent crashing w/ macOS ([6d22e29](https://github.com/appcelerator/titanium_mobile/commit/6d22e297bb686afa974c0701c578265557acc2e0))
* [TIMOB-28156](https://jira.appcelerator.org/browse/TIMOB-28156) - Module build failing for modules not having platform directory ([c4d90fe](https://github.com/appcelerator/titanium_mobile/commit/c4d90fe0e1cc65f7481c5e715182f0f73f28048f))
* [TIMOB-28150](https://jira.appcelerator.org/browse/TIMOB-28150) - Updating backgroundImage displays irrelavant image inbetween change ([de88803](https://github.com/appcelerator/titanium_mobile/commit/de88803637c7956aba8160fff7e6e1489830bf1b))
* [TIMOB-28152](https://jira.appcelerator.org/browse/TIMOB-28152) - Compile error when SDK forces a rebuild ([9b516e4](https://github.com/appcelerator/titanium_mobile/commit/9b516e4e0163f89187b3ab1ddd2b0f750fad0893))
* [TIMOB-27812](https://jira.appcelerator.org/browse/TIMOB-27812) - format js errors in cli output ([bc32947](https://github.com/appcelerator/titanium_mobile/commit/bc32947554f94acd51561e0bba4585c5a74c56b5))
* [TIMOB-28151](https://jira.appcelerator.org/browse/TIMOB-28151) - Compile error if using Ti.Media APIs without openPhotoGallery ([c5d6d8d](https://github.com/appcelerator/titanium_mobile/commit/c5d6d8d2083db0cc18d03a7c67158101bafcae35))
* [TIMOB-28158](https://jira.appcelerator.org/browse/TIMOB-28158) - Duplicate framework search paths ([35e4058](https://github.com/appcelerator/titanium_mobile/commit/35e4058784e5ad6c104cf6ea2b16f3887e8f58b9))
* [TIMOB-28148](https://jira.appcelerator.org/browse/TIMOB-28148) - app crashes when updating tableview ([23c01db](https://github.com/appcelerator/titanium_mobile/commit/23c01db715a486898f401f68c2aa032550528176))
* [TIMOB-28154](https://jira.appcelerator.org/browse/TIMOB-28154) - Build failing on 9.2.0 with Hyperloop
* [TIMOB-28159](https://jira.appcelerator.org/browse/TIMOB-28159) - Building Swift module created with sdk < 9.2.0.GA fails
* [TIMOB-27812](https://jira.appcelerator.org/browse/TIMOB-27812) - Improve display of uncaught errors

## SDK Module Versions

| Module | Android version | iOS Version |
| ----------- | --------------- | ----------- |
| facebook | 10.0.0 | 9.0.0 |
| ti.cloudpush | 7.1.0 | n/a |
| ti.map | 5.0.1 | 4.0.1 |
| ti.webdialog | 2.0.0 | 2.0.0 |
| ti.playservices | 17.1.1 | n/a |
| ti.identity | 3.0.2 | 2.0.0 |
| urlSession | n/a | 3.0.0 |
| ti.coremotion | n/a | 3.0.0 |
| ti.applesignin | n/a | 2.0.0 |
| ti.cloud | 3.2.11 | 3.2.11 |
| hyperloop | 6.0.1 | 6.0.1 |

# [9.2.0](https://github.com/appcelerator/titanium_mobile/compare/9_1_X...9.2.0) (2020-09-15)

## About this release
Expand Down
3 changes: 1 addition & 2 deletions iphone/Classes/TiUITableViewRowProxy.m
Original file line number Diff line number Diff line change
Expand Up @@ -528,8 +528,7 @@ - (TiProxy *)parentForBubbling

- (UIView *)view
{
//TIMOB-27935: TiUITableViewRowProxy do not have corresponding view class. So return corresponding cell
return callbackCell;
return nil;
}

//Private method : For internal use only
Expand Down
69 changes: 69 additions & 0 deletions iphone/cli/commands/_buildModule.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const appc = require('node-appc'),
path = require('path'),
temp = require('temp'),
util = require('util'),
xcodeParser = require('xcode/lib/parser/pbxproj'),
__ = appc.i18n(__dirname).__,
series = appc.async.series,
xcode = require('xcode');
Expand Down Expand Up @@ -117,6 +118,20 @@ iOSModuleBuilder.prototype.detectMacOSTarget = function detectMacOSTarget() {
return isMacOSEnabled;
};

iOSModuleBuilder.prototype.generateXcodeUuid = function generateXcodeUuid(xcodeProject) {
// normally we would want truly unique ids, but we want predictability so that we
// can detect when the project has changed and if we need to rebuild the app
if (!this.xcodeUuidIndex) {
this.xcodeUuidIndex = 1;
}
const id = appc.string.lpad(this.xcodeUuidIndex++, 24, '0');
if (xcodeProject && xcodeProject.allUuids().indexOf(id) >= 0) {
return this.generateXcodeUuid(xcodeProject);
} else {
return id;
}
};

iOSModuleBuilder.prototype.run = function run(logger, config, cli, finished) {
Builder.prototype.run.apply(this, arguments);

Expand Down Expand Up @@ -237,6 +252,60 @@ iOSModuleBuilder.prototype.processLicense = function processLicense() {
};

iOSModuleBuilder.prototype.processTiXcconfig = function processTiXcconfig(next) {
const srcFile = path.join(this.projectDir, this.moduleName + '.xcodeproj', 'project.pbxproj');
const xcodeProject = xcode.project(path.join(this.projectDir, this.moduleName + '.xcodeproj', 'project.pbxproj'));
const contents = fs.readFileSync(srcFile).toString();
const appName = this.moduleIdAsIdentifier;

if (this.isFramework && !contents.includes('TitaniumKit.xcframework')) {
this.logger.warn(`Module created with sdk < 9.2.0, need to add TitaniumKit.xcframework. The ${this.moduleName}.xcodeproj has been updated.`);

xcodeProject.hash = xcodeParser.parse(contents);
const xobjs = xcodeProject.hash.project.objects,
projectUuid = xcodeProject.hash.project.rootObject,
pbxProject = xobjs.PBXProject[projectUuid],
mainTargetUuid = pbxProject.targets.filter(function (t) { return t.comment.replace(/^"/, '').replace(/"$/, '') === appName; })[0].value,
mainGroupChildren = xobjs.PBXGroup[pbxProject.mainGroup].children,
buildPhases = xobjs.PBXNativeTarget[mainTargetUuid].buildPhases,
frameworksGroup = xobjs.PBXGroup[mainGroupChildren.filter(function (child) { return child.comment === 'Frameworks'; })[0].value],
// we lazily find the frameworks and embed frameworks uuids by working our way backwards so we don't have to compare comments
frameworksBuildPhase = xobjs.PBXFrameworksBuildPhase[
buildPhases.filter(phase => xobjs.PBXFrameworksBuildPhase[phase.value])[0].value
],
frameworkFileRefUuid = this.generateXcodeUuid(xcodeProject),
frameworkBuildFileUuid = this.generateXcodeUuid(xcodeProject);

xobjs.PBXFileReference[frameworkFileRefUuid] = {
isa: 'PBXFileReference',
lastKnownFileType: 'wrapper.xcframework',
name: '"TitaniumKit.xcframework"',
path: '"$(TITANIUM_SDK)/iphone/Frameworks/TitaniumKit.xcframework"',
sourceTree: '"<absolute>"'
};
xobjs.PBXFileReference[frameworkFileRefUuid + '_comment'] = 'TitaniumKit.xcframework';

xobjs.PBXBuildFile[frameworkBuildFileUuid] = {
isa: 'PBXBuildFile',
fileRef: frameworkFileRefUuid,
fileRef_comment: 'TitaniumKit.xcframework'
};
xobjs.PBXBuildFile[frameworkBuildFileUuid + '_comment'] = 'TitaniumKit.xcframework in Frameworks';

frameworksBuildPhase.files.push({
value: frameworkBuildFileUuid,
comment: xobjs.PBXBuildFile[frameworkBuildFileUuid + '_comment']
});

frameworksGroup.children.push({
value: frameworkFileRefUuid,
comment: 'TitaniumKit.xcframework'
});

const updatedContent = xcodeProject.writeSync();

fs.writeFileSync(srcFile, updatedContent);
}

const re = /^(\S+)\s*=\s*(.*)$/,
bindingReg = /\$\(([^$]+)\)/g;

Expand Down
45 changes: 9 additions & 36 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
"@commitlint/cli": "^11.0.0",
"@commitlint/config-conventional": "^11.0.0",
"@seadub/clang-format-lint": "0.0.2",
"@seadub/danger-plugin-dependencies": "0.1.0",
"@seadub/danger-plugin-dependencies": "1.0.0",
"@seadub/danger-plugin-eslint": "^2.0.0",
"@seadub/danger-plugin-junit": "0.2.0",
"babel-plugin-transform-titanium": "^0.1.1",
Expand Down
12 changes: 6 additions & 6 deletions support/module/packaged/modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"integrity": "sha512-66Isv52+jqxSS7GGFmlxdU5Ir1e0ELZOQ5buZSdm84mof94o/r1brJi39T9womyiRoekkxkmO6kG4llW0tgbHA=="
},
"facebook": {
"url":"https://github.com/appcelerator-modules/ti.facebook/releases/download/v9.0.0-iphone/facebook-iphone-9.0.0.zip",
"integrity":"sha512-ydzmAwj3jqpnBf2suUIGJhqz3POo8HlIlshA+kbmLyP6edyIqIsvn+5iCvbZOUTPji3RGGkCVr9GLdwvO3Atww=="
"url": "https://github.com/appcelerator-modules/ti.facebook/releases/download/v9.0.0-iphone/facebook-iphone-9.0.0.zip",
"integrity": "sha512-ydzmAwj3jqpnBf2suUIGJhqz3POo8HlIlshA+kbmLyP6edyIqIsvn+5iCvbZOUTPji3RGGkCVr9GLdwvO3Atww=="
},
"ti.coremotion": {
"url": "https://github.com/appcelerator-modules/ti.coremotion/releases/download/v3.0.0/ti.coremotion-iphone-3.0.0.zip",
Expand All @@ -31,8 +31,8 @@
},
"android": {
"facebook": {
"url":"https://github.com/appcelerator-modules/ti.facebook/releases/download/v10.0.0-android/facebook-android-10.0.0.zip",
"integrity":"sha512-xoAmbzglL4TLLbaqHhDaarIYqhu2q/dlhZT49SRl7342TxdPRGKCnuxmNAbAy0R4X6z8Ueh9/5s4b8NsHoTdVQ=="
"url": "https://github.com/appcelerator-modules/ti.facebook/releases/download/v10.0.0-android/facebook-android-10.0.0.zip",
"integrity": "sha512-xoAmbzglL4TLLbaqHhDaarIYqhu2q/dlhZT49SRl7342TxdPRGKCnuxmNAbAy0R4X6z8Ueh9/5s4b8NsHoTdVQ=="
},
"ti.cloudpush": {
"url": "https://appcelerator-modules.s3.amazonaws.com/ti.cloudpush-android-7.1.0.zip",
Expand Down Expand Up @@ -63,8 +63,8 @@
},
"hyperloop": {
"hyperloop": {
"url":"https://github.com/appcelerator-modules/hyperloop-builds/releases/download/v6.0.1/hyperloop-6.0.1.zip",
"integrity":"sha512-okDVPvoUHnyHB2PZOolFa2VH8TbKDJ7Q+165K0uV7M63QpDb5HgQ5rPlMfMfUPMRPXWOYKM7tFH4ECRH6he4lA=="
"url": "https://github.com/appcelerator-modules/hyperloop-builds/releases/download/v6.0.2/hyperloop-6.0.2.zip",
"integrity": "sha512-Jd8tKVYCcommLKB9acNqZOMdUpteisCPRyQnGRtmQYoT0yQvF/9JIb21j9APBI/9be7qoYBZRunqB/sUDVYQWw=="
}
}
}
28 changes: 27 additions & 1 deletion tests/Resources/ti.ui.tableview.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1387,7 +1387,8 @@ describe('Titanium.UI.TableView', function () {
win.open();
});

it.ios('row#rect', function (finish) {
it.iosBroken('row#rect', function (finish) {
// FIXME: TIMOB-27935
if (isCI && utilities.isMacOS()) { // FIXME: On macOS CI (maybe < 10.15.6?), times out! Does app need explicit focus added?
return finish(); // FIXME: skip when we move to official mocha package
}
Expand Down Expand Up @@ -1443,4 +1444,29 @@ describe('Titanium.UI.TableView', function () {
});
win.open();
});

it('TIMOB-28148 : adding view on row causing crash', function (finish) {
var row = Ti.UI.createTableViewRow({ title: 'click me' });
var tableView = Ti.UI.createTableView({
data: [ row ]
});

win = Ti.UI.createWindow({
backgroundColor: 'blue'
});
win.addEventListener('focus', function () {
setTimeout(function () {
try {
const label = Ti.UI.createLabel({ text: 'REQUIRED' });
row.add(label);
finish();
} catch (err) {
return finish(err);
}
}, 2000);
});

win.add(tableView);
win.open();
});
});

0 comments on commit 90e248b

Please sign in to comment.