在transport.py

时间:2016-09-27 03:48:59

标签: xcode appcelerator appcelerator-titanium

我们在构建之后使用了钛的transport.py脚本来“概括”项目,因此我们可以在内部或测试人员共享它们。这已经工作多年了。

最近升级到5.4.0.GAxCode 7.2.1,现在无法在运行脚本后构建。

重现:

  • 使用ti 5.4.0.GA
  • “创建”一个新项目
  • “ti build”ios版本
  • 打开生成的xCode项目并构建;应该成功。
  • 运行5.4.0.GA/iphone/transport.py以概括项目
  • 在xCode中再次打开并尝试构建。(在将部署目标手动设置为9.2之后)

我收到此错误消息弹出:

Process:               titanium_prep [22906]
Path:                  /Users/USER/Documents/*/titanium_prep
Identifier:            titanium_prep
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        Python [22905]
Responsible:           titanium_prep [22906]
User ID:               501

Date/Time:             2016-09-26 23:44:37.311 -0400
OS Version:            Mac OS X 10.11.6 (15G31)
Report Version:        11
Anonymous UUID:        26983E09-00B6-39EF-46E1-69C160BEC920

Sleep/Wake UUID:       787F525D-342A-4322-926B-F02632E585C1

Time Awake Since Boot: 430000 seconds
Time Since Wake:       14000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithCString:encoding:]: NULL cString'
abort() called
terminating with uncaught exception of type NSException

Application Specific Backtrace 1:
0   CoreFoundation                      0x00007fff944b64f2 __exceptionPreprocess + 178
1   libobjc.A.dylib                     0x00007fff90a01f7e objc_exception_throw + 48
2   CoreFoundation                      0x00007fff9451d4bd +[NSException raise:format:] + 205
3   Foundation                          0x00007fff827947e7 +[NSString stringWithCString:encoding:] + 84
4   titanium_prep                       0x0000000100001aa9 main + 137
5   titanium_prep                       0x0000000100001988 start + 52
6   ???                                 0x0000000000000003 0x0 + 3

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff81ae8f06 __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff90da54ec pthread_kill + 90
2   libsystem_c.dylib               0x00007fff943716df abort + 129
3   libc++abi.dylib                 0x00007fff85f0ec11 abort_message + 257
4   libc++abi.dylib                 0x00007fff85f34e17 default_terminate_handler() + 267
5   libobjc.A.dylib                 0x00007fff90a046ae _objc_terminate() + 103
6   libc++abi.dylib                 0x00007fff85f3200e std::__terminate(void (*)()) + 8
7   libc++abi.dylib                 0x00007fff85f31a7a __cxa_throw + 121
8   libobjc.A.dylib                 0x00007fff90a0208c objc_exception_throw + 318
9   com.apple.CoreFoundation        0x00007fff9451d4bd +[NSException raise:format:] + 205
10  com.apple.Foundation            0x00007fff827947e7 +[NSString stringWithCString:encoding:] + 84
11  titanium_prep                   0x0000000100001aa9 main + 137
12  titanium_prep                   0x0000000100001988 start + 52

...

然后在ApplicationRouting.m文件中出现xCode错误:

+ (NSData*) resolveAppAsset:(NSString*)path;
{
2016-09-26 23:44:37.299 titanium_prep[22906:2965736] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithCString:encoding:]: NULL cString'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff944b64f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff90a01f7e objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff9451d4bd +[NSException raise:format:] + 205
    3   Foundation                          0x00007fff827947e7 +[NSString stringWithCString:encoding:] + 84
    4   titanium_prep                       0x0000000100001aa9 main + 137
    5   titanium_prep                       0x0000000100001988 start + 52
    6   ???                                 0x0000000000000003 0x0 + 3
)
libc++abi.dylib: terminating with uncaught exception of type NSException
    NSNumber *index = [map objectForKey:path];
    if (index == nil) { return nil; }
    return filterDataInRange([NSData dataWithBytesNoCopy:data length:sizeof(data) freeWhenDone:NO], ranges[index.integerValue]);
}

任何人都可以想到为什么会这样吗? transport.py中发生了哪些变化?或者为什么这个版本的xCode/iOS/Titanium非常讨厌我?

1 个答案:

答案 0 :(得分:0)

https://jira.appcelerator.org/browse/AC-4518

长:

  

如果我们要从生成的Xcode项目中分离Titanium,就像transport.py所做的那样,那么那将破坏我们的业务模式,我们不能拥有它。遗憾。

短:

  

搞砸你