NativeScript / nativescript-cli

Command-line interface for building NativeScript apps
https://www.npmjs.com/package/nativescript
Apache License 2.0
1.04k stars 195 forks source link

Skipping copy phase strip, binary is code signed IOS #5334

Open saschaarthur opened 4 years ago

saschaarthur commented 4 years ago

Hello,

We building our IOS release app with following command:

tns build ios --clean --for-device --env.aot --env.report --env.hiddenSourceMap --certificate keychain.p12 --certificatePassword ${IOSKEYCHAINPASS} --release --provision $uuid

We have a lot of this spam like this:


warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/tns-core-modules-widgets/platforms/ios/TNSWidgets.framework/TNSWidgets (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/tns-core-modules-widgets/platforms/ios/TNSWidgets.framework/TNSWidgets -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/TNSWidgets.framework/TNSWidgets 
warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-ui-sidedrawer/platforms/ios/TNSSideDrawer.framework/TNSSideDrawer (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-ui-sidedrawer/platforms/ios/TNSSideDrawer.framework/TNSSideDrawer -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/TNSSideDrawer.framework/TNSSideDrawer 
warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-ui-listview/platforms/ios/TNSListView.framework/TNSListView (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-ui-listview/platforms/ios/TNSListView.framework/TNSListView -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/TNSListView.framework/TNSListView 
warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-ui-core/platforms/ios/TNSCore.framework/TNSCore (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-ui-core/platforms/ios/TNSCore.framework/TNSCore -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/TNSCore.framework/TNSCore 
warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-plugin-firebase/platforms/ios/TNSCrashlyticsLogger.framework/TNSCrashlyticsLogger (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-plugin-firebase/platforms/ios/TNSCrashlyticsLogger.framework/TNSCrashlyticsLogger -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/TNSCrashlyticsLogger.framework/TNSCrashlyticsLogger 
warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-local-notifications/platforms/ios/LocalNotificationsPlugin.framework/LocalNotificationsPlugin (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-local-notifications/platforms/ios/LocalNotificationsPlugin.framework/LocalNotificationsPlugin -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/LocalNotificationsPlugin.framework/LocalNotificationsPlugin 
warning: skipping copy phase strip, binary is code signed: /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-barcodescanner/platforms/ios/BarcodeScannerFramework.framework/BarcodeScannerFramework (in target 'xxxcommobile' from project 'xxxcommobile')
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/user/builds/r9xYjo8J/0/xxx/xxxcom-mobile/node_modules/nativescript-barcodescanner/platforms/ios/BarcodeScannerFramework.framework/BarcodeScannerFramework -r -o /Users/user/Library/Developer/Xcode/DerivedData/xxxcommobile-dvfmouoselmuzbdcyewzxtbiifmz/Build/Intermediates.noindex/ArchiveIntermediates/xxxcommobile/InstallationBuildProductsLocation/Applications/xxxcommobile.app/Frameworks/BarcodeScannerFramework.framework/BarcodeScannerFramework 

As far as i read thats an IOS linking issue and the Project settings for the (signed) release build is not correct. It seems it tries to strip debug symbols from the release ipa, which is it not allowed because the ipa is already signed..

  1. To remove the Warning it can set that the Project is not doing this on release build (https://stackoverflow.com/questions/5494920/xcode-4-archive-warning-to-skip-copy-phase/7915911#7915911)

But the question overall is why (at least it seems so) debug symbols reach the release .ipa file..

EdJones commented 3 years ago

Doesn't that --for-device get you a debug build? Have you tried ns publish, or ns prepare --release?

saschaarthur commented 3 years ago

hey,

normally im preparing with:

- ns prepare ios --provision $uuid

so i tried now 4 versions:


version 1:

- ns prepare ios --provision $uuid
- tns build ios --clean --for-device --env.aot --env.report --env.hiddenSourceMap --certificate keychain.p12 --certificatePassword ${IOSKEYCHAINPASS} --release --provision $uuid

-> output as above


version 2:

  - ns prepare ios --provision $uuid
  - tns build ios --clean --env.aot --env.report --env.hiddenSourceMap --certificate keychain.p12 --certificatePassword ${IOSKEYCHAINPASS} --release --provision $uuid

-> failed building because of missing sourceMap files cp -r platforms/ios/build/Release-iphoneos/xxx.xcarchive/Products/Applications/xxx.app/app/* sourceMap


version 3:

- ns prepare ios --provision --release $uuid
- tns build ios --clean --env.aot --env.report --env.hiddenSourceMap --certificate keychain.p12 --certificatePassword ${IOSKEYCHAINPASS} --release --provision $uuid

-> failed building because of missing sourceMap files cp -r platforms/ios/build/Release-iphoneos/xxx.xcarchive/Products/Applications/xxx.app/app/* sourceMap


version 4:

- ns prepare ios --provision --release $uuid
- tns build ios --clean --for-device --env.aot --env.report --env.hiddenSourceMap --certificate keychain.p12 --certificatePassword ${IOSKEYCHAINPASS} --release --provision $uuid

-> same output as version 1


so it sadly didnt solve my issues.

saschaarthur commented 3 years ago

But it seems in latest NS builds, mostly all "binary is code signed" warnings went away for TNS modules.

Currently i get only the output for "BarcodeScannerFramework" and "NotaWebViewExt", which seems to be libaries. How to get rid of code signing for those libs?